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
>
>
|