On Feb 2, 2007, at 6:02 AM, Davide Cesari wrote:
> If the second holds, then your request is pointless, in my knowledge,
> LAM does not make anything particular to attach processes to CPUs in a
> SMP system, it just starts as many processes as requested, then it
> is up
> to the operating system to balance them among the available
> processors,
This is correct. LAM simply starts up the Right number of processes
and does not bind them to any particular CPUs.
> this is the essence of Symmetric Multi Processing; AFAIK, there is no
> such a concept (and no need too) of starting a process on a particular
> CPU in a plain SMP system.
> If you are using the Linux kernel, then recent versions should have a
> tunable scheduler which tries to attach processes to CPUs as much as
> possible (the so-called CPU affinity) to improve performance on
> SMP, but
> it is not guaranteed either that a given process will always run on
> the
> same CPU.
> If you have a NUMA (Non Uniform Memory Access) system, then things
> are
> more complex, but I have no direct experience of that.
FWIW, Open MPI has some basic processor and memory affinity
mechanisms. Right now, the only mechanism available described here:
http://www.open-mpi.org/faq/?category=tuning#paffinity-defs
http://www.open-mpi.org/faq/?category=tuning#maffinity-defs
http://www.open-mpi.org/faq/?category=tuning#using-paffinity
We don't offer more fine-grained mechanisms [yet] mainly because
we've had a heck of a time trying to define a decent syntax for
allowing users to specify the exact placement that they want. It
sounds like a silly problem, but it turns into really nasty details
that are quite complex. :-(
--
Jeff Squyres
Server Virtualization Business Unit
Cisco Systems
|