I have a program where use MPI_Comm_spawn to spawn processes on several
remote nodes and then use MPI_Scatter to split and distribute some rather
large input matrices to these spawned nodes.
It seems like the bulk of the execution time for the program lies with using
MPI_Scatter. Has anyone else experienced this or benchmarked this command's
performance?
Is the bottleneck the speed of the physical connection between the master
node and all the slave nodes? or is there some overhead that i'm not taking
into account?
I am using C timing functions to measure the execution times. an excerpt of
the code i'm using is as follows:
#include <time.h>
clock_t timer_start,timer_stop;
double difference;
timer_start=clock();
MPI_SCATTER(.....);
.
.
.
timer_stop=clock();
difference = (double) (timer_stop-timer_start)/CLOCKS_PER_SEC;
printf("%4.3e seconds\n",difference)
typically 'difference' is on the order of 0.5 seconds, but i can physically
FEEL that its taking much longer than 0.5 seconds.. in fact, running an
independent stop watch on my computer shows that the total execution time is
more like on the order of 3 seconds or so, so i'm not sure whether this
great discrepencies is because i'm using the timer functions incorrectly,
or if there is some overhead incurred from using MPI_Scatter that i'm not
measuring.
Thank you,
Anne
___________________________________________________
Anne Pak, L1-50
Building 153 2G8
1111 Lockheed Martin Way
Sunnyvale, CA 94089
(408) 742-4369 (W)
(408) 742-4697 (F)
|