Discussion:
MPI on a multicore Sun Niagara
(too old to reply)
David Benham
2008-10-09 12:34:39 UTC
Permalink
Hi,

I'm sorry if this post is too basic or I have posted it in the wrong
place.

I have access to a 8 core Sun Niagra processsor. When I compile and
run a simple MPI hello world and ask for multiple nodes when I run the
program, I get them.

In fact, I can specify 'mpirun -np 128 helloworld' and the run will
say hello from 128 nodes.

Obviously, not all nodes are on one of the dedicated cores of the
niagra. So MPI is somehow using threads to give me the nodes I ask
for. This is something I was not aware was possible.

I'm curious, is there any mechanism or technique in MPI to make sure
if I run 'mpirun -np 8 helloworld' that each node will be on it's own
physical core on the Niagara?

TIA,
David Benham
Sebastian Hanigk
2008-10-09 13:45:36 UTC
Permalink
Post by David Benham
I have access to a 8 core Sun Niagra processsor. When I compile and
run a simple MPI hello world and ask for multiple nodes when I run the
program, I get them.
In fact, I can specify 'mpirun -np 128 helloworld' and the run will
say hello from 128 nodes.
Obviously, not all nodes are on one of the dedicated cores of the
niagra. So MPI is somehow using threads to give me the nodes I ask
for. This is something I was not aware was possible.
I think you've got that wrong. What the mpirun program does is spawning
a number of MPI processes on your SMP machine. The operating system's
scheduler allocates shares of CPU time to each process, running a number
of processes per core.
Post by David Benham
I'm curious, is there any mechanism or technique in MPI to make sure
if I run 'mpirun -np 8 helloworld' that each node will be on it's own
physical core on the Niagara?
Basically this would be the job of the operating system; I would expect
the scheduler to run each process on a separate core, but you really
should peruse your OS manuals how to place or bind processes to cores.


Sebastian
Georg Bisseling
2008-10-10 18:38:50 UTC
Permalink
Am 09.10.2008, 15:45 Uhr, schrieb Sebastian Hanigk <***@in.tum.de>:

Basically I agree with Sebastian's answer.
I just want to add that the trick of the
Niagara processor is to hide memory or I/O
latency by just switching to another thread.
The CPU has only one FPU.

I am quite sure that Niagara is an inappropriate
architecture for the typical MPI program.

But I am curious to learn what you are trying to
do here!
--
This signature was left intentionally almost blank.
http://www.this-page-intentionally-left-blank.org/
Loading...