Backtrack:  
 
by lunarg on April 28th 2007, at 00:32

The bliss of dual core can quickly turn to a curse when you're running applications that weren't build to handle multiple CPU's.
Although one could set affinity with windows task manager, the application often goes down before one could alt-tab to set it, or sometimes, the application doesn't even start at all.

A quick search on the web has brought me on a forum thread, where they were talking about RunOnProcessorExplicit, or in short: ROPE.
ROPE is a very simple tool, that allows you to set affinity directly at the start of an application. This circumvents the need of using windows task manager and moreover, allows you to change shortcuts accordingly, so you won't have to remember to set affinity anymore. And even if your applications don't have this problem, you can always use ROPE to set affinity to different cores, allowing you to do load balancing, etc.

Usage

After installation, it's easy to use ROPE. For my UT2003 installation, all I had to do was to modify the shortcut so it executes ROPE with the UT2003 binary as parameter:

"E:\Program Files\innes.org\ROPE\ROPE.exe" -f 0 -n D:\Games\UT2003\System\UT2003.exe

or simply put: Use processor 0 on application with name D:\Games\UT2003\System\UT2003.exe

The parameters are:

  • -f <number>: use processor core with ID <number>. Count starts at 0, so if you have 2 cores, the first one is 0 and the second one is 1.
  • -n <application>: path to the binary you want to run and setting affinity for.

One remark though: when changing the shortcut, make sure that the start in parameter stays the same as it was in the original. Otherwise, not all applications are willing to start. See the screenshot below for an example (in this case of UT2003):

It's odd that an app like ROPE is not more known to people, or that it (or something similar) is not offered on the websites of AMD and Intel. Everyone with multiple processors should keep this app at least within reach. Sooner or later, you'll be needing this.