oops On 7/26/06, Marcelo Stival <[email protected]> wrote:
Hi,
I got a problem with ompi when sending large number of messages from
process A to process B.
Process A only send... and B only receive (the buffers are reused)
int n = 4 * 1024;//number of iterations (messages to be sent)
consecutively
int len = 8; //len of each message
Process A (rank 0):
for (i=0; i < n; i++){
MPI_Send( sbuffer, len, MPI_BYTE,to,i,MPI_COMM_WORLD);
}
Process B (rank 1):
for (i=0; i < n; i++){
MPI_Recv(rbuffer,len,MPI_BYTE,recv_from , i,MPI_COMM_WORLD, &status);
}
(It's a benchmark program... will run with increasing messages sizes.. )
(I tried with the same tag on all iterations - and got the same)
It works fine for n (number of messages) equals to 3k (for example), but
do not work with n equals to 4k (for messages of 8 bytes 4k iterations seems
to be the treshould).
The error messages (complete output attached):
malloc debug: Request for 8396964 bytes failed (class/ompi_free_list.c,
142)
mpptest: btl_tcp_endpoint.c:624: mca_btl_tcp_endpoint_recv_handler:
Assertion `0
== btl_endpoint->endpoint_cache_length' failed.
Signal:6 info.si_errno:0(Success) si_code:-6()
Considerations:
It works for synchronous send (MPI_Ssend).
It works with MPICH2 ( 1.0.3).
It is a benchmark program, I want to flood the network to measure the
bandwidth ... (for different message sizes)
Thanks
Marcelo
output.tar
Description: Unix tar archive
