MPI学習ノート(1)
1363 ワード
今日はMPIを書く勉強を始めました。
1)mpi環境の設定
2)小セグメントのMPIコード試験を持ってきました。http://blog.csdn.net/zhuliting/article/details/5868425
コンパイル:mpicxx sum.cpp-o sum
実行:mpirun-np 4./sum
1)mpi環境の設定
2)小セグメントのMPIコード試験を持ってきました。http://blog.csdn.net/zhuliting/article/details/5868425
#include
#include
#include "mpi.h"
int main(int argc,char *argv[])
{
int i,j,k,n,myid,numprocs,namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
double startwtime=0.0,endwtime;
float mysum, sum;
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&myid);
MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
MPI_Get_processor_name(processor_name,&namelen);
n = 1;
for(j = 1; j <= 1000; ++j) {
mysum = 0;
for(k = myid + 1; k <= 16; k += numprocs) {
mysum += k;
}
MPI_Reduce(&mysum,&sum,1,MPI_FLOAT,MPI_SUM,0,MPI_COMM_WORLD);
}
for(i = 1; i <= 14; ++i) {
n = n << 2;
startwtime=MPI_Wtime();
for(j = 1; j <= 100; ++j) {
mysum = 0;
for(k = myid + 1; k <= n; k += numprocs) {
mysum += k;
}
MPI_Reduce(&mysum,&sum,1,MPI_FLOAT,MPI_SUM,0,MPI_COMM_WORLD);
}
if (myid == 0) {
fprintf(stderr,"4^%d: total 100 times cost:%lf s and result is %f/n", i
, (MPI_Wtime() - startwtime), sum);
}
}
MPI_Finalize();
return 0;
}
3)コンパイル運転コンパイル:mpicxx sum.cpp-o sum
実行:mpirun-np 4./sum