Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] Regarding hyperthreding
From: seshendra seshu (seshu199_at_[hidden])
Date: 2012-08-14 10:14:56


I was about tell that i have written an MPI code in which i have specified
only for the communication between nodes and i dont whether can i run
program as per my requirement i.e to use the cores present in my node (all
4 cores). So my doubt is should i need to include pthreads or the program
which i have written is sufficient.

My program gives the output has MPI-size=4
 time at node1:
time at node 2:
time at node3:
time at node 4:

This is what i was explaining.

On Tue, Aug 14, 2012 at 2:17 PM, Jeff Squyres <jsquyres_at_[hidden]> wrote:

> On Aug 14, 2012, at 7:55 AM, seshendra seshu wrote:
> > I haven't still changed my code to run when threading is needed
> (presently working).
> I'm afraid I can't parse that sentence; I don't know what you mean.
> > I have doubt that when i calculate the MPI ranks using the MPI command
> it gives only the nodes which have given in a host file.
> I'm not sure what this is saying, either. Sorry! :-(
> If you are running in a scheduled environment (e.g., under the SLURM or
> Torque/PBS schedulers), then Open MPI will find out from the schedule how
> many processors are on that machine and react accordingly.
> Otherwise, if you are running in an unscheduled environment (e.g., if you
> just specify a hostfile to tell Open MPI where to run), then you need to
> tell Open MPI how many processes you want it to launch on each node. Per
> Tom's advice, we usually recommend running -- at most -- one MPI process
> per core.
> > But how can i calculate the MPI ranks as you have told i.e N=H(
> number of CPUs showing on a node ) x M ( number of nodes in a cluster).
> Use the Hwloc utility "lstopo" to give you a graphical depiction of the
> internal topology of your machine(s).
> Then you can count how many cores are on your machine and set your
> hostfile accordingly.
> > And I would like test like this if have 2 nodes and where I can use up
> to 50 cores. I would like to scale like 2,4,8,16,32,45 cores and at the
> same time if use 8 cores then I would like to take the readings as node1-
> 3cores and node2-5 cores. So in order to do that should I need mention
> anything in the host file as I have mentioned the No.of nodes.
> In general, just list how many slots you have on each machine in the
> hostfile and then use mpirun's -np and -npernode options to specify how
> many total processes to run and how many to run per machine. For example:
> -----
> shell$ cat hostfile
> # This hostfile represents 2 Intel Romley-based servers; 16 cores each
> server1 slots=16
> server2 slots=16
> shell$ mpirun --hostfile hostfile -np 4 --npernode 2 my_mpi_executable
> # ^^ this runs a total of 4 MPI processes, 2 on each node
> shell$ mpirun --hostfile hostfile -np 16 --npernode 8 my_mpi_executable
> # ^^ this runs a total of 16 MPI processes, 8 on each node
> -----
> ...and so on.
> --
> Jeff Squyres
> jsquyres_at_[hidden]
> For corporate legal information go to:
> _______________________________________________
> users mailing list
> users_at_[hidden]