Hi,
I notice that a simple MPI program in which rank 0 sends 4 bytes to each rank and receives a reply uses a
considerable amount of CPU in system call.s
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
61.10 0.016719 3 5194 gettimeofday
20.77 0.005683 2 2596 epoll_wait
18.13 0.004961 2 2595 sched_yield
0.00 0.000000 0 4 write
0.00 0.000000 0 4 stat
0.00 0.000000 0 2 readv
0.00 0.000000 0 2 writev
------ ----------- ----------- --------- --------- ----------------
100.00 0.027363 10397 total
and
Process 2512 attached - interrupt to quit
16:32:17.793039 sched_yield() = 0 <0.000078>
16:32:17.793276 gettimeofday({1362065537, 793330}, NULL) = 0 <0.000070>
16:32:17.793460 epoll_wait(4, {}, 32, 0) = 0 <0.000114>
16:32:17.793712 gettimeofday({1362065537, 793773}, NULL) = 0 <0.000097>
16:32:17.793914 sched_yield() = 0 <0.000089>
16:32:17.794107 gettimeofday({1362065537, 794157}, NULL) = 0 <0.000083>
16:32:17.794292 epoll_wait(4, {}, 32, 0) = 0 <0.000072>
16:32:17.794457 gettimeofday({1362065537, 794541}, NULL) = 0 <0.000115>
16:32:17.794695 sched_yield() = 0 <0.000079>
16:32:17.794877 gettimeofday({1362065537, 794927}, NULL) = 0 <0.000081>
16:32:17.795062 epoll_wait(4, {}, 32, 0) = 0 <0.000079>
16:32:17.795244 gettimeofday({1362065537, 795294}, NULL) = 0 <0.000082>
16:32:17.795432 sched_yield() = 0 <0.000096>
16:32:17.795761 gettimeofday({1362065537, 795814}, NULL) = 0 <0.000079>
16:32:17.795940 epoll_wait(4, {}, 32, 0) = 0 <0.000080>
16:32:17.796123 gettimeofday({1362065537, 796191}, NULL) = 0 <0.000121>
16:32:17.796388 sched_yield() = 0 <0.000127>
16:32:17.796635 gettimeofday({1362065537, 796722}, NULL) = 0 <0.000121>
16:32:17.796951 epoll_wait(4, {}, 32, 0) = 0 <0.000089>
What is the purpose of this behavior.
Thanks,
David