Re: Re: [GE users] Myrinet setup (was: RE: [Beowulf])

Patrick Geoffray <[email protected]> Sun, 27 Mar 2005 15:47:30 -0500
Newsgroups gmane.network.myrinet.general
Organization Myricom
Message-ID <[email protected]>
Hi Rayson,

Rayson Ho wrote:
> The main difference with myrinet is that Myrinet/GM has a limited number of
> "ports" on each card. You want to allocate free ports to your job on each
> host, not the used ones.

FWIW, MPICH-GM does the ports allocation itself, it should be 
transparent from the user (and from the scheduler) point of view. When a 
MPICH-GM process is spawned, it will try to open a GM port, the forst 
available on the first available NIC. When one port is found, it sends 
the port number, among other things, to the mpirun.ch_gm perl script. 
When all processes have reported their local information, mpirun.ch_gm 
distribute the whole knowledge to all of the processes so they can speak 
to each other through GM.

Usually, the batch queue system does not need to know about that except if:

* you want to be sure that you never run out of GM ports: the default GM 
build provides 16 ports, 13 of them are useable for MPICH-GM processes. 
So, the maximum number of MPICH-GM processes running on one machine 
(assuming one NIC per machine, the limit is per NIC actually) at one 
time is limited to 13 with a default build. Unless you have a machine 
with more than 13 processors (in this case you would want to have 
several NICs anyway) or if you happen to spawn a lot more processes than 
processors (very uncommon in HPC), you don't need to care.

* the batch queue is not using mpirun.ch_gm and spawn processes 
directly. That's the case of mpiexec (http://www.osc.edu/~pw/mpiexec/) 
for example. In this case, the spawner should duplicate the protocol 
used by mpirun.ch_gm. This protocol is not explicitely documented, but 
it's trivial and the source is open. It used to changes slighlty between 
releases of MPICH-GM, but it has been stable for a while.

> (The program you need to use is gm_board_info, which will tell you which
> ones are free. But, if you don't have interactive users, you don't really
> care about ports get allocated outside of SGE, and can use a hardcoded
> value.)

Using hardcoded values or using gm_board_info (or gm_yp on GM-2) is a 
kludge. Supporting the mpirun.ch_gm information exchange mechanism is 
much easier/cleaner.

> Lastly, it would be nice if Myricom can do the integration themselves, or
> at least supply the batch system developers with hardware. (I requested
> this many years ago!!!)

We cannot ship free hardware to all batch queue developers for various 
reasons, but we can help with access to Myricom developers and to 
developement clusters for test (all software is already open source).

Patrick
-- 

Patrick Geoffray
Myricom, Inc.
http://www.myri.com