Tim,

It looks a little bit better. Here are the latencies for 1 to 4 bytes messages as well as for the maximum length in Netpipe (8 MB).

old ob1:
  0:       1 bytes    694 times -->      0.06 Mbps in     137.54 usec
  1:       2 bytes    727 times -->      0.11 Mbps in     140.54 usec
  2:       3 bytes    711 times -->      0.16 Mbps in     141.54 usec
  3:       4 bytes    470 times -->      0.22 Mbps in     140.55 usec
121: 8388605 bytes      3 times -->    889.75 Mbps in   71929.97 usec
122: 8388608 bytes      3 times -->    889.72 Mbps in   71932.47 usec
123: 8388611 bytes      3 times -->    889.59 Mbps in   71943.16 usec

new ob1:
  0:       1 bytes    760 times -->      0.07 Mbps in     116.08 usec
  1:       2 bytes    861 times -->      0.13 Mbps in     116.73 usec
  2:       3 bytes    856 times -->      0.20 Mbps in     116.69 usec
  3:       4 bytes    571 times -->      0.26 Mbps in     117.48 usec
121: 8388605 bytes      3 times -->    890.37 Mbps in   71880.14 usec
122: 8388608 bytes      3 times -->    890.33 Mbps in   71883.64 usec
123: 8388611 bytes      3 times -->    890.40 Mbps in   71878.00 usec

teg:
  0:       1 bytes    867 times -->      0.07 Mbps in     114.91 usec
  1:       2 bytes    870 times -->      0.13 Mbps in     115.99 usec
  2:       3 bytes    862 times -->      0.20 Mbps in     114.37 usec
  3:       4 bytes    582 times -->      0.26 Mbps in     115.20 usec
121: 8388605 bytes      3 times -->    893.42 Mbps in   71634.49 usec
122: 8388608 bytes      3 times -->    893.22 Mbps in   71651.18 usec
123: 8388611 bytes      3 times -->    893.24 Mbps in   71649.35 usec

uniq:
  0:       1 bytes    870 times -->      0.07 Mbps in     114.59 usec
  1:       2 bytes    872 times -->      0.13 Mbps in     114.20 usec
  2:       3 bytes    875 times -->      0.20 Mbps in     114.52 usec
  3:       4 bytes    582 times -->      0.27 Mbps in     113.70 usec
121: 8388605 bytes      3 times -->    893.41 Mbps in   71635.64 usec
122: 8388608 bytes      3 times -->    893.57 Mbps in   71623.01 usec
123: 8388611 bytes      3 times -->    893.39 Mbps in   71637.67 usec

raw tcp:
  0:       1 bytes   1081 times -->      0.08 Mbps in      90.74 usec
  1:       2 bytes   1102 times -->      0.17 Mbps in      90.88 usec
  2:       3 bytes   1100 times -->      0.25 Mbps in      90.66 usec
  3:       4 bytes    735 times -->      0.34 Mbps in      89.21 usec
121: 8388605 bytes      3 times -->    894.90 Mbps in   71516.32 usec
122: 8388608 bytes      3 times -->    894.99 Mbps in   71508.84 usec
123: 8388611 bytes      3 times -->    894.96 Mbps in   71511.51 usec

The changes seems to remove around 20 micro-seconds ... that's not bad. However, we are still 25 microseconds away from the raw TCP stream. And these 25 microsecond should come from somewhere on the TCP BTL because the request management is quite quick in Open MPI. I think I have an explanation. In the Netpipe TCP they are not using any select or poll functions, they just wait on the receive until they get the full messages. As we do a select/poll before going to read from the socket that should explain at least partially the difference. But there is still a small problem. Why ob1 is 3 micro- seconds slower than teg or uniq ?

  Thanks,
    george.

PS: I will print again the graph and send them around this evening because the rest on the data are on my laptop (and it's at home right now).

On Nov 29, 2005, at 12:36 PM, Tim S. Woodall wrote:

George,

Can you try out the changes I just commited on the trunk? We were doing
more select/recvs then necessary.

Thanks,
Tim


George Bosilca wrote:
I run Netpipe on 4 different clusters with differents OSes and Eternet devices. The results is that nearly the same behaviour happens all the time for small messages. Basically, our latency is really bad. Attached are 2 of the graphs on one MAC OS X cluster (wotan) and a Linux 2.6.10 32 bits one. The graph are for Netpipe compiled over tcp, and for Open
MPI with all the PMLs (uniq, teg and ob1).Here is the global trend:

- we are always slower than native TCP (what a guess!)

- uniq is faster than teg by a fraction of second (it's more visible on
fast networks).

- teg and uniq are always better than ob1 in terms of latency.

- the behaviour of ob1 differ on wotan and boba. On boba the
performances are a lot closer to the other PML when on wotan it's like
40 micro-second slower (it nearly double the raw TCP latency).

On the same nodes I run other Netpipe with SM and MX and the results are pretty good. So I think we have this latency problem only on TCP. I will
take a look to see how exactly is happens but any help is welcome.

  george.

"We must accept finite disappointment, but we must never lose infinite
hope."
                                  Martin Luther King


--------------------------------------------------------------------- ---

_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel
_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel

"Half of what I say is meaningless; but I say it so that the other half may reach you"
                                  Kahlil Gibran


Reply via email to