Discussion:
MPI and LAM\MPI
(too old to reply)
Steve Drake
2008-11-30 19:31:42 UTC
Permalink
Hello, I've been asked to setup five computers using the Pelican software by
a
grad student who is using MPI to write programs on his computer. While the
Pelican software says its MPI the programs the grad student writes will not
run under the LAM/MPI system that the Pelican software uses. I have had
the student write a simple hello world program and when I try to run it on
the
Pelican system it will not run, it is not even recognised.

Can anyone tell me what I need to do to get the MPI programs written by the
grad student to run under this LAM/MPI.

Thank you for any help you can give.

Regards,

Steve Drake
Georg Bisseling
2008-12-01 08:42:31 UTC
Permalink
You have some options:

- The student transfers binaries to the cluster and the
_same_ MPI is used for compiling and linking the binaries as
for running them on the cluster. (My favorite.)

- You replicate the build environment on the cluster and
get source code from the student. Will result in portable
code after some headaches.

- You replicate the build environment on the cluster and
let the student use it for development, test and production.

Make your choice.
--
This signature intentionally left almost blank.
http://www.this-page-intentionally-left-blank.org/
Steve Drake
2008-12-02 00:39:03 UTC
Permalink
So you are just saying to recompile his programs in the LAM/MPI environment.

In the second option can you have two MPI programs on one machine, will
they not interfear with each other? Or do you call one MPI_1 and the other
MPI_2.

I am a newbe (like you couldn't tell 8-) ) at this so I'm trying to pick up
stuff.
Post by Georg Bisseling
- The student transfers binaries to the cluster and the
_same_ MPI is used for compiling and linking the binaries as
for running them on the cluster. (My favorite.)
- You replicate the build environment on the cluster and
get source code from the student. Will result in portable
code after some headaches.
- You replicate the build environment on the cluster and
let the student use it for development, test and production.
Make your choice.
--
This signature intentionally left almost blank.
http://www.this-page-intentionally-left-blank.org/
Georg Bisseling
2008-12-03 21:40:19 UTC
Permalink
Am 02.12.2008, 01:39 Uhr, schrieb Steve Drake <***@freenet.edmonton.ab.ca>:

Well, I do not tell you to do just something, because I do not know
your tradeoffs.

There are several components of an MPI implementation that have to
be taken from the exact (with a grain of salt) same version:

1) the header files and libraries that are chosen at compile
and link time,
2) the dynamic libraries that are used at runtime,
3) the startup program (mpirun or mpiexec) used at runtime
to launch the application and
4) the daemons that are running on your machines to make
launching the apps work.

While it is possible to have several MPI implementations installed
on a machine it is at the same time a safe bet for a newbie (and
often enough an experienced user) to shoot yourself in all three feet.

To switch between two MPI installations you have to:
1) edit your Makefiles to choose the right headers and libs and
change path to find the matching mpicc and friends (if used),
2) set LD_LIBRARY_PATH to get the right shared libs at runtime,
3) change path to find mpirun and mpiexec and
4) EITHER shutdown one group of daemons and then start the other
group OR have them run next to each other which requires to use
non-default ports that have to be specified to the startup scripts
etc.

1) to 4) happen on the development machine.
2) to 4) happen also on the production machine.
Everything has to be kept in sync.

All in all this may boil down to the suggestion to use exactly
one MPI everywhere for a start.
Post by Steve Drake
So you are just saying to recompile his programs in the LAM/MPI environment.
In the second option can you have two MPI programs on one machine, will
they not interfear with each other? Or do you call one MPI_1 and the other
MPI_2.
I am a newbe (like you couldn't tell 8-) ) at this so I'm trying to pick up
stuff.
Post by Georg Bisseling
- The student transfers binaries to the cluster and the
_same_ MPI is used for compiling and linking the binaries as
for running them on the cluster. (My favorite.)
- You replicate the build environment on the cluster and
get source code from the student. Will result in portable
code after some headaches.
- You replicate the build environment on the cluster and
let the student use it for development, test and production.
Make your choice.
--
This signature intentionally left almost blank.
http://www.this-page-intentionally-left-blank.org/
--
This signature was left intentionally almost blank.
http://www.this-page-intentionally-left-blank.org/
Loading...