How To Enable All Cores in Windows
The evolution of CPUs, also known as microprocessors (the central brain inside your computer, tablet, or smartphone) is a fascinating and complex topic. From the earliest days of the Intel 4004 back in 1971 (the first commercial microprocessor), these little chips have rapidly progressed in power and speed. Computing tasks that were once absolutely unimaginable even for gigantic mainframes are now easily handled by $50 smartphones. This evolution has taken many twists and turns, but one development that is somewhat confusing to some end users is the concept of the multi-core processors. Chip manufacturers tout their new CPU as having dual cores, or quad cores, or 8 or 16 cores, or even up to 256 cores (theoretically) for users of the 64-bit version of Windows 10. But what does any of that actually mean?
A processor ‘core’ is an independent processing unit on the physical microprocessor chip. Each core has it’s own processing hardware and cache memory, and is connected to the rest of the CPU through the chip’s shared memory and the system bus. A core is essentially its own private CPU, and a multi-core processor is like having several CPUs working together. The idea of multi-core computing is that computing tasks can be split up between the cores, so that the overall job is completed faster. In reality, how effective this is depends entirely on the operating system software and the application software; OSes and applications that aren’t written to take advantage of multi-core processors won’t run any faster than they would on a single CPU. Thus, older OSes and programs are unlikely to see any benefit from modern processors.
Multi-core processors got their start back in 1996, with the IBM Power4 chip running two cores on a single chip. However, software support for this new idea did not immediately develop. Starting with Windows XP in 2001, Windows began supporting multi-core operation and application developers followed suite. Pretty much any software package you buy today will fully utilize the multi-core processor that you almost certainly have under the hood of your desktop or laptop.
(Check out this detailed article about multi-core processing for more information. If you’re building or buying a new PC, then a review of this article on what to look for in a CPU might also be helpful. And if you’re interested in the history of microprocessors, of course we have you covered!)
Do you need to enable all cores in Windows?
One question we are commonly asked at TechJunkie is whether you need to take some action in order to enable multi-core support on your computer. The answer is that it depends on the version of Windows you are running. For older versions of Windows, you might need to change a system setting in your BIOS in order to get multi-core functionality working. In Windows 10, multi-core support is automatically turned on; you can change a setting to use fewer cores if necessary to fix a software compatibility reason, but this is exceptionally rare.
Changing core settings in Windows 10
If you’re using Windows 10, all of your processor cores will be enabled by default if your BIOS/UEFI is set correctly. The only time you would use this technique is to limit cores.
- Type ‘msconfig’ into the Windows Search Box and hit Enter.
- Select the Boot tab and then Advanced options.
- Check the box next to Number of processors and select the number of cores you want to use (probably 1, if you are having compatibility issues) from the menu.
- Select OK and then Apply.
If you are using Windows 10, the box next to “Number of processors” will normally be UNchecked. This is because Windows is configured to utilize all cores whenever a program has the ability to use them.
Changing core settings in Windows XP
Windows XP supported multiple cores but with significant limitations. Windows XP Home would support one processor with up to four cores, while Windows XP Professional would support two processors with up to four cores apiece. On Windows XP machines, multi-core settings were controlled via the BIOS. To access to the BIOS settings, you will need to reboot your computer. During the boot process, hold down the F2 key (usually) – the key may vary depending on your machine. There is usually an onscreen prompt telling you which key to use. Once the BIOS control panel loads, you can change the settings manually. The exact settings to change will vary depending on the BIOS of your machine, but the screen will usually look something like this:
Changing core settings in Windows Vista, 7 and 8
In Windows Vista, 7 and 8, the multi-core setting is accessed through the same msconfig process as described above for Windows 10. It is also possible in Windows 7 and 8 to set processor affinity, that is, to tell the operating system to use a particular core for a particular program. This was useful for a number of things; you could set a certain program to always run on one core so that it wouldn’t interfere with other system operations, or you could set a program that had difficulty running on any core other than the first logical core to use the core where it ran best.
It isn’t strictly necessary to set core affinities in Windows 7 or 8 but if you want to it is simple.
- Select Ctrl + Shift + Esc to bring up Task Manager.
- Right click the program whose core use you want to modify and select Details.
- Select that program again in the Details window.
- Right click and select Set Affinity.
- Choose one or more cores and check the box to select, uncheck to deselect.
You may notice that twice as many cores are listed than you have. For example, if you are running an Intel i7 CPU with 4 cores, you’ll have 8 listed in the Affinity window. This is because hyperthreading effectively doubles your cores, with four real and four virtual. If you want to know how many physical cores your processor has try this:
- Select Ctrl + Shift + Esc to bring up Task Manager.
- Select Performance and highlight CPU.
- Check the lower right of the panel under Cores.
There is a useful batch file you can create that can force processor affinity for particular programs. You shouldn’t need to use it but if you do…
- Open Notepad or Notepad++.
- Type ‘Start /affinity 1 PROGRAM.exe’. Type without quotes and change PROGRAM for the specific program you’re trying to control.
- Save the file with a meaningful name and add “.bat” to the end. This creates it as a batch file.
- Save it to the program install location you specified in Step 2.
- Run the Batch file you just made to launch the program.
Where you see ‘affinity 1’, this tells Windows to use CPU0. You can change this depending on how many cores you have, Affinity 3 for CPU1 and so on. This page on the Microsoft Developer website has a full list of affinities.