LAM/MPI logo

LAM/MPI General User's Mailing List Archives

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

From: Maureen O Flynn (maureen.oflynn_at_[hidden])
Date: 2007-07-03 09:49:54


Hello,

I am doing a research project to investigate the causes of
congestion in collective communications MPI_Gather and reduce
operations, and so am looking into how socket size may affect
performance in particular. I understand normally most users are not
to do
this when using LAM, but it is my particular research interest to see
how socket size or other run-time parameters may change the
congestion by resetting them to different values.

The LAM user guide advises that if 'rpi_tcp_sockbuf' parameter is
is used with the command line at run time with not its default
value of '-1', it then allows the program to reset the size from
defaults, so I want to know if the syntax of setting it to '0' is
ok as follows:

$ mpirun -ssi rpi_tcp_sockbuf 0 N <executable name>

and also then setting the new socket size with some code in program:

            sock = socket( PF_INET, SOCK_STREAM, 0 );
            ierr_setsock = setsockopt(sock,0, SO_SNDBUF, &val,
131072) ;
            ierr_setsock2 = setsockopt(sock,0, SO_RCVBUF, &val,
131072) ;

I cant find any further information or examples on the net so far,
and so I would be grateful if you could verify the above syntax for
correctness, that is if it is ok to use the '-ssi rpi_tcp_sockbuf 0'
as I have done. So far my experiments do not show any differences in
performance with changes and I think this may be because I have not in
fact resized them at all, and the default is still picked up, so
perhaps
the syntax used is incorrect.

thanks for your help.

----- Original Message -----

>
>
> I have a question about changing tcp socket sizes with
> > 'rpi_tcp_sockbuf' at run time
> > ...
> > Note that in my program I set the send and receive socket
> buffers
> > with the setsockopt(2) function as follows setting size to
> 131072.
>
>
> After reading the above 2 phrases, it's totally unclear to me what
> you
> are trying to do. Are you modifying the LAM/MPI library or deamons
> ?
> Or you are just running a MPI program ?
>
>
> If it's the latter, it's very uncommon what you are trying to do,
> so
> maybe more details will help us understand better. In principle, a
> MPI
> program should just use the LAM/MPI library as is, by calling the
> MPI
> functions, independent of the underlying message passing
> mechanism. By
> creating sockets yourself you are actually using a second data
> transmission mechanism between the processes that belong to your
> job,
> independent of the LAM/MPI one; in this case, if you are not
> calling
> the MPI functions, there is no involvement of the MPI library in
> your
> communication.
>
>
>
> --
> Bogdan Costescu
>
>