Microsoft Word - 計算科学演習第1回3.doc
|
|
|
- みずき かりこめ
- 7 years ago
- Views:
Transcription
1 スーパーコンピュータの基本的操作方法 2009 年 9 月 10 日高橋康人 1. スーパーコンピュータへのログイン方法 本演習では,X 端末ソフト Exceed on Demand を使用するが, 必要に応じて SSH クライアント putty,ftp クライアント WinSCP や FileZilla を使用して構わない Exceed on Demand を起動し, 以下のとおり設定 ( 各自のユーザ ID とパスワード * を入力 ) した上で緑の矢印のボタンでログインする 詳細については, を参照せよ スーパーコンピュータ用のパスワードを設定できていない場合, からパスワードを設定する 机の上のマニュアルには Exceed on Demand と FileZilla の使用法が書かれているので, 必要に応じて参照せよ また,putty,WinSCP の使用方法については, 以下のホームページを参考にせよ 2 コンパイルの方法と会話型の実行方法 2.1 逐次実行の場合 コンパイル (1) C 言語 ( 詳細は, fcc [ オプションの並び ] [ ファイル名の並び ] ( 例.fcc test.c test.c を翻訳, 結合編集 ) (2) Fortran( 詳細は, frt [ オプションの並び ] [ ファイル名の並び ] ( 例.frt test.f90 test.f90 を翻訳, 結合編集 )
2 2.1.2 実行方法./ [ 実行ファイル名 ] ( 例../a.out 実行 ) また, 実行時間を知りたい場合には,time コマンドを使って下記のように実行する time./a.out 実行時間の計測 tcsh の場合 6.394u 0.091s 0: % 0+0k 0+0io 1pf+0w 出力結果左から順に, ユーザー時間 ( 計算時間 ):6.394 秒, システム時間 :0.091 秒, 実時間 ( コマンドを起動してから終了するまでの経過時間 ):0 分 6.59 秒を表す 実時間を見ればよい bash の場合 real 0m6.425s ( 実時間 ( 経過時間 )) user 0m6.252s ( ユーザー時間 ( 計算時間 )) sys 0m0.040s ( システム時間 ) 主要なコンパイルオプション -c: オブジェクトファイルの作成までを実行 -o name: 実行可能ファイル, オブジェクトファイルの名前を name に変更 ( 省略時は a.out) -Kfast: 高速化のための最適化オプション 2.2 OpenMP のディレクティブを有効化するコンパイルと実行方法 ( 詳細 : コンパイルオプション翻訳 結合編集には, コンパイルコマンド (frt, fcc) に -KOMP オプションを指定 例.(C 言語 )fcc -KOMP test_omp.c (Fortran)frt -KOMP test_omp.f スレッド数の指定 実行 tcsh の場合 $ echo $OMP_NUM_THREADS 現在の環境変数 OMP_NUM_THREADS の値を確認 4 現在の環境変数 OMP_NUM_THREADS には 4 が設定されている $./a.out 実行 (4 並列 ) $ setenv OMP_NUM_THREADS 8 並列数を 8 に指定 $./a.out 実行 (8 並列 ) bash の場合 $ echo $OMP_NUM_THREADS 現在の環境変数 OMP_NUM_THREADS の値を確認 4 現在の環境変数 OMP_NUM_THREADS には 4 が設定されている $./a.out 実行 (4 並列 ) $ export OMP_NUM_THREADS=8 並列数を 8 に指定
3 2.3 MPI プログラムのコンパイルと実行方法 ( 詳細 : コンパイル (1) C 言語 mpifcc [ オプションの並び ] [ ファイル名の並び ] ( 例.mpifcc test.c) (2) Fortran mpifrt [ オプションの並び ] [ ファイル名の並び ] ( 例.mpifrt test.f90) 実行方法 mpiexec -n N 実行ファイル名 (-n N: プロセスの並列数 N を指定 ) 例.$ mpiexec -n 8./a.out (8 並列で実行 ) 3. NQS の使用方法 ( 3.1 ジョブの実行方法 ( スクリプトを実行ファイルがあるディレクトリに移動しておく ) ジョブの投入: $ qsub sample.sh ジョブの確認: $ qstat ジョブの途中経過確認:$ qcat nqs ジョブのキャンセル: $ qdel nqs ( ジョブをキャンセル ) $ qdel -k nqs ( 実行中のジョブをキャンセル ) 結果ファイル: Nxxxxxx.oxxxxxx 例.$ qsub nqs.sh -lp 8 ( スレッド数をコマンドラインで指定 ) $ qsub nqs.sh -lp 8 ( プロセス数をコマンドラインで指定 ) $ qsub nqs.sh -lm 1.2gb ( プロセスあたりのメモリサイズの指定 ) 3.2 ジョブスクリプトの形式 # この例は,MPI で 2 並列, スレッド並列で 4 並列 -> 計 2x8 # # 標準出力標準エラー出力をまとめる # 統計情報を出力する (-oi ノード情報も含めて統計情報の標準出力 ) eh # キュー名の指定 ( 各自設定 :sh20103( 情報学研究科 )or qh10160( それ以外 )) # - eh はエントリコース用のキュー # グループコース用のキュー名はグループ名と同じ名前 # 例えば ghxxxxx のグループの場合, キュー名は ghxxxxx eh # グループの指定 # キューの指定で指定したキュー名と同じ名前をグループ名として指定 2 # プロセス数 ( 各自設定 ) 4 # プロセスあたりの CPU 数 ( スレッド並列数 ) ( 各自設定 ) 1gb # プロセスあたりのメモリサイズ ( 各自設定 ) set -x # qsub コマンド実行時のディレクトリに移動 cd $QSUB_WORKDIR # 環境変数 OMP_NUM_THREADS の定義 OMP_NUM_THREADS=$QSUB_CPUS; export OMP_NUM_THREADS # MPI プログラム./a.out を実行 mpiexec -n $QSUB_VNODES./a.out ( 各自設定 )
4 # 以降はコメント # と記述した場合は, それ以降が NQS のオプション サンプルスクリプトを参考に, おもに下線部を変更すればよい サンプルスクリプトが以下の URL から入手できるので, 必要に応じて参考にせよ 4. サンプルプログラムの実行 4.1 逐次実行 サンプルプログラムを作成(C または Fortran のどちらか一方で行えばよい ) (C 言語 ) (Fortran) #include <stdio.h> #include <stdlib.h> #include <time.h> #include <sys/time.h> #include <sys/resource.h> #define N 1024 #define ZERO (double)(0.0) #define THREE (double)(3.0) double getrusage_sec(){ struct rusage t; struct timeval tv; getrusage(rusage_self, &t); tv = t.ru_utime; return tv.tv_sec + (double)tv.tv_usec*1e-6; int main(){ static int i,j,k; static double a[n][n],b[n][n],c[n][n],s; static double t1,t2; srand(1); for(i=0;i<n;i++){ for(j=0;j<n;j++){ a[i][j]=rand()/(double)rand_max; b[i][j]=rand()/(double)rand_max; t1 = getrusage_sec(); for(i=0;i<n;i++){ for(j=0;j<n;j++){ c[i][j]=zero; for(k=0;k<n;k++){ c[i][j]=c[i][j]+a[i][k]*b[k][j]/three; t2 = getrusage_sec(); printf("time = %10.5f\n", t2 - t1); s=zero; for(i=0;i<n;i+=10){ for(j=0;j<n;j+=10){ if(a[i][j]>s) s=a[i][j]; if(b[i][j]>s) s=b[i][j]; if(c[i][j]>s) s=c[i][j]; printf("%f\n",s); return 0; program main integer i, j, k parameter (N=1024, ZERO=0.0d0, THREE=3.0d0) double precision A(N,N),B(N,N),C(N,N),s real t1,t2 call random_number(a) call random_number(b) call cpu_time(t1) do i=1,n do j=1,n C(i,j)=ZERO do k=1,n C(i,j)=C(i,j)+A(i,k)*B(k,j)/THREE call cpu_time(t2) write(6,*) (t2-t1), ' sec (CPU time)' s=zero DO I=1,N,10 DO J=1,N,10 if(a(j,i).gt. s) then S=A(j,i) if(b(j,i).gt. s) then S=B(j,i) if(c(j,i).gt. s) then S=C(j,i) write(6,*) s end program main
5 コンパイル fcc Kfast o sample1 single_test.c または frt Kfast o sample1 single_test.f90 実行./sample1 NQS ジョブの投入 上記 URL の nqs_group_single.sh を参考にして, スクリプトを編集 4.2 OpenMP を用いた並列計算 サンプルプログラムを作成(C または Fortran のどちらか一方で行えばよい ) (C 言語 ) #include "omp.h" #include <stdio.h> #include <math.h> #include <sys/time.h> int main(){ int split, i ; double height, width, area, pai, time ; struct timeval stp, etp ; gettimeofday(&stp, NULL) ; area = 0 ; split = ; width = 1.0 / (double)split ; #pragma omp parallel for reduction(+:area) private(height) for(i=0; i<split; i++){ height = sqrt(1.0 - pow((i * width), 2.0)) ; area = area + height * width ; pai = 4.0 * area ; printf("pai = %lf\n", pai) ; gettimeofday(&etp, NULL) ; time = (double)(etp.tv_usec - stp.tv_usec) / ; time += (double)(etp.tv_sec - stp.tv_sec) ; printf("%lf sec\n", time) ; return 0; (Fortran) program circle integer split, i real*8 height, width, area, pai, stime, etime call gettod(stime) area = 0 split = width = 1.d0 / split!$omp PARALLEL DO REDUCTION(+ : area) PRIVATE(height) do i = 0, split-1 height = sqrt(1.d0 - (real(i) * width) ** 2) area = area + height * width enddo!$omp END PARALLEL DO pai = 4.d0 * area print *, "pai = ", pai call gettod(etime) print *, (etime - stime) / , "sec" end
6 コンパイル fcc KOMP o sample2 omp_test.c または frt KOMP o sample2 omp_test.f90 スレッド数を変更して実行./sample2 setenv OMP_NUM_THREADS 8./sample2 NQS ジョブの投入 上記 URL の nqs_group_thread.sh を参考にして, スクリプトを編集 4.3 MPI を用いた並列計算 サンプルプログラムを作成(C または Fortran のどちらか一方で行えばよい ) (C 言語 ) #include <stdio.h> #include "mpi.h" #define PROCS 4 int main(int argc, char *argv[]){ double a, b; int size_world,rank_world; MPI_Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank_world); MPI_Comm_size(MPI_COMM_WORLD, &size_world); if(size_world!= PROCS){ printf("program needs %d processes.\n", PROCS); MPI_Abort(MPI_COMM_WORLD, 1); return (1); if ( rank_world==0 ){ a = 3.0; b = 2.0; printf("a=%lf, b=%lf\n",a,b); MPI_Bcast(&a,1,MPI_DOUBLE,0,MPI_COMM_WORLD); MPI_Bcast(&b,1,MPI_DOUBLE,0,MPI_COMM_WORLD); switch( rank_world ){ case 0: printf("rank=%d a+b=%lf\n",rank_world,a+b); case 1: printf("rank=%d a-b=%lf\n",rank_world,a-b); case 2: printf("rank=%d a*b=%lf\n",rank_world,a*b); case 3: printf("rank=%d a/b=%lf\n",rank_world,a/b); MPI_Finalize(); return 0;
7 (Fortran) program mpi_test include 'mpif.h' double precision a, b integer rank_world, size_world, ierror PARAMETER (PROCS=4) call MPI_Init(ierror) call MPI_Comm_rank(MPI_COMM_WORLD, rank_world, ierror) call MPI_Comm_size(MPI_COMM_WORLD, size_world, ierror) if( size_world.ne. PROCS ) then write(6,*) 'Program needs', PROCS, ' processes.' call MPI_Abort(MPI_COMM_WORLD, 9, ierror) if ( rank_world.eq. 0 ) then a=3.d0 b=2.d0 write(6,*) 'a=', a, ' b=', b call MPI_Bcast(a,1,MPI_DOUBLE,0,MPI_COMM_WORLD,ierror) call MPI_Bcast(b,1,MPI_DOUBLE,0,MPI_COMM_WORLD,ierror) select case(rank_world) case(0) write(6,*) 'rank=', rank_world, ' a+b=', a+b case(1) write(6,*) 'rank=', rank_world, ' a-b=', a-b case(2) write(6,*) 'rank=', rank_world, ' a*b=', a*b case(3) write(6,*) 'rank=', rank_world, ' a/b=', a/b end select call MPI_Finalize(ierror) end program mpi_test コンパイル mpifcc o sample3 mpi_test.c または mpifrt o sample3 mpi_test.f90 プロセス数を 4 として実行 mpiexec n 4./sample3 NQS ジョブの投入 上記 URL の nqs_group_mpi.sh を参考にして, スクリプトを編集
演習1: 演習準備
演習 1: 演習準備 2013 年 8 月 6 日神戸大学大学院システム情報学研究科森下浩二 1 演習 1 の内容 神戸大 X10(π-omputer) について システム概要 ログイン方法 コンパイルとジョブ実行方法 OpenMP の演習 ( 入門編 ) 1. parallel 構文 実行時ライブラリ関数 2. ループ構文 3. shared 節 private 節 4. reduction 節
¥Ñ¥Ã¥±¡¼¥¸ Rhpc ¤Î¾õ¶·
Rhpc COM-ONE 2015 R 27 12 5 1 / 29 1 2 Rhpc 3 forign MPI 4 Windows 5 2 / 29 1 2 Rhpc 3 forign MPI 4 Windows 5 3 / 29 Rhpc, R HPC Rhpc, ( ), snow..., Rhpc worker call Rhpc lapply 4 / 29 1 2 Rhpc 3 forign
<4D F736F F F696E74202D D F95C097F D834F E F93FC96E5284D F96E291E85F8DE391E52E >
SX-ACE 並列プログラミング入門 (MPI) ( 演習補足資料 ) 大阪大学サイバーメディアセンター日本電気株式会社 演習問題の構成 ディレクトリ構成 MPI/ -- practice_1 演習問題 1 -- practice_2 演習問題 2 -- practice_3 演習問題 3 -- practice_4 演習問題 4 -- practice_5 演習問題 5 -- practice_6
コードのチューニング
OpenMP による並列化実装 八木学 ( 理化学研究所計算科学研究センター ) KOBE HPC Spring School 2019 2019 年 3 月 14 日 スレッド並列とプロセス並列 スレッド並列 OpenMP 自動並列化 プロセス並列 MPI プロセス プロセス プロセス スレッドスレッドスレッドスレッド メモリ メモリ プロセス間通信 Private Private Private
OpenMP (1) 1, 12 1 UNIX (FUJITSU GP7000F model 900), 13 1 (COMPAQ GS320) FUJITSU VPP5000/64 1 (a) (b) 1: ( 1(a))
OpenMP (1) 1, 12 1 UNIX (FUJITSU GP7000F model 900), 13 1 (COMPAQ GS320) FUJITSU VPP5000/64 1 (a) (b) 1: ( 1(a)) E-mail: {nanri,amano}@cc.kyushu-u.ac.jp 1 ( ) 1. VPP Fortran[6] HPF[3] VPP Fortran 2. MPI[5]
OpenMPプログラミング
OpenMP 基礎 岩下武史 ( 学術情報メディアセンター ) 1 2013/9/13 並列処理とは 逐次処理 CPU1 並列処理 CPU1 CPU2 CPU3 CPU4 処理 1 処理 1 処理 2 処理 3 処理 4 処理 2 処理 3 処理 4 時間 2 2 種類の並列処理方法 プロセス並列 スレッド並列 並列プログラム 並列プログラム プロセス プロセス 0 プロセス 1 プロセス間通信 スレッド
XcalableMP入門
XcalableMP 1 HPC-Phys@, 2018 8 22 XcalableMP XMP XMP Lattice QCD!2 XMP MPI MPI!3 XMP 1/2 PCXMP MPI Fortran CCoarray C++ MPIMPI XMP OpenMP http://xcalablemp.org!4 XMP 2/2 SPMD (Single Program Multiple Data)
ex01.dvi
,. 0. 0.0. C () /******************************* * $Id: ex_0_0.c,v.2 2006-04-0 3:37:00+09 naito Exp $ * * 0. 0.0 *******************************/ #include int main(int argc, char **argv) double
115 9 MPIBNCpack 9.1 BNCpack 1CPU X = , B =
115 9 MPIBNCpack 9.1 BNCpack 1CPU 1 2 3 4 5 25 24 23 22 21 6 7 8 9 10 20 19 18 17 16 X = 11 12 13 14 15, B = 15 14 13 12 11 16 17 18 19 20 10 9 8 7 6 21 22 23 24 25 5 4 3 2 1 C = XB X dmat1 B dmat2 C dmat
DKA ( 1) 1 n i=1 α i c n 1 = 0 ( 1) 2 n i 1 <i 2 α i1 α i2 c n 2 = 0 ( 1) 3 n i 1 <i 2 <i 3 α i1 α i2 α i3 c n 3 = 0. ( 1) n 1 n i 1 <i 2 < <i
149 11 DKA IEEE754 11.1 DKA n p(x) = a n x n + a n 1 x n 1 + + a 0 (11.1) p(x) = 0 (11.2) p n (x) q n (x) = x n + c n 1 x n 1 + + c 1 x + c 0 q n (x) = 0 (11.3) c i = a i a n (i = 0, 1,..., n 1) (11.3)
並列計算導入.pptx
並列計算の基礎 MPI を用いた並列計算 並列計算の環境 並列計算 複数の計算ユニット(PU, ore, Pなど を使用して 一つの問題 計算 を行わせる 近年 並列計算を手軽に使用できる環境が急速に整いつつある >通常のP PU(entral Processing Unit)上に計算装置であるoreが 複数含まれている Intel ore i7 シリーズ: 4つの計算装置(ore) 通常のプログラム
演習準備
演習準備 2014 年 3 月 5 日神戸大学大学院システム情報学研究科森下浩二 1 演習準備の内容 神戸大 FX10(π-Computer) 利用準備 システム概要 ログイン方法 コンパイルとジョブ実行方法 MPI 復習 1. MPIプログラムの基本構成 2. 並列実行 3. 1 対 1 通信 集団通信 4. データ 処理分割 5. 計算時間計測 2 神戸大 FX10(π-Computer) 利用準備
A common.h include #include <stdio.h> #include <time.h> #define MAXN int A[MAXN], n; double start,end; void inputdata(
2 065762A 19 7 13 1 2 2.1 common.h include #include #include #define MAXN 1000000 int A[MAXN], n; double start,end; void inputdata(void) int i; // printf(" "); scanf("%d",&n); // printf("
C
C 1 2 1.1........................... 2 1.2........................ 2 1.3 make................................................ 3 1.4....................................... 5 1.4.1 strip................................................
内容に関するご質問は まで お願いします [Oakforest-PACS(OFP) 編 ] 第 85 回お試しアカウント付き並列プログラミング講習会 ライブラリ利用 : 科学技術計算の効率化入門 スパコンへのログイン テストプログラム起動 東京大学情報基盤セ
内容に関するご質問は [email protected] まで お願いします [Oakforest-PACS(OFP) 編 ] 第 85 回お試しアカウント付き並列プログラミング講習会 ライブラリ利用 : 科学技術計算の効率化入門 スパコンへのログイン テストプログラム起動 東京大学情報基盤センター特任准教授伊田明弘 1 講習会 : ライブラリ利用 [FX10] スパコンへのログイン ファイル転送
£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裵²ó ¨¡ À©¸æ¹½Â¤¡§¾ò·ïʬ´ô ¨¡
(2018) 2018 5 17 0 0 if switch if if ( ) if ( 0) if ( ) if ( 0) if ( ) (0) if ( 0) if ( ) (0) ( ) ; if else if ( ) 1 else 2 if else ( 0) 1 if ( ) 1 else 2 if else ( 0) 1 if ( ) 1 else 2 (0) 2 if else
OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£±¡Ë
2011 5 26 scalar Open MP Hello World Do (omp do) (omp workshare) (shared, private) π (reduction) scalar magny-cours, 48 scalar scalar 1 % scp. ssh / authorized keys 133. 30. 112. 246 2 48 % ssh 133.30.112.246
Microsoft PowerPoint - 演習2:MPI初歩.pptx
演習 2:MPI 初歩 - 並列に計算する - 2013 年 8 月 6 日 神戸大学大学院システム情報学研究科計算科学専攻横川三津夫 MPI( メッセージ パッシング インターフェース ) を使おう! [ 演習 2 の内容 ] はじめの一歩課題 1: Hello, world を並列に出力する. 課題 2: プロセス 0 からのメッセージを受け取る (1 対 1 通信 ). 部分に分けて計算しよう課題
memo
数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int
ex01.dvi
,. 0. 0.0. C () /******************************* * $Id: ex_0_0.c,v.2 2006-04-0 3:37:00+09 naito Exp $ * * 0. 0.0 *******************************/ #include int main(int argc, char **argv) { double
OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£±¡Ë
2012 5 24 scalar Open MP Hello World Do (omp do) (omp workshare) (shared, private) π (reduction) PU PU PU 2 16 OpenMP FORTRAN/C/C++ MPI OpenMP 1997 FORTRAN Ver. 1.0 API 1998 C/C++ Ver. 1.0 API 2000 FORTRAN
I I / 47
1 2013.07.18 1 I 2013 3 I 2013.07.18 1 / 47 A Flat MPI B 1 2 C: 2 I 2013.07.18 2 / 47 I 2013.07.18 3 / 47 #PJM -L "rscgrp=small" π-computer small: 12 large: 84 school: 24 84 16 = 1344 small school small
PowerPoint プレゼンテーション
計算機実習 Ⅰ FORTRAN 担当 2018.05.29 本日の課題 プログラムの基本ルールを理解し 以下が含まれるプログラムを作成する (1) 文法の基礎 ( フローチャートなど ) (2) 変数宣言 (3) 入出力 (4) 四則演算 (5) 組込関数 (6) 判定文 (7) リダイレクション PROGRAM MAIN INTEGER I, J, K REAL A, B, C CHARACTER
WinHPC ppt
MPI.NET C# 2 2009 1 20 MPI.NET MPI.NET C# MPI.NET C# MPI MPI.NET 1 1 MPI.NET C# Hello World MPI.NET.NET Framework.NET C# API C# Microsoft.NET java.net (Visual Basic.NET Visual C++) C# class Helloworld
120802_MPI.ppt
CPU CPU CPU CPU CPU SMP Symmetric MultiProcessing CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CP OpenMP MPI MPI CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU MPI MPI+OpenMP CPU CPU CPU CPU CPU CPU CPU CP
2 T 1 N n T n α = T 1 nt n (1) α = 1 100% OpenMP MPI OpenMP OpenMP MPI (Message Passing Interface) MPI MPICH OpenMPI 1 OpenMP MPI MPI (trivial p
22 6 22 MPI MPI 1 1 2 2 3 MPI 3 4 7 4.1.................................. 7 4.2 ( )................................ 10 4.3 (Allreduce )................................. 12 5 14 5.1........................................
Microsoft Word - C.....u.K...doc
C uwêííôöðöõ Ð C ÔÖÐÖÕ ÐÊÉÌÊ C ÔÖÐÖÕÊ C ÔÖÐÖÕÊ Ç Ê Æ ~ if eíè ~ for ÒÑÒ ÌÆÊÉÉÊ ~ switch ÉeÍÈ ~ while ÒÑÒ ÊÍÍÔÖÐÖÕÊ ~ 1 C ÔÖÐÖÕ ÐÊÉÌÊ uê~ ÏÒÏÑ Ð ÓÏÖ CUI Ô ÑÊ ÏÒÏÑ ÔÖÐÖÕÎ d ÈÍÉÇÊ ÆÒ Ö ÒÐÑÒ ÊÔÎÏÖÎ d ÉÇÍÊ
±é½¬£²¡§£Í£Ð£É½éÊâ
2012 8 7 1 / 52 MPI Hello World I ( ) Hello World II ( ) I ( ) II ( ) ( sendrecv) π ( ) MPI fortran C wget http://www.na.scitec.kobe-u.ac.jp/ yaguchi/riken2012/enshu2.zip unzip enshu2.zip 2 / 52 FORTRAN
openmp1_Yaguchi_version_170530
並列計算とは /OpenMP の初歩 (1) 今 の内容 なぜ並列計算が必要か? スーパーコンピュータの性能動向 1ExaFLOPS 次世代スハ コン 京 1PFLOPS 性能 1TFLOPS 1GFLOPS スカラー機ベクトル機ベクトル並列機並列機 X-MP ncube2 CRAY-1 S-810 SR8000 VPP500 CM-5 ASCI-5 ASCI-4 S3800 T3E-900 SR2201
Microsoft Word - Cプログラミング演習(12)
第 12 回 (7/9) 4. いくつかのトピック (5)main 関数の引数を利用したファイル処理 main 関数は, 起動する環境から引数を受け取ることができる 例えば 次に示すように,main 関数に引数を用いたプログラムを作成する 01 /* sample */ 02 /* main 関数の引数 */ 03 #include 04 05 main(int argc, char
comment.dvi
( ) (sample1.c) (sample1.c) 2 2 Nearest Neighbor 1 (2D-class1.dat) 2 (2D-class2.dat) (2D-test.dat) 3 Nearest Neighbor Nearest Neighbor ( 1) 2 1: NN 1 (sample1.c) /* -----------------------------------------------------------------
コードのチューニング
MPI による並列化実装 ~ ハイブリッド並列 ~ 八木学 ( 理化学研究所計算科学研究センター ) KOBE HPC Spring School 2019 2019 年 3 月 14 日 MPI とは Message Passing Interface 分散メモリのプロセス間の通信規格(API) SPMD(Single Program Multi Data) が基本 - 各プロセスが 同じことをやる
スライド 1
High Performance and Productivity 並列プログラミング課題と挑戦 HPC システムの利用の拡大の背景 シュミレーションへの要求 より複雑な問題をより精度良くシュミレーションすることが求められている HPC システムでの並列処理の要求の拡大 1. モデル アルゴリズム 解析対象は何れもより複雑で 規模の大きなものになっている 2. マイクロプロセッサのマルチコア化 3.
2. OpenMP OpenMP OpenMP OpenMP #pragma#pragma omp #pragma omp parallel #pragma omp single #pragma omp master #pragma omp for #pragma omp critica
C OpenMP 1. OpenMP OpenMP Architecture Review BoardARB OpenMP OpenMP OpenMP OpenMP OpenMP Version 2.0 Version 2.0 OpenMP Fortran C/C++ C C++ 1997 10 OpenMP Fortran API 1.0 1998 10 OpenMP C/C++ API 1.0
01_OpenMP_osx.indd
OpenMP* / 1 1... 2 2... 3 3... 5 4... 7 5... 9 5.1... 9 5.2 OpenMP* API... 13 6... 17 7... 19 / 4 1 2 C/C++ OpenMP* 3 Fortran OpenMP* 4 PC 1 1 9.0 Linux* Windows* Xeon Itanium OS 1 2 2 WEB OS OS OS 1 OS
Microsoft PowerPoint - CproNt02.ppt [互換モード]
第 2 章 C プログラムの書き方 CPro:02-01 概要 C プログラムの構成要素は関数 ( プログラム = 関数の集まり ) 関数は, ヘッダと本体からなる 使用する関数は, プログラムの先頭 ( 厳密には, 使用場所より前 ) で型宣言 ( プロトタイプ宣言 ) する 関数は仮引数を用いることができる ( なくてもよい ) 関数には戻り値がある ( なくてもよい void 型 ) コメント
MPI usage
MPI (Version 0.99 2006 11 8 ) 1 1 MPI ( Message Passing Interface ) 1 1.1 MPI................................. 1 1.2............................... 2 1.2.1 MPI GATHER.......................... 2 1.2.2
サイバーメディアセンター 大規模計算機システムの利用
サイバーメディアセンター 大規模計算機システムの利用 大阪大学情報推進部情報基盤課 本日のプログラム I. システムのご紹介 II. 利用方法の解説 実習 i. システムへの接続 ii. プログラムの作成 コンパイル iii. ジョブスクリプトの作成 iv. ジョブスクリプトの投入 III. 利用を希望する方へ SX-ACE NEC 製のベクトル型スーパーコンピュータ ノード毎 1 クラスタ (512
44 6 MPI 4 : #LIB=-lmpich -lm 5 : LIB=-lmpi -lm 7 : mpi1: mpi1.c 8 : $(CC) -o mpi1 mpi1.c $(LIB) 9 : 10 : clean: 11 : -$(DEL) mpi1 make mpi1 1 % mpiru
43 6 MPI MPI(Message Passing Interface) MPI 1CPU/1 PC Cluster MPICH[5] 6.1 MPI MPI MPI 1 : #include 2 : #include 3 : #include 4 : 5 : #include "mpi.h" 7 : int main(int argc,
1.ppt
/* * Program name: hello.c */ #include int main() { printf( hello, world\n ); return 0; /* * Program name: Hello.java */ import java.io.*; class Hello { public static void main(string[] arg)
Microsoft PowerPoint - 演習1:並列化と評価.pptx
講義 2& 演習 1 プログラム並列化と性能評価 神戸大学大学院システム情報学研究科横川三津夫 [email protected] 2014/3/5 RIKEN AICS HPC Spring School 2014: プログラム並列化と性能評価 1 2014/3/5 RIKEN AICS HPC Spring School 2014: プログラム並列化と性能評価 2 2 次元温度分布の計算
j x j j j + 1 l j l j = x j+1 x j, n x n x 1 = n 1 l j j=1 H j j + 1 l j l j E
8 9 7 6 4 2 3 5 1 j x j j j + 1 l j l j = x j+1 x j, n x n x 1 = n 1 l j j=1 H j j + 1 l j l j E a n 1 H = ae l j, j=1 l j = x j+1 x j, x n x 1 = n 1 j=1 l j, l j = ±l l > 0) n 1 H = ϵ l j, j=1 ϵ e x x
OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£²¡Ë
2013 5 30 (schedule) (omp sections) (omp single, omp master) (barrier, critical, atomic) program pi i m p l i c i t none integer, parameter : : SP = kind ( 1. 0 ) integer, parameter : : DP = selected real
目次 LS-DYNA 利用の手引き 1 1. はじめに 利用できるバージョン 概要 1 2. TSUBAME での利用方法 使用可能な LS-DYNA の実行 4 (1) TSUBAMEにログイン 4 (2) バージョンの切り替え 4 (3) インタラ
LS-DYNA 利用の手引 東京工業大学学術国際情報センター 2016.04 version 1.10 目次 LS-DYNA 利用の手引き 1 1. はじめに 1 1.1 利用できるバージョン 1 1.2 概要 1 2. TSUBAME での利用方法 1 2.1 使用可能な 1 2.2 LS-DYNA の実行 4 (1) TSUBAMEにログイン 4 (2) バージョンの切り替え 4 (3) インタラクティブ実行
情報処理概論(第二日目)
実習資料 Linux 入門講習会 九州大学情報基盤研究開発センター 注意 : この内容は najima.cc.kyushu-u.ac.jp の任意の ID で利用できますが, ファイルの削除等を含んでいるので各コマンドの意味を理解するまでは講習会用 ID で利用することをお勧めします. 1 実習 1 ログイン ファイル操作 ディレクトリの作成 ファイルの移動, コピー, 削除 ログアウト 2 ログイン
£Ã¥×¥í¥°¥é¥ß¥ó¥°(2018) - Âè11²ó – ½ÉÂꣲ¤Î²òÀ⡤±é½¬£² –
(2018) 11 2018 12 13 2 g v dv x dt = bv x, dv y dt = g bv y (1) b v 0 θ x(t) = v 0 cos θ ( 1 e bt) (2) b y(t) = 1 ( v 0 sin θ + g ) ( 1 e bt) g b b b t (3) 11 ( ) p14 2 1 y 4 t m y > 0 y < 0 t m1 h = 0001
PowerPoint プレゼンテーション
Computer simulations create the future 2015 年度第 1 回 AICS 公開ソフト講習会 K MapReduce ハンズオン 滝澤真一朗松田元彦丸山直也 理化学研究所計算科学研究機構プログラム構成モデル研究チーム 1 RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE KMR の導入方法を学ぶ 目的 KMRRUN
kiso2-06.key
座席指定があります Linux を起動して下さい 第6回 計算機基礎実習II 計算機基礎実習II 2018 のウェブページか ら 以下の課題に自力で取り組んで下さい 第5回の復習課題(rev05) 第6回の基本課題(base06) 第5回課題の回答例 ex05-2.c 1. キーボードから整数値 a を入力すると a*a*a の値を出力することを繰り返すプログラムを作成しなさい 2. ただし 入力された
( ) 1 1: 1 #include <s t d i o. h> 2 #include <GL/ g l u t. h> 3 #include <math. h> 4 #include <s t d l i b. h> 5 #include <time. h>
2007 12 5 1 2 2.1 ( ) 1 1: 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 #define H WIN 400 // 8 #define W WIN 300 // 9
Microsoft PowerPoint 並列アルゴリズム04.ppt
並列アルゴリズム 2005 年後期火曜 2 限 青柳睦 [email protected] http://server-500.cc.kyushu-u.ac.jp/ 11 月 8 日 ( 火 ) 5. MPI の基礎 6. 並列処理の性能評価 1 もくじ 1. 序並列計算機の現状 2. 計算方式およびアーキテクチュアの分類 3. 並列計算の目的と課題 4. 数値計算における各種の並列化
Krylov (b) x k+1 := x k + α k p k (c) r k+1 := r k α k Ap k ( := b Ax k+1 ) (d) β k := r k r k 2 2 (e) : r k 2 / r 0 2 < ε R (f) p k+1 :=
127 10 Krylov Krylov (Conjugate-Gradient (CG ), Krylov ) MPIBNCpack 10.1 CG (Conjugate-Gradient CG ) A R n n a 11 a 12 a 1n a 21 a 22 a 2n A T = =... a n1 a n2 a nn n a 11 a 21 a n1 a 12 a 22 a n2 = A...
GridEngineユーザーマニュアル
目次 1 インストール概要... 2 2 コマンド例... 3 3 出荷設定... 6 4 ジョブの投入例... 8 付録 A... 10 A.1 HPC システムズお問い合わせ先... 10 Copyright HPC SYSTEMS Inc. All Rights Reserved. 1 1 インストール概要 (1) パッケージ http://gridscheduler.sourceforge.net/
新版明解C言語 実践編
2 List - "max.h" a, b max List - max "max.h" #define max(a, b) ((a) > (b)? (a) : (b)) max List -2 List -2 max #include "max.h" int x, y; printf("x"); printf("y"); scanf("%d", &x); scanf("%d", &y); printf("max(x,
kiso2-03.key
座席指定はありません Linux を起動して下さい 第3回 計算機基礎実習II 2018 のウェブページか ら 以下の課題に自力で取り組んで下さい 計算機基礎実習II 第2回の復習課題(rev02) 第3回の基本課題(base03) 第2回課題の回答例 ex02-2.c include int main { int l int v, s; /* 一辺の長さ */ /* 体積 v
nakao
Fortran+Python 4 Fortran, 2018 12 12 !2 Python!3 Python 2018 IEEE spectrum https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2018!4 Python print("hello World!") if x == 10: print
