I have a multi-process .NET (F#) scientific simulation running on Windows Server 2008 SE and 64 processors. Each time step of the simulation oscillates from 1.5 sec to 2 sec. As each process must wait for other processes, the overall speed is the speed of the slowest process (2 sec * number of iterations). Therefore, I need to reduce the oscillation of the processes as much as possible.
Is there any way how to force a set of processes to have the exactly same “computational time” available for their computations?
I’m not sure I understand 100% what you want to do. But for inter-process synchronization you can use a named
EventWaitHandleorSemaphore.Update per comment
You can use
ProcessorAffinityto constrain processes to specific processors.