Hi,
I found that btl_tcp_use_nagle was negated in openmpi-1.7.4rc1, which causes severe slowdown of tcp-network for smaller size(< 1024) in our environment as show at the bottom. This happened in SVN r28719, where new MCA variable system was added. The flag of tcp_not_use_nodelay was newly introduced as the negation of tcp_use_nodelay in r28719(btl_tcp_component.c). r28361(btl_tcp_component.c): 218 mca_btl_tcp_component.tcp_use_nodelay = 219 !mca_btl_tcp_param_register_int ("use_nagle", "Whether to use Nagle's algorithm or not (using Nagle's algo rithm may increase short message latency)", 0); r28719(btl_tcp_component.c): 242 mca_btl_tcp_param_register_int ("use_nagle", "Whether to use Nagle's algorithm or not (using Nagle's algorithm may increase short message latency)", 0, &mca_btl_tcp_component.tcp_not_use_nodelay); In spite of this negation, the socket option was set by tcp_not_use_nodelay as same as before in btl_tcp_endpoint.c. I think the line 515 should be: optval = !mca_btl_tcp_component.tcp_not_use_nodelay; /* tmishima */ I already confirmed that this fix worked well with openmpi-1.7.4rc1. btl_tcp_endpoint.c @ 28719 : 514 #if defined(TCP_NODELAY) 515 optval = mca_btl_tcp_component.tcp_not_use_nodelay; 516 if(setsockopt(sd, IPPROTO_TCP, TCP_NODELAY, (char *)&optval, sizeof(optval)) < 0) { 517 BTL_ERROR(("setsockopt(TCP_NODELAY) failed: %s (%d)", 518 strerror(opal_socket_errno), opal_socket_errno)); 519 } 520 #endif Regards, Tetsuya Mishima [mishima@manage OMB-3.1.1]$ mpirun -np 2 -host manage,node05 -mca btl self,tcp osu_bw # OSU MPI Bandwidth Test v3.1.1 # Size Bandwidth (MB/s) 1 0.00 2 0.01 4 0.01 8 0.03 16 0.05 32 0.10 64 0.16 128 0.35 256 0.74 512 20.30 1024 149.89 2048 182.88 4096 203.17 8192 217.08 16384 228.58 32768 232.21 65536 169.81 131072 232.67 262144 207.03 524288 224.22 1048576 233.30 2097152 233.51 4194304 234.64