oops On 7/26/06, Marcelo Stival <marsti...@gmail.com> 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