Saturday, October 25, 2014

Multicore CPU: how to disable a core

To run certain applications that are not compatible with multi-core operations, it may be necessary todisable a core in a multi-core CPU. In Windows systems, it is possible to disable a core through the system configuration window. Choose the number of processors that should be enabled or disabled and restart the computer for the settings to take effect.Disabling a core in Linux can be done through the grub menu and add parameters to the kernel entry. These parameters are sent directly to the core when the Linux is starting. The Linux system has to be restarted after the modifications to disable a core in a multi-core CPU are made. 

Multicore CPU: how to disable a core



It is sometimes quite useful with a multi-core processor to be able to determine whether a core is working properly during rise in frequencies or for testing purposes. This can be done by disabling a core, thereby isolating the potentially problematic one. Sometimes this procedure is necessary to run certain applications, which are not compatible with multi core processing. 

Note that this procedure will not affect physically your hardware, but your OS (Windows or Linux) will simply ignore the core(s) you selected. 

Procedure when using Windows (Vista, 7 and XP)

  • Open the start menu, click on Run, type in msconfig and click on OK
  • In the System Configuration window click on the Atart sub menu and the on Advanced Optionsbutton

  • In the second window that appears, you should be provided with an option for enabling and disabling the processors as you wish
  • Validate your entry by clicking on OK
  • Restart your PC

Procedure when using Linux

When using Linux the procedure is quite different. When starting up your PC, you should find the Grub menu, which is responsible for launching Linux. Select the entry you want to use, press the E key and a menu will appear (depending on the version used). 

title         Ubuntu 7.10, kernel 2.6.22-14-generic     
root         (hd0,5)     
kernel       /boot/vmlinuz-2.6.22-14-generic root=UUID=a8a39729-9d2a-425b-b84b-ecc5c7dad104 ro quiet splash     
initrd         /boot/initrd.img-2.6.22-14-generic     
quiet     

Using the arrow keys, go the line beginning with the word "kernel" and press E again. 

Be aware that you are editing the line, which defines the path to your Linux kernel (core). At the end of the line, add the following command: 

maxcpus=1


The end result should be: 

kernel  /boot/vmlinuz-2.6.22-14-generic root=UUID=a8a39729-9d2a-425b-b84b-ecc5c7dad104 ro quiet maxcpus=1

Note: que roquiet and maxcpus are the parameters sent to the core when starting up Linux. 

Press the B key to start Linux. 

For unlimited offline reading, you can download this article for free in PDF format:
Multicore-cpu-how-to-disable-a-core.pdf