修論ツール
の編集
Top
/
修論ツール
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
島部/menu/template
[[横井さんのロビー/備忘録]] #ref(pisample.c) #ref(random.h) #ref(util_okuhara.h) ーーーーー以下、pisample.cソースコードーーーーー #include <stdio.h> #include <math.h> #include <mpi.h> void main(int argc, char* argv[]){ double PI25DT = 3.141592653589793238462643; double mypi, pi, h, sum, x, f, a; double t1, t2, t0, t_w; int n, myid, numprocs, i, rc; int ierr; ierr = MPI_Init(&argc, &argv); ierr = MPI_Comm_rank(MPI_COMM_WORLD, &myid); ierr = MPI_Comm_size(MPI_COMM_WORLD, &numprocs); if(myid==0){ printf(“Enter the number of intervals \n”); scanf(“%d”, &n); printf(“n=%d \n”, n) } ierr = MPI_Barrier(MPI_COMM_WORLD); t1 = MPI_Wtime(); ierr = MPI_Bcast(&n, 1, MPI_INT, 0, MPI_COMM_WORLD); h = 1.0 / n; sum = 0.0; for(i=myid+1; i<=n; i+=numprocs){ x = h * (i – 0.5); sum = sum + 4.0 / (1.0 + x*x); } mypi = h * sum; MPI_Reduce(&mypi, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); if(myid == 0){ printf(“pi is approximately: %18.16lf Error is: %18.16lf \n”, pi, fabs(pi-PI25DT)); } ierr = MPI_Barrier(MPI_COMM_WORLD); t2 = MPI_Wtime(); t0 = t2 – t1 ierr = MPI_Reduce(&t0, &t_w, 1, MPI_DOUBLE, MPI_MAX, 0, MPI_COMM_WORLD); if(myid == 0){ printf(“execution time = : %8.4lf [sec.] \n”, t_w); } rc = MPI_Finalize(); } コンパイル方法~ mpicc pisample.c -o pisample 実行方法~ mpirun --hostfile host -np 3 ./pisample ↑のnpの後の3は並列数を表す 途中でEnter the number of intervalsと言われて、整数を入力する。 しかし、どういう意味があるかまだ理解していない。 恐らく、正確にする最大の桁数? **参考サイト [#w99fc29c] http://aero.me.tut.ac.jp/Lectures/CFD/%89%89%8FK%82l%82o%82h.pdf~ http://www.r-ccs.riken.jp/r-ccssite/wp-content/uploads/2013/07/ss13_enshu2.pdf~ https://www.cc.u-tokyo.ac.jp/public/VOL9/special/10.pdf
タイムスタンプを変更しない
[[横井さんのロビー/備忘録]] #ref(pisample.c) #ref(random.h) #ref(util_okuhara.h) ーーーーー以下、pisample.cソースコードーーーーー #include <stdio.h> #include <math.h> #include <mpi.h> void main(int argc, char* argv[]){ double PI25DT = 3.141592653589793238462643; double mypi, pi, h, sum, x, f, a; double t1, t2, t0, t_w; int n, myid, numprocs, i, rc; int ierr; ierr = MPI_Init(&argc, &argv); ierr = MPI_Comm_rank(MPI_COMM_WORLD, &myid); ierr = MPI_Comm_size(MPI_COMM_WORLD, &numprocs); if(myid==0){ printf(“Enter the number of intervals \n”); scanf(“%d”, &n); printf(“n=%d \n”, n) } ierr = MPI_Barrier(MPI_COMM_WORLD); t1 = MPI_Wtime(); ierr = MPI_Bcast(&n, 1, MPI_INT, 0, MPI_COMM_WORLD); h = 1.0 / n; sum = 0.0; for(i=myid+1; i<=n; i+=numprocs){ x = h * (i – 0.5); sum = sum + 4.0 / (1.0 + x*x); } mypi = h * sum; MPI_Reduce(&mypi, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); if(myid == 0){ printf(“pi is approximately: %18.16lf Error is: %18.16lf \n”, pi, fabs(pi-PI25DT)); } ierr = MPI_Barrier(MPI_COMM_WORLD); t2 = MPI_Wtime(); t0 = t2 – t1 ierr = MPI_Reduce(&t0, &t_w, 1, MPI_DOUBLE, MPI_MAX, 0, MPI_COMM_WORLD); if(myid == 0){ printf(“execution time = : %8.4lf [sec.] \n”, t_w); } rc = MPI_Finalize(); } コンパイル方法~ mpicc pisample.c -o pisample 実行方法~ mpirun --hostfile host -np 3 ./pisample ↑のnpの後の3は並列数を表す 途中でEnter the number of intervalsと言われて、整数を入力する。 しかし、どういう意味があるかまだ理解していない。 恐らく、正確にする最大の桁数? **参考サイト [#w99fc29c] http://aero.me.tut.ac.jp/Lectures/CFD/%89%89%8FK%82l%82o%82h.pdf~ http://www.r-ccs.riken.jp/r-ccssite/wp-content/uploads/2013/07/ss13_enshu2.pdf~ https://www.cc.u-tokyo.ac.jp/public/VOL9/special/10.pdf
テキスト整形のルールを表示する