Solved

Is is possible to permanently set processor affinity?

Posted on 1997-12-13
5
1,944 Views
Last Modified: 2013-12-28
I have a dual processor Pentium Pro and I wish to always run a given application on one processor or the other ("hard affinity" in Microsoft terms).  I know how to temporarily set it through the task manager but this application-to-processor association is lost when the application ends.

The primary application I use is Microsoft Excel 95/97.  I am looking for means by which I can "permanently" set this processor affinity (utility, registry tweak, etc.).
0
Comment
Question by:swartwe
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
5 Comments
 
LVL 4

Expert Comment

by:TimCaturaHouser
ID: 1787470
I don't know of a meathod for this. MS is very proud of the fact that most of their apps usually run faster with SMP. Are you saying Excel runs faster with 1 processor?
0
 

Author Comment

by:swartwe
ID: 1787471
I don't mean to imply that Excel runs faster with one processor.  However, I have an Excel application which often requires hours to run and I want to dedicate it to one processor so that system response will always be good, regardless of what Excel is doing (even though doing so will cause the Excel application take considerably longer to run).  This is why I want to explicitly set the affinity.
0
 

Accepted Solution

by:
plummer earned 100 total points
ID: 1787472
Create a simple application as follows:

void main(int argc, char ** argv)
{
    // Set desired affinity
    SetProcessorAffinity( ...whatever affinity you'd like...);
    // Launch Excel and let it inherit this affinity
    CreateProcess("C:\Program Files\...\excel.exe");
}

Then compile this and call it "myexcel.exe" or whatever.  When you run it, it will launch excel proper.
0
 

Author Comment

by:swartwe
ID: 1787473
I cannot find the function "SetProcessAffinity" within the context of VC++ 5.0.  However, I can find "SetProcessAffinityMask".  It that the correct function?
0
 

Author Comment

by:swartwe
ID: 1787474
Correction to the last comment...It should have read "I cannot find the function "SetProcessorAffinity"...".  

Incidently, I found SetProcessAffinityMask in winbase.h.
0

Featured Post

Portable, direct connect server access

The ATEN CV211 connects a laptop directly to any server allowing you instant access to perform data maintenance and local operations, for quick troubleshooting, updating, service and repair.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Determining the an SCCM package name from the Package ID
Configuring Remote Assistance for use with SCCM
With the advent of Windows 10, Microsoft is pushing a Get Windows 10 icon into the notification area (system tray) of qualifying computers. There are many reasons for wanting to remove this icon. This two-part Experts Exchange video Micro Tutorial s…
The Task Scheduler is a powerful tool that is built into Windows. It allows you to schedule tasks (actions) on a recurring basis, such as hourly, daily, weekly, monthly, at log on, at startup, on idle, etc. This video Micro Tutorial is a brief intro…

688 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question