On Jul 16, 2005, at 7:56 PM, Lei_at_ICS wrote:
> I found this in the LAM/MPI Archives:
> "As a point of clarification, the behavior of MPI_Comm_spawn (and
> MPI_Comm_spawn_multiple) is such that it does not grow the MPI Universe
> size, which is set when you lamboot. If you request N more processes by
> using MPI_Comm_spawn then those processes will be distributed over the
> resources in the universe essentially oversubscribing them, but will
> not try to expand the universe by requesting more resources from PBS."
Also correct.
> This is exactly what I was worried about. So does this mean:
> 1) from a pure sequential program (say, a.out), there is no way to
> grow the MPI universe from a function that is computationally
> intensive;
LAM provides the lamgrow command for which you can grow a LAM universe
one node at a time. There is no API equivalent -- you will need to run
the lamgrow command to expand the LAM universe.
> 2) if this sequential program is Matlab scripts + C code (via MEX),
> the only way is to have Matlab create the MPI universe through the
> use of an MPI toolbox MPITB from Univ. of Granada, Spain?
I don't know the specifics of the MPITB other than it provides MEX
bindings to LAM/MPI. So I don't think that it invokes lamboot or
lamgrow (although I could be wrong). I *believe* that it assumes that
you have invoked lamboot already (i.e., before you ran Matlab) and can
therefore just start running MPI applications in the existing universe.
> I just started reading about MPITB. If anybody has a simple "hello
> world"
> example that shows how to create an MPI_COMM_WORLD in
> Matalb and pass it to a MEX C code, could you please post it or
> point me to the webpage? It sounds like I will need to have a
> Matlab process/Matlab license on each and every node of my cluster.
> Is there a way around this? This is really what I want to avoid.
I don't think that you need a Matlab license on every node in the
cluster -- Matlab will only be running on [presumably] the head node,
or wherever you normally invoke Matlab. The fact that your MEX scripts
will effectively be launching MPI applications means that you will be
running MPI applications on your compute nodes -- not Matlab itself.
It's analogous to your MEX script forking and calling "rsh clusternode
a.out". So a.out runs on clusternode, but that has nothing to do with
Matlab (and therefore no Matlab license is needed on clusternode).
--
{+} Jeff Squyres
{+} jsquyres_at_[hidden]
{+} http://www.lam-mpi.org/
|