Presentation is loading. Please wait.

Presentation is loading. Please wait.

並列処理実用? 並列処理により、 現在時間がかかって実用しづらい処理を、 早くして実用にする 1時間 =1/10⇒ 6分

Similar presentations


Presentation on theme: "並列処理実用? 並列処理により、 現在時間がかかって実用しづらい処理を、 早くして実用にする 1時間 =1/10⇒ 6分"— Presentation transcript:

1 並列処理実用? 並列処理により、 現在時間がかかって実用しづらい処理を、 早くして実用にする 1時間 =1/10⇒ 6分
1時間 =1/10⇒ 6分 8時間 =1/10⇒ 48分 「ちょっと計算して試す」が可能になる

2 背景 マルチコアのCPUが入手可能になった PC教室に並んだPCを使える
Intel Xeon  4コア⇒近々8コアに AMD 8コアに PC教室に並んだPCを使える 夜や休暇期間などは空いている 個々のPCは「並み」でも、90台×4教室 ソフト環境(プラットフォーム・コンパイラ)も  徐々に整備されてきている

3 先行研究~山のようにある 2つのモデル ~ メモリ共有vsメッセージ プログラムもデータも共有できる 別CPUへのデータ受け渡し早い
プログラムもデータも共有しない 別CPUへのデータ受け渡し遅い 多CPUも可(数百~数千)

4 先行研究~山のようにある CPU×N台でも、N倍早くはならない 自明な問題もある ~ それを対象にしたい
(本質的に)どうしても直列部分がある 並列化の腕が悪いと、直列部分が増える N倍に近づける努力は大変 自動並列化は未だ課題が多い 今までは並列化するよりCPU高速化が安かった 自明な問題もある ~ それを対象にしたい

5 オープンな並列インタフェース? メモリ共有型 ⇒ OpenMP メッセージパシング型 ⇒ MPICH2
ライブラリが提供される、カーネルはLinux組み込み済み 自動コンパイラもいくつか存在(Intelなど) メッセージパシング型 ⇒ MPICH2 TCP/IPを使う ⇒ どうしてもオーバーヘッド大 ライブラリが提供される 自動は見かけない(無理?)

6 最初の実験環境 HPのサーバー:Xeon 4コア×2CPUで  8並列が可能なはず Linuxをインストールし利用可能 単純な並列度テスト

7 最初の実験環境(続) #!/bin/csh set N = 100000000 # Case of 1 process
#echo "" | pipebody $N #Case of 8 processes echo "" | pipebody $N | pipebody $N | pipebody $N | pipebody $N | pipebody $N | pipebody $ N | pipebody $N | pipebody $N

8 最初の実験環境(続) for (i=0; i<255; i++) bufin[i]='\0'; x = 0.0;
for (i=0; i<maxi; i++) { x = x + sin( (double) i/maxi ); } read(0, bufin, 256); printf("%s", strcat(bufin, "a")); fprintf(stderr, "%s", strcat(bufin, "a"));

9 最初の実験環境(結果) user system elapsed PCPU
プロセス1つ:   9.720u 0.028s 0: % 0+0k 0+0io 0pf+0w プロセス4つ:  38.814u 0.036s 0: % 0+0k 0+0io 0pf+0w プロセス8つ:  77.476u 0.020s 0: % 0+0k 0+0io 0pf+0w プロセス9つ:  87.301u 0.040s 0: % 0+0k 0+0io 0pf+0w プロセス12:   u 0.028s 0: % 0+0k 0+0io 0pf+0w プロセス16:   u 0.044s 0: % 0+0k 0+0io 0pf+0w


Download ppt "並列処理実用? 並列処理により、 現在時間がかかって実用しづらい処理を、 早くして実用にする 1時間 =1/10⇒ 6分"

Similar presentations


Ads by Google