[MPICH] Response too slow! running "mpiexec -n 5 cpi"
章少衡
shc1515 at yahoo.com.tw
Mon Aug 14 05:20:03 CDT 2006
hello, Rusty
Thanks for your comments.
i do some tests as shown below:
1.
The followings were the execution time for each command:
mpdboot -n 8 -f myhosts -------> 2 seconds
mpdtrace -l -------> instantaneous
mpdringtest -------> less than a second
The response to mpdringtest was
"time for 1 loops = 0.00226........ seconds"
2.
Another program was tested to estimate the network transmission speed. I "think" the speed was
almost 450M Bits/second: 450000000 Bits per second=8(bits per byte)*4(bytes per
double)*2000000(size in double)*50(rounds)*2(transmitting times per broadcast)/13.649424(seconds)
The running results:
[.....]$ mpiexec -n 4 mytestcodes
w ----> 'w' was output 1 seconds after the command keyed in
w
w
w
0
1
3
2
wall clock time = 13.649424
wall clock time = 13.814960
[.....]$ mpiexec -n 8 mytestcodes
w --------> response very slowly
w
w
w
w
w
w
w
0
1
2
3
5
6
4
7
wall clock time = 19.470830
wall clock time = 20.812201
The followings were the codes:
#include <mpi.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int myid;
#define LLL 2000000
double lotus[LLL];
char processor_name[32];
int main(int argc, char *argv[])
{
int numprocs,merror;
int namelen;
//MPI=====================================================================================
fprintf(stderr,"w\n");
fflush(stderr);
merror=MPI_Init(&argc,&argv);
if(merror!=0)
{
printf("Error intializing MPI program. Terminating.\n");
MPI_Abort(MPI_COMM_WORLD,merror);
MPI_Finalize();
return -1;
}
MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
//nodemax=numprocs-1;///////////////////////////
MPI_Comm_rank(MPI_COMM_WORLD,&myid);
MPI_Get_processor_name(processor_name,&namelen);
fprintf(stderr,"%d\n",myid);
fflush(stderr);
double startwtime;
if(myid==0)
startwtime= MPI_Wtime();
for(int asd=0;asd<50;asd++)
MPI_Bcast(lotus,LLL,MPI_DOUBLE,0,MPI_COMM_WORLD);
double endwtime;
if(myid==0)
{
endwtime = MPI_Wtime();
printf("wall clock time = %f\n",endwtime-startwtime);
}
if(myid==0)
startwtime= MPI_Wtime();
for( asd=0;asd<50;asd++)
MPI_Bcast(lotus,LLL,MPI_DOUBLE,numprocs-1,MPI_COMM_WORLD);
if(myid==0)
{
endwtime = MPI_Wtime();
printf("wall clock time = %f\n",endwtime-startwtime);
}
MPI_Finalize();
return 0;
}
Thanks for your patience!
--- Rusty Lusk <lusk at mcs.anl.gov> wrote:
> That is unusually slow. I would expect it to take less than a second.
> How long does it take to do mpdtrace? You can time how long it takes
> for a message to traverse the mpd ring with mpdringtest. Use the -help
> argument for each of these commands to find out more about them.
>
> Rusty Lusk
>
> From: 章少衡 <shc1515 at yahoo.com.tw>
> Subject: [MPICH] Response too slow! running "mpiexec -n 5 cpi"
> Date: Sun, 13 Aug 2006 18:53:41 +0800 (CST)
>
> > Is it a normal operation?
> >
> > After input the command
> > mpiexec -n 5 cpi
> >
> > it took almost 22 seconds to show the response
> > "
> > Process 0 of 5 on server
> > Process 1 of 5 on c2
> > Process 2 of 5 on c4
> > Process 3 of 5 on c3
> > Process 4 of 5 on c1
> > .....
> > wall clock time = 0.005223
> > "
> >
> > Is it normal?
> >
> > here is my system:
> >
> > 3Com Baseline 10/100/1000 Switch 8-Port #3C16477
> > AMD Athlon 64 4000+
> > NVIDIA GeForce™6100 GPU + nForce™430 MCP
> >
_________________________________________________________
捇誥轎煤G蚘眊ㄜ笢弊郔Ч轎煤滅馮毀嶼僵閉湮蚘眊
http://cn.mail.yahoo.com/?id=77072
More information about the mpich-discuss
mailing list