LAM/MPI logo

LAM/MPI General User's Mailing List Archives

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just in this list

From: Stephan Mertens (Stephan.Mertens_at_[hidden])
Date: 2005-05-12 11:27:33


Jeff:

Thanks for running my program (the bug was a transcription error).
You are right, MPI_Bsend does trigger progress sometimes,
but apparently not always. A new version of my program (attached)
allocates enough buffer to prevent overflow in any case and prints out
a mark if the sender calls MPI_Buffer_detach.

Here is an extreme example (with sleep reduced to 1 second)

leonardo:~/projects/mpi/src$ mpirun n0,1 -ssi rpi tcp Bsend -b 1000000
Buffer size is 1000000
sending message 1 at Thu May 12 17:49:29 2005
sending message 2 at Thu May 12 17:49:30 2005
sending message 3 at Thu May 12 17:49:31 2005
sending message 4 at Thu May 12 17:49:32 2005
sending message 5 at Thu May 12 17:49:33 2005
sending message 6 at Thu May 12 17:49:34 2005
sending message 7 at Thu May 12 17:49:35 2005
sending message 8 at Thu May 12 17:49:36 2005
sending message 9 at Thu May 12 17:49:37 2005
sending message 10 at Thu May 12 17:49:38 2005
sender detaches buffer at Thu May 12 17:49:42 2005
****** message 1 received at Thu May 12 17:49:42 2005
****** message 2 received at Thu May 12 17:49:42 2005
****** message 3 received at Thu May 12 17:49:42 2005
****** message 4 received at Thu May 12 17:49:42 2005
****** message 5 received at Thu May 12 17:49:42 2005
****** message 6 received at Thu May 12 17:49:42 2005
****** message 7 received at Thu May 12 17:49:42 2005
****** message 8 received at Thu May 12 17:49:42 2005
****** message 9 received at Thu May 12 17:49:42 2005
****** message 10 received at Thu May 12 17:49:42 2005

As you can see, all messages are delivered not before the sender
forces them out by detaching the buffer. For other message sizes I
observe scenarios similar to yours.

We are using LAM 7.1.1 on a 2.6.10 SMP kernel (see laminfo below),
the two nodes above are linked by GBit ethernet.

Of course we don't use Bsend in any serious application. This is just
a pedagogical study for a <ad>book on "cluster computing"</ad>
that I am coauthoring :-)

Cheers,
Stephan

leonardo:~/projects/mpi/src$ laminfo
             LAM/MPI: 7.1.1
              Prefix: /usr
        Architecture: i686-pc-linux-gnu
       Configured by: root
       Configured on: Wed Apr 13 17:29:57 CEST 2005
      Configure host: hal
      Memory manager: ptmalloc2
          C bindings: yes
        C++ bindings: yes
    Fortran bindings: yes
          C compiler: gcc
        C++ compiler: g++
    Fortran compiler: g77
     Fortran symbols: double_underscore
         C profiling: yes
       C++ profiling: yes
   Fortran profiling: yes
      C++ exceptions: no
      Thread support: yes
       ROMIO support: yes
        IMPI support: no
       Debug support: no
        Purify clean: no
            SSI boot: globus (API v1.1, Module v0.6)
            SSI boot: rsh (API v1.1, Module v1.1)
            SSI boot: slurm (API v1.1, Module v1.0)
            SSI coll: lam_basic (API v1.1, Module v7.1)
            SSI coll: shmem (API v1.1, Module v1.0)
            SSI coll: smp (API v1.1, Module v1.2)
             SSI rpi: crtcp (API v1.1, Module v1.1)
             SSI rpi: lamd (API v1.0, Module v7.1)
             SSI rpi: sysv (API v1.0, Module v7.1)
             SSI rpi: tcp (API v1.0, Module v7.1)
             SSI rpi: usysv (API v1.0, Module v7.1)
              SSI cr: self (API v1.0, Module v1.0)

-- 
Stephan Mertens @ http://www.uni-magdeburg.de/mertens
Supercomputing in Magdeburg @ http://tina.nat.uni-magdeburg.de