Patrick Geoffray | 11 Oct 2001 10:00

Re: [myrinet] GM_BOGUS_SEND_INTERRUPT

"Davis, Harvey" wrote:
> 
> Patrick
> 
> Thanks for replying.
> 
> I am using gm-1.5pre4 and mpich-1.2..8
GM-1.5pre4 is fine. Use mpich-1.2.1..7 and your problem shoudl go away.

> --enable-new-features
> --enable-linux-modversions
> --enable-linux-smp
> --enable-linux-directcopy

BTW, you should not pass any flags to configure in GM-1.5: the
new-features 
is enabled by default, configure figure out by itself the smp and
modversions 
usage and the directcopy is not activated in the driver yet.

> MPICH over GM is configured using the options suggested from the README with
> the addition of those required for SMP to work correctly (I am not sure what
> they were or I would write them down!!)

Beware also that in mpich-1.2.1..7, you do not need to enable or not
shared 
memory at compile time. The shared memory is always compiled, and it's
enabled 
by using --gm-use-shmem at the mpirun.ch_gm command line. Shared memory
is 
not use by default (without  --gm-use-shmem) because it seems that more
code 
prefer to overlap than do shared memory, but it may be a big win for
some code.

> I am using threads but all thread creation is done BEFORE MPI_Init() is
> called and only one thread ever accesses the mpi routines. Condition
> variable and mutexs are used throughout though.

That's fine. MPICH is not thread safe, but locking the MPI calls is 
perfectly safe.

> I was wondering if perhaps the threads were causing EINTR or
> other interrupts that GM does not handle?????? I thought that mayby small
> data volumes would complete in a small enough time
> frame as to not be interrupted, where as the large ones take too long and
> get premepted????

No. 1.2.1..7 should do the work.
You may even try to play with the recv policy : look for
blocking/polling/hybrid 
in the README-GM.

> If I have to re-write is there any reason why forked processes communicating
> over shared memory would not work???? (So long as all forking was done
> before MPI_Init())

You can fork as much as you want before to call MPI_Init. The GM port is 
open in MPI_Init, and them the fork support is limited (only vfork() is 
safe, and used by system() and popen()).

Let me know if mpich-1.2.1..7 (in /pub/MPICH-GM on the FTP server) is 
better.

Patrick

---------------------------------------------------------
|   Patrick Geoffray, Ph.D.    patrick <at> myri.com         |
|   Myricom, Inc.              http://www.myri.com      |
|   Cell: 865-389-8852         325 N. Santa Anita Ave.  |
|   Fax:  865-974-1950         Arcadia, CA 91006        |
---------------------------------------------------------


Gmane