Hello --
I'm using MPI::Request::Waitany() in a while loop to collect data from 4
other nodes. After data from all nodes has been received, the data is
processed, and the Waitany() loop is restarted. I expected that most
this process will sit idle most of the time, waiting for data. Instead,
it appears to spin on the CPU (99% utilization). Is this a known bug?
If I do "mpirun -lamd," the problem goes away, but lamd then uses 15% of
the cpu.
I've included the gprof output below:
% cumulative self self total
time seconds seconds calls Ts/call Ts/call name
27.50 0.11 0.11 _shm_advance
22.50 0.20 0.09 _shm_proc_read_env
22.50 0.29 0.09 sread
10.00 0.33 0.04 _tcp_adv1
10.00 0.37 0.04 _tcp_proc_read_env
7.50 0.40 0.03 setsockblk
0.00 0.40 0.00 632 0.00 0.00
MPI::Comm::Irecv(void *, int, MPI::Datatype const &, int, int) const
I'm using LAM 6.5.6 (usysv) on Linux 2.4.18-10smp. For this
application, some data comes in via shared memory (same machine), and
some via TCP (different machine). The majority is local at the moment.
-- Nathan Parker
Lincoln Laboratory / MIT
_______________________________________________
This list is archived at http://www.lam-mpi.org/MailArchives/lam/
|