Jody,

On Linux, you can check which process are running on which core in top, but I don't think the mac os version allows this. The OS *will* move processes on different cores because of the time-sharing nature of the scheduling algorithm. There are a lot more details online about what this means, but basically a time-sharing system will try to distribute cpu time "equally" between processes. In some cases this translates into reducing the priority, or moving out, the most cpu hungry tasks. Sometimes this is exactly the opposite of how a real-time or parallel application is supposed to run.

Anyway, any parallel benchmark in my view should be run using the real time scheduling algorithm and setting processor affinity for each process. On Linux, the two commands used to this are 'chrt' and 'taskset'.


On Jul 15, 2009, at 9:17 AM, Klymak Jody wrote:

Hi Robert,

Sorry if this is offtopic for the more knowledgeable here...

On 14-Jul-09, at 7:50 PM, Robert Kubrick wrote:
By setting processor affinity you can force execution of each process on a specific core, thus limiting context switching. I know affinity wasn't supported on MacOS last year, I don't know if the situation has changed. But running oversubscription without process affinity might cancel the benefit of SMT because the OS will try to allocate each process to whatever core becomes available, thus increasing context switching.

This is a little over my head (i.e. SMT?). However, to explain, the jobs were a gridded simulation, with the grid divided into 8, or 16 'tiles' . Each core gets a tile and passes info the the adjacent ones. I would be very surprised to find out that the tiles were changing cores mid simulation. Why would the OS do something so silly?

The machines were certainly still running other processes to keep the operating system going. If you watch the cpu monitor, the total would occasionally drop from 100% to 98% as some operating system process kicked in, but in general the jobs were pegged, leaving little opportunity for one core to decide to take over what another core was already doing.

Thanks, and if I'm incorrect about how the jobs get distributed between cores, I'd be more than happy to be corrected. As I said, my knowledge of this stuff is pretty abstract.

Thanks,   Jody
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

Reply via email to