Adsci Engineering
Like StartAffinity?
StartAffinity 1.3.1
StartAffinity 1.3
StartAffinity 1.2.3
StartAffinity 1.2.2


StartAffinity is a tool used to start applications with certain affinity masks. It is useful for running applications which are not multithreaded, and do not benefit (or are even harmed) by the scheduling mechanisms employed by multi-processor or multi-core computer systems.

The following example starts notepad on processor 0 without displaying a console window.
nowindow.exe startaffinity.exe notepad.exe 0

System Requirements

  • Microsoft Windows NT, 2000, or XP
  • A Multiprocessor or Multi-core System

Specifying commmand line arguments

StartAffinity does support the use of passing command line arguments to programs, they just must be enclosed in quotes along with the path/name of the executable you wish to start. For example, startaffinity.exe "notepad.exe test.txt" 1 will open notepad on processor 1 and load the file test.txt

Build Requirements

  • Microsoft Visual Studio version 2003 or newer
  • Windows Platform SDK


StartAffinity does a great job of starting an application with a given affinity mask, but what if you want to quickly and easily change the affinity masks of all your other runing applications? You use ShoveAffinity! ShoveAffinity takes similar parameters to StartAffinity (processor IDs) then attempts to reset the affinity mask of all the applications running on the system that it can access. For more information and to download ShoveAffinity, visit the ShoveAffinity website at


If you wish to avoid seeing the flicker of a console window when you run StartAffinity, we suggest that you wrap it using "NoWindow," which surpresses console windows. It is availible at


System Requirements:

Windows NT/2000/XP
A multiprocessor system


Installation: Unzip it to the winnt\system32 directory and read the directions on using it.


How to use:

Start Affinity takes 2 or more paramaters. The first is the complete path (assuming the app you are starting is not in the windows path variable) of the app you wish to start. The second is the processor ID number(s) of the processors that you wish the app to run on. Running it with a /? will display a short section of instructions on how to use it. This is re-printed below for your convienence along with an example.

Argument 1: App you wish to start
Argument 2: Processor IDs, #( 0 - 31 supported)

Example: StartAffinity notepad.exe 0 1

would start notepad.exe on processors 0 and 1.



Source Code:

StartAffinity has been GPL'd and the source code is now avalible for download.
Please be sure to read or understand the GPL!


Fixes and changes:

1) StartAffinity now checks to make sure that processor IDs are valid before attempting to set them.

///// Questions? Complaints? //////
//// Bugs? Suggestions? ///////
//// E-mail me so i might do ///////
//// something about them. //////