連載講座 : 高生産並列言語を使いこなす (4) ゲーム木探索の並列化 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 準備 問題の定義 αβ 法 16 2 αβ 法の並列化 概要 Young Brothers Wa

Size: px
Start display at page:

Download "連載講座 : 高生産並列言語を使いこなす (4) ゲーム木探索の並列化 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 準備 問題の定義 αβ 法 16 2 αβ 法の並列化 概要 Young Brothers Wa"

Transcription

1 連載講座 : 高生産並列言語を使いこなす (4) ゲーム木探索の並列化 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 準備 問題の定義 αβ 法 16 2 αβ 法の並列化 概要 Young Brothers Wait Concept 段数による逐次化 適応的な待機 強制終了 19 3 Cilk による並列化 基本 YBWC 3.3 深さによる逐次化 適応的な待機 強制終了 22 4 OpenMP による並列化 基本 YBWC 適応的な待機 強制終了 27 Intel TBB による並列化 28.1 基本 28.2 YBWC 29.3 適応的な待機 3 6 実験 設定 訪問ノード数の増大 逐次性能 台数効果 ( スループット ) 台数効果 ( 実行時間 ) 36 7 まとめ 36

2 1 1.1,., g E(g). - (g ) E(g) = max ( E(h)) (g ) h:g h g h g h. g h., g,., g,. g,,. 1.2 αβ αβ C. 1: int eval(game_state_t g, int alpha, int beta) { 2: int moves[maxempties]; 3: int n_moves = gen_moves(g, moves); 4: if (n_moves == ) { : return g->disc_diff; 6: else { 7: int i; 8: for (i = ; i < n_moves; i++) { 9: int e = -move_and_eval(*g, i, moves[i], -beta, -alpha); : if (e > alpha) { 11: alpha = e; 12: if (e >= beta) break; 13: 14: 1: return alpha; 16: 17: g, [α, β]., α < E(g) < β E(g), E(g) α, α, E(g) β, β. β, 12. αβ,.

3 2 αβ 2.1 αβ,., αβ,.,, β, (12 ), (, α) (9 ),, 2. αβ,.,. β, ( ),, [ β, α],, α., αβ (g ),,. αβ,.,., Cilk [1, 6, ]. 2.2 Young Brothers Wait Concept, Young Brothers Wait Concept (YBWC) [2]., g h, h 1, h 2,..., h, h 1, h 2,... ( ).,, h.. (move ordering), h, i( E( h ) E( h i )), 11 α., h 1, h 2,...., h β, h 1, h 2,... β.,,..,.

4 YBWC,?, l d,. ( ) Θ(d l/2 ).,, Θ(dl)., l. d,, Θ(l log d). YBWC, h, Θ(d2 l/2 ). w, Θ(d(w + 1) l/2 )., w,., w 1,., Θ(d l/2 ), d > w + 1., YBWC (w = 1 ), w = ,,...,. Cilk, TBB, OpenMP,,.,, β,,,. αβ.,,,. 2.4 YBWC, w, w,. w, w, β,., β

5 ,.,,., h 1, h 2,...,,,,.,.,.,,,, (, ).,, β., , g h, β,, g,.,, Cilk, OpenMP, TBB. 3 Cilk 3.1 Cilk, spawn, sync, spawn.,. int eval(game_state_t g, int alpha, int beta) { int moves[maxempties]; int child_results[maxempties]; int n_moves = gen_moves(g, moves); if (n_moves == ) { return g->disc_diff; else { int i; for (i = ; i < n_moves; i++) { child_results[i] = spawn move_and_eval(*g, i, moves[i], -beta, -alpha); sync; for (i = ; i < n_moves; i++) { int e = -child_results[i];

6 if (e > alpha) { alpha = e; if (e >= beta) break; return alpha; 3.2 YBWC YBWC,, sync., w w. 1: int eval(game_state_t g, int alpha, int beta, int w) { 2: int moves[maxempties]; 3: int child_results[maxempties]; 4: int n_moves = gen_moves(g, moves); : if (n_moves == ) { 6: return g->disc_diff; 7: else { 8: int i; 9: for (i = ; i < n_moves; i++) child_results[i] = INF; : for (i = ; i < n_moves; i++) { 11: child_results[i] = spawn move_and_eval(*g, i, moves[i], -beta, -alpha); 12: if (i < w) { /* YBWC : w */ 13: sync; 14: int e = -child_results[i]; 1: if (e > alpha) { 16: alpha = e; 17: if (e >= beta) break; 18: 19: : 21: sync; 22: for (i = ; i < n_moves; i++) { 23: int e = -child_results[i]; 24: if (e > alpha) { 2: alpha = e; 26: if (e >= beta) break; 27: 28: 29: return alpha; 3:

7 31: 3.3. eval,,,., Cilk., spawn,., : for (i = ; i < n_moves; i++) { 11: child_results[i] = spawn move_and_eval(*g, i, moves[i], -beta, -alpha); 12:..., i = (x + 1), i x., i x i (x + 1), i x β. Cilk,., SYNCHED, spawn., sync. Cilk,, 11 12: if (i < w) { /* YBWC : w */ 13: sync; 14:..., 12 : if (i < w SYNCHED) { 13: sync; 14:...!, SYNCHED,. Cilk [3],. Cilk, spawn, spawn., work-first. spawn,, spawn ( ), (work stealing).,, work stealing. SYNCHED 1. SYNCHED, g,

8 h spawn h, g (h ) SYNCHED.,, , g,, β,, g. Cilk, spawn, spawn. Cilk spawn sync. spawn,. 3.4 SYNCHED, spawn,. Cilk, inlet., spawn,. inlet C., Cilk. spawn inlet, spawn., spawn f(...),, handler. inlet handler(int val, int x, int y) {... handler(spawn f(..), x, y);, inlet abort, g inlet, g., Cilk., sync inlet,,. /* g */ int eval(game_state_t g, int alpha, int beta, int w) { int moves[maxempties]; int n_moves = gen_moves(g, moves); if (n_moves == ) { return g->disc_diff; else { int i; inlet handler(int child_result, int j) { int e = -child_result;

9 if (e > alpha) { alpha = e; if (e >= beta) abort; for (i = ; i < n_moves; i++) { handler(spawn move_and_eval(*g, i, moves[i], -beta, -alpha, w), i); if (i < w SYNCHED) sync; if (alpha >= beta) break; return alpha; 4 OpenMP 4.1 OpenMP 3.. Cilk,. Cilk spawn, #pragma omp task shared(...) if(...). C,. Cilk,. shared,.,. if,,. Cilk sync, #pragma omp taskwait. Cilk spawn/sync. OpenMP, task, parallel., parallel,,., parallel, master,. #pragma omp parallel #pragma omp master, task/taskwait.

10 4.2 YBWC, Cilk spawn task, sync taskwait. 1: int eval(game_state_t g, int alpha, int beta, int w) { 2: int moves[maxempties]; 3: int child_results[maxempties]; 4: int n_moves = gen_moves(g, moves); : if (n_moves == ) { 6: return g->disc_diff; 7: else { 8: int i; 9: for (i = ; i < n_moves; i++) child_results[i] = INF; : for (i = ; i < n_moves; i++) { 11: #pragma omp task shared(child_results) 12: child_results[i] = move_and_eval(*g, i, moves[i], -beta, -alpha, w); 13: if (i < w) { /* YBWC : w */ 14: #pragma omp taskwait 1: int e = -child_results[i]; 16: if (e > alpha) { 17: alpha = e; 18: if (e >= beta) break; 19: : 21: 22: #pragma omp taskwait 23: for (i = ; i < n_moves; i++) { 24: int e = -child_results[i]; 2: if (e > alpha) { 26: alpha = e; 27: if (e >= beta) break; 28: 29: 3: return alpha; 31: 32: 33: 34: int main() { 3: #pragma omp parallel 36: #pragma omp master 37: { 38:... 39: eval(...); 4:...

11 41: 42: 4.3 OpenMP, Cilk SYNCHED. : for (i = ; i < n_moves; i++) { 11: #pragma omp task shared(child_results) 12: child_results[i] = move_and_eval(*g, i, moves[i], -beta, -alpha, w); 13: if (i < w) { /* YBWC : w */ 14: #pragma omp taskwait 1:..., if (i < w).,,,.,., : for (i = ; i < n_moves; i++) { : child_results[i] = INVALID; 11: #pragma omp task shared(child_results) 12: child_results[i] = move_and_eval(*g, i, moves[i], -beta, -alpha, w); 13 : if (i < w child_results[i]!= INVALID) { 14: #pragma omp taskwait 1:.... INVALID, move and eval ( ). ( ), GCC OpenMP (GOMP[4]),., GOMP Cilk work-first. GOMP, task,,., (parent-first ). taskwait,,.,,.,, work stealing Cilk,.,,, taskwait., h 1, h 2 (taskwait ), h 2, h 1

12 ., h 1, h 2,.,., g h, g ( h ),.,, alpha.,, alpha... alpha. 1: for (i = ; i < n_moves; i++) { 2: #pragma omp task shared(alpha) if(i>=w) 3: if (alpha < beta) { 4: int e = -move_and_eval(g, i, moves[i], -beta, -alpha, w); : omp_set_lock(&lock); 6: if (e > alpha) alpha = e; 7: omp_unset_lock(&lock); 8: 9: if (alpha >= beta) break; : 11: #pragma omp taskwait 12: return alpha; 3 if., 3, 4 alpha,., -7 alpha,,,., work stealing, parent-first if, i < w, taskwait,. 3., alpha. 4., 3 4 alpha,..,,,,,., for (i = ; i < n; i++) { #pragma omp task E(h i );

13 #pragma omp taskwait,, h n 1, h n 2,..., h..,,,., GOMP,. for i = x, moves,. 4.4 OpenMP task, Cilk abort.,,,., 1., 2. g, h, g (β ), h, g 1 3., 1,., typedef struct abort_signal { int aborting; struct abort_signal * parent; abort_signal, * abort_signal_t;., abort signal,.. 1: /* g */ 2: int eval(game_state_t g, int alpha, int beta, abort_signal_t as, int w) { 3: if (check_abort(as)) return -INF; 4: int moves[maxempties]; : int n_moves = gen_moves(g, moves); 6: if (n_moves == ) { 7: return g->disc_diff; 8: else { 9: int i; : abort_signal child_as[maxempties]; 11: for (i = ; i < n_moves; i++) { 12: child_as[i].parent = as; 13: child_as[i].aborting = ;

14 14: #pragma omp task shared(alpha, as, child_as) 1: if (alpha < beta) { 16: int e = -move_and_eval(g, i, moves[i], -beta, -alpha_, &child_as[i], w); 17: omp_set_lock(&lock); 18: if (e > alpha) alpha = e; 19: if (e >= beta) as[i].aborting = 1; : omp_unset_lock(&lock); 21: 22: if (alpha >= beta) break; 23: 24: #pragma omp taskwait 2: return alpha; 26: 27: check abort,. int check_abort(abort_signal_t as) { abort_signal_t p; for (p = as; p; p = p->parent) if (p->aborting) return 1; return ;,,.,,.,., 3.3,. Intel TBB.1 Intel TBB,, task, execute., spawn()., Cilk spawn/sync, OpenMP task/taskwait, task group. task group, run() wait(),., run(), operator(), task handle, C++ C++x

15 ,,. GCC, -std=c++x., OpenMP task.. 1: #include <tbb/task_group.h> 2: using namespace tbb; 3: 4: int fib(int n) { : if (n < 2) return 1; 6: else { 7: task_group tg; 8: int x, y; 9: tg.run([=,&x] { x = fib(n - 1); ); : y = fib(n - 2); 11: tg.wait(); 12: return x + y; 13: 14: 1: 16: int main(int argc, char ** argv) { 17: int n = atoi(argv[1]); 18: int x= fib(n); 19: printf("fib(%d) = %d\n", n, x); : GCC ( <tbb dir> TBB ). g++ -std=c++x -I<tbb_dir>/include fib.cc -L<tbb_dir>/lib -ltbb, 9: tg.run([=,&x] { x = fib(n - 1); );, [=,&x] { x = fib(n - 1); C++x ( ). [=,&x], &x, x =. OpenMP task, shared(x)..2 YBWC YBWC, OpenMP task/taskwait, task group run/wait.

16 1: int eval(game_state_t g, int alpha, int beta, int w) { 2: int moves[maxempties]; 3: int child_results[maxempties]; 4: int n_moves = gen_moves(g, moves); : if (n_moves == ) { 6: return g->disc_diff; 7: else { 8: int ii; 9: task_group tg; : for (ii = ; ii < n_moves; ii++) child_results[ii] = INF; 11: for (ii = ; ii < n_moves; ii++) { 12: int i = (ii < w? ii : n_moves - ii + w - 1); 13: tg.run([=,&child_results] 14: { child_results[i] = move_and_eval(*g, i, moves[i], -beta, -alpha, w); ); 1: if (i < w) { /* YBWC : w */ 16: tg.wait(); 17: int e = -child_results[i]; 18: if (e > alpha) { 19: alpha = e; : if (e >= beta) break; 21: 22: 23: 24: /* */ 2: tg.wait(); 26: for (ii = ; ii < n_moves; ii++) { 27: int e = -child_results[ii]; 28: if (e > alpha) { 29: alpha = e; 3: if (e >= beta) break; 31: 32: 33: return alpha; 34: 3: TBB, i >= w,.,, 11: int i = (ii < w? ii : n_moves - ii + w - 1);.

17 : ( )...3 TBB, OpenMP. Cilk SYNCHED, GOMP, parent-first. OpenMP,,. OpenMP,. task_group tg; spin_mutex lock_; for (ii = ; ii < n_moves; ii++) { int i = (ii < w? ii : n_moves - ii + w - 1); tg.run([=,&alpha,&lock_] { if (alpha < beta) { int e = -move_and_eval(g, i, moves[i], -beta, -alpha, w); spin_mutex::scoped_lock lock(lock_); if (e > alpha) alpha = e; ); if (i < w) tg.wait(); if (alpha >= beta) break; tg.wait(); return alpha;, OpenMP ,, Andersson The FFO endgame test suite ( 6,,,.

18 Legend adaptive w=1 adaptive w=2 abort w=1 abort w= : 3-. adaptive 2.4, abort 2.. w, 2.2,.,, 4, 47 ( 6, 2 ). 24 (48 ). CPU: Intel Nehalem-EX (E74) 2.GHz (6 core/12 4 ) L3 cache: 18MB memory: 24GB DDR3 6.2,., ( ). ( 6 ) , Cilk, OpenMP, TBB,,,,., 12 (w) 1 2

19 Legend Visited nodes blow up of Cilk (Problem 41) adaptive w=1 adaptive w=2 abort w=1 abort w= visited nodes Visited nodes blow up of OpenMP (Problem 41) Visited nodes blow up of Intel TBB (Problem 41) visited nodes visited nodes Visited nodes blow up of Cilk (Problem 47) Visited nodes blow up of OpenMP (Problem 47) visited nodes visited nodes visited nodes Visited nodes blow up of Intel TBB (Problem 47) : ( 41,47)

20 , 2 2 = 4..,,., ,,., ( YBWC w = 2 ),, ( ),.. 6.3, 41,, w ( ), 1. 12,. C (Andersson), 2 C,, C. C (Andersson) % - %, C %,. w C (Andersson) C Cilk abort Cilk abort Cilk adaptive Cilk adaptive OpenMP abort OpenMP abort OpenMP adaptive OpenMP adaptive Intel TBB abort Intel TBB abort Intel TBB adaptive Intel TBB adaptive ( ) 6.2,., ,,., w,.

21 Legend Throughput increase of Cilk (Problem 41) adaptive w=1 adaptive w=2 abort w=1 abort w= throughput up Throughput increase of OpenMP (Problem 41) Throughput increase of Intel TBB (Problem 41) throughput up throughput up Throughput increase of Cilk (Problem 47) Throughput increase of OpenMP (Problem 47) throughput up throughput up Throughput increase of Intel TBB (Problem 47) throughput up : ( 41, 47)

22 6. ( ), Andersson,., 3, 6.3, 4.,,, w = 2., , αβ. YBWC:, : :,.,,,,., work-first parent-first,,,,. Cilk OpenMP Intel TBB YBWC spawn, sync task, taskwait task group, run, wait work-first parent-first (GCC) parent-first SYNHCED, shared [&x] work-first inlet, abort,. [1] Don Dailey and Charles E. Leiserson. Using cilk to write multiprocessor chess programs. In Advances in Computer Games 9, 1. [2] Rainer Feldmann. Game Tree Search on Massively Parallel Systems. PhD thesis, University of Paderborn, [3] Matteo Frigo, Charles E. Leiserson, and Keith H. Randall. The implementation of the cilk- multithreaded language. In ACM SIGPLAN Conference on Programming Language, pages , 1998.

23 Legend Absolute speedup of Cilk (Problem 41) adaptive w=1 adaptive w=2 abort w=1 abort w= Speedup to Andersson Absolute speedup of OpenMP (Problem 41) Absolute speedup of Intel TBB (Problem 41) Speedup to Andersson Speedup to Andersson Absolute speedup of Cilk (Problem 47) Absolute speedup of OpenMP (Problem 47) Speedup to Andersson Speedup to Andersson Absolute speedup of Intel TBB (Problem 47) Speedup to Andersson : Andersson ( 41, 47)

24 [4] GOMP an OpenMP implementation for GCC. [] Christopher F. Joerg and Bradley C. Kuszmaul. Massively parallel chess. In the Third DIMACS Parallel Implementation Challenge, [6] Bradley C. Kuszmaul. The startech massively parallel chess program. Journal of the International Computer Chess Association, 18(1), 199.

連載講座 : 高生産並列言語を使いこなす (3) ゲーム木探索問題 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 概要 17 2 ゲーム木探索 必勝 必敗 引き分け 盤面の評価値 αβ 法 指し手の順序付け (mo

連載講座 : 高生産並列言語を使いこなす (3) ゲーム木探索問題 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 概要 17 2 ゲーム木探索 必勝 必敗 引き分け 盤面の評価値 αβ 法 指し手の順序付け (mo 連載講座 : 高生産並列言語を使いこなす (3) ゲーム木探索問題 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 概要 17 2 ゲーム木探索 17 2.1 必勝 必敗 引き分け 17 2.2 盤面の評価値 18 2.3 αβ 法 19 2.4 指し手の順序付け (move ordering) 20 3 Andersson の詰み探索およびその並列化 21 3.1 Andersson

More information

連載講座 : 高生産並列言語を使いこなす (5) 分子動力学シミュレーション 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 問題の定義 17 2 逐次プログラム 分子 ( 粒子 ) セル 系の状態 ステップ 18

連載講座 : 高生産並列言語を使いこなす (5) 分子動力学シミュレーション 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 問題の定義 17 2 逐次プログラム 分子 ( 粒子 ) セル 系の状態 ステップ 18 連載講座 : 高生産並列言語を使いこなす (5) 分子動力学シミュレーション 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 問題の定義 17 2 逐次プログラム 17 2.1 分子 ( 粒子 ) 17 2.2 セル 17 2.3 系の状態 18 2.4 1ステップ 18 2.5 力の計算 19 2.6 速度と位置の更新 20 2.7 セル間の分子の移動 21 3 OpenMP

More information

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裵²ó ¨¡ À©¸æ¹½Â¤¡§¾ò·ïʬ´ô ¨¡

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (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

More information

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裶²ó ¨¡ À©¸æ¹½Â¤¡§·«¤êÊÖ¤· ¨¡

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裶²ó  ¨¡ À©¸æ¹½Â¤¡§·«¤êÊÖ¤· ¨¡ (2018) 2018 5 24 ( ) while ( ) do while ( ); for ( ; ; ) while int i = 0; while (i < 100) { printf("i = %3d\n", i); i++; while int i = 0; i while (i < 100) { printf("i = %3d\n", i); i++; while int i =

More information

C

C C 1 2 1.1........................... 2 1.2........................ 2 1.3 make................................................ 3 1.4....................................... 5 1.4.1 strip................................................

More information

N08

N08 CPU のキモチ C.John 自己紹介 英語きらい 絵かけない 人の話を素直に信じない CPUにキモチなんてない お詫び 予告ではCとC# とありましたがやる気と時間の都合上 C++のみを対象とします 今日のネタ元 MSDN マガジン 2010 年 10 月号 http://msdn.microsoft.com/ja-jp/magazine/cc850829.aspx Windows と C++

More information

Emacs ML let start ::= exp (1) exp ::= (2) fn id exp (3) ::= (4) (5) ::= id (6) const (7) (exp) (8) let val id = exp in

Emacs ML let start ::= exp (1) exp ::= (2) fn id exp (3) ::= (4) (5) ::= id (6) const (7) (exp) (8) let val id = exp in Emacs, {l06050,sasano}@sic.shibaura-it.ac.jp Eclipse Visual Studio Standard ML Haskell Emacs 1 Eclipse Visual Studio variable not found LR(1) let Emacs Emacs Emacs Java Emacs JDEE [3] JDEE Emacs Java 2

More information

Microsoft PowerPoint - 03_What is OpenMP 4.0 other_Jan18

Microsoft PowerPoint - 03_What is OpenMP 4.0 other_Jan18 OpenMP* 4.x における拡張 OpenMP 4.0 と 4.5 の機能拡張 内容 OpenMP* 3.1 から 4.0 への拡張 OpenMP* 4.0 から 4.5 への拡張 2 追加された機能 (3.1 -> 4.0) C/C++ 配列シンタックスの拡張 SIMD と SIMD 対応関数 デバイスオフロード task 構 の依存性 taskgroup 構 cancel 句と cancellation

More information

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裱£²²ó ¡Ý½ÉÂꣲ¤Î²òÀ⡤±é½¬£²¡Ý

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裱£²²ó  ¡Ý½ÉÂꣲ¤Î²òÀ⡤±é½¬£²¡Ý (2018) 2018 7 5 f(x) [ 1, 1] 3 3 1 3 f(x) dx c i f(x i ) 1 0 i=1 = 5 ) ( ) 3 ( 9 f + 8 5 9 f(0) + 5 3 9 f 5 1 1 + sin(x) θ ( 1 θ dx = tan 1 + sin x 2 π ) + 1 4 1 3 [a, b] f a, b double G3(double (*f)(),

More information

( ) ( ) 30 ( ) 27 [1] p LIFO(last in first out, ) (push) (pup) 1

( ) ( ) 30 ( ) 27 [1] p LIFO(last in first out, ) (push) (pup) 1 () 2006 2 27 1 10 23 () 30 () 27 [1] p.97252 7 2 2.1 2.1.1 1 LIFO(last in first out, ) (push) (pup) 1 1: 2.1.2 1 List 4-1(p.100) stack[] stack top 1 2 (push) (pop) 1 2 void stack push(double val) val stack

More information

Run-Based Trieから構成される 決定木の枝刈り法

Run-Based Trieから構成される  決定木の枝刈り法 Run-Based Trie 2 2 25 6 Run-Based Trie Simple Search Run-Based Trie Network A Network B Packet Router Packet Filtering Policy Rule Network A, K Network B Network C, D Action Permit Deny Permit Network

More information

r07.dvi

r07.dvi 19 7 ( ) 2019.4.20 1 1.1 (data structure ( (dynamic data structure 1 malloc C free C (garbage collection GC C GC(conservative GC 2 1.2 data next p 3 5 7 9 p 3 5 7 9 p 3 5 7 9 1 1: (single linked list 1

More information

ohp07.dvi

ohp07.dvi 19 7 ( ) 2019.4.20 1 (data structure) ( ) (dynamic data structure) 1 malloc C free 1 (static data structure) 2 (2) C (garbage collection GC) C GC(conservative GC) 2 2 conservative GC 3 data next p 3 5

More information

1 OpenCL OpenCL 1 OpenCL GPU ( ) 1 OpenCL Compute Units Elements OpenCL OpenCL SPMD (Single-Program, Multiple-Data) SPMD OpenCL work-item work-group N

1 OpenCL OpenCL 1 OpenCL GPU ( ) 1 OpenCL Compute Units Elements OpenCL OpenCL SPMD (Single-Program, Multiple-Data) SPMD OpenCL work-item work-group N GPU 1 1 2 1, 3 2, 3 (Graphics Unit: GPU) GPU GPU GPU Evaluation of GPU Computing Based on An Automatic Program Generation Technology Makoto Sugawara, 1 Katsuto Sato, 1 Kazuhiko Komatsu, 2 Hiroyuki Takizawa

More information

VXPRO R1400® ご提案資料

VXPRO R1400® ご提案資料 Intel Core i7 プロセッサ 920 Preliminary Performance Report ノード性能評価 ノード性能の評価 NAS Parallel Benchmark Class B OpenMP 版での性能評価 実行スレッド数を 4 で固定 ( デュアルソケットでは各プロセッサに 2 スレッド ) 全て 2.66GHz のコアとなるため コアあたりのピーク性能は同じ 評価システム

More information

: (1), ( ) 1 1.1,, 1 OpenMP [3, 5, 21, 22], MPI [13, 18, 23].., (C Fortran)., OS,. C Fortran,,,,. ( ),,.,,.,,,.,,,.,.,. 1

: (1), ( ) 1 1.1,, 1 OpenMP [3, 5, 21, 22], MPI [13, 18, 23].., (C Fortran)., OS,. C Fortran,,,,. ( ),,.,,.,,,.,,,.,.,. 1 : (1), ( ) 1 1.1,, 1 OpenMP [3, 5, 21, 22], MPI [13, 18, 23].., (C Fortran)., OS,. C Fortran,,,,. ( ),,.,,.,,,.,,,.,.,. 1 1.2,.,,,,.. CPU,,., (, ). (NUMA ).,.,. Flat MPI,,.,,. GPU, SIMD, [11]. C Fortran,.,

More information

£Ã¥×¥í¥°¥é¥ß¥ó¥°(2018) - Âè11²ó – ½ÉÂꣲ¤Î²òÀ⡤±é½¬£² –

£Ã¥×¥í¥°¥é¥ß¥ó¥°(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

More information

XMPによる並列化実装2

XMPによる並列化実装2 2 3 C Fortran Exercise 1 Exercise 2 Serial init.c init.f90 XMP xmp_init.c xmp_init.f90 Serial laplace.c laplace.f90 XMP xmp_laplace.c xmp_laplace.f90 #include int a[10]; program init integer

More information

Research on decision making in multi-player games with imperfect information

Research on decision making in multi-player games with imperfect information Research on decision making in multi-player games with imperfect information 37-086521 22 2 9 UCT UCT 46 % 60000 9 % 1 1 1.1........................................ 1 1.2.....................................

More information

新版明解C言語 実践編

新版明解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,

More information

1 911 9001030 9:00 A B C D E F G H I J K L M 1A0900 1B0900 1C0900 1D0900 1E0900 1F0900 1G0900 1H0900 1I0900 1J0900 1K0900 1L0900 1M0900 9:15 1A0915 1B0915 1C0915 1D0915 1E0915 1F0915 1G0915 1H0915 1I0915

More information

ohp11.dvi

ohp11.dvi 19 11 ( ) 2019.4.20 1 / ( ) n O(n 2 ) O(n 2 ) ( ) 1 d n 1 n logn O(nlogn) n ( n logn C ) 2 ( ) ( merge) 2 1 1 3 1 4 5 4 2 3 7 9 7 1 2 3 4 5 7 9 1: 2 ivec merge 3 ( ) (2) int *ivec_new(int size) { int *a

More information

r11.dvi

r11.dvi 19 11 ( ) 2019.4.20 1 / 1.1 ( n n O(n 2 O(n 2 ) ( 1 d n 1 n logn O(nlogn n ( n logn C 1.2 ( ( merge 2 1 1 3 1 4 5 4 2 3 7 9 7 1 2 3 4 5 7 9 1: 2 ivec merge int *ivec_new(int size) { int *a = (int*)malloc((size+1)

More information

~~~~~~~~~~~~~~~~~~ wait Call CPU time 1, latch: library cache 7, latch: library cache lock 4, job scheduler co

~~~~~~~~~~~~~~~~~~ wait Call CPU time 1, latch: library cache 7, latch: library cache lock 4, job scheduler co 072 DB Magazine 2007 September ~~~~~~~~~~~~~~~~~~ wait Call CPU time 1,055 34.7 latch: library cache 7,278 750 103 24.7 latch: library cache lock 4,194 465 111 15.3 job scheduler coordinator slave wait

More information

XcalableMP入門

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)

More information

memo

memo 計数工学プログラミング演習 ( 第 6 回 ) 2016/05/24 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : 再帰呼び出し 2 分探索木 深さ優先探索 課題 : 2 分探索木を用いたソート 2 再帰呼び出し 関数が, 自分自身を呼び出すこと (recursive call, recursion) 再帰を使ってアルゴリズムを設計すると, 簡単になることが多い

More information

XACCの概要

XACCの概要 2 global void kernel(int a[max], int llimit, int ulimit) {... } : int main(int argc, char *argv[]){ MPI_Int(&argc, &argc); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); dx

More information

2015 3

2015 3 JAIST Reposi https://dspace.j Title ターン制ストラテジーゲームにおける候補手の抽象化 によるゲーム木探索の効率化 Author(s) 村山, 公志朗 Citation Issue Date 2015-03 Type Thesis or Dissertation Text version author URL http://hdl.handle.net/10119/12652

More information

2. OpenMP OpenMP OpenMP OpenMP #pragma#pragma omp #pragma omp parallel #pragma omp single #pragma omp master #pragma omp for #pragma omp critica

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

More information

1

1 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CHECK! 21 22 23 24 LOCK LOCK 25 26 27 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 63 64 65 66

More information

漸化式のすべてのパターンを解説しましたー高校数学の達人・河見賢司のサイト

漸化式のすべてのパターンを解説しましたー高校数学の達人・河見賢司のサイト https://www.hmg-gen.com/tuusin.html https://www.hmg-gen.com/tuusin1.html 1 2 OK 3 4 {a n } (1) a 1 = 1, a n+1 a n = 2 (2) a 1 = 3, a n+1 a n = 2n a n a n+1 a n = ( ) a n+1 a n = ( ) a n+1 a n {a n } 1,

More information

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)) 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]

More information

ex01.dvi

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

More information

TSUBAME2.0 における GPU の 活用方法 東京工業大学学術国際情報センター丸山直也第 10 回 GPU コンピューティング講習会 2011 年 9 月 28 日

TSUBAME2.0 における GPU の 活用方法 東京工業大学学術国際情報センター丸山直也第 10 回 GPU コンピューティング講習会 2011 年 9 月 28 日 TSUBAME2.0 における GPU の 活用方法 東京工業大学学術国際情報センター丸山直也第 10 回 GPU コンピューティング講習会 2011 年 9 月 28 日 目次 1. TSUBAMEのGPU 環境 2. プログラム作成 3. プログラム実行 4. 性能解析 デバッグ サンプルコードは /work0/gsic/seminars/gpu- 2011-09- 28 からコピー可能です 1.

More information

Microsoft PowerPoint - OpenMP入門.pptx

Microsoft PowerPoint - OpenMP入門.pptx OpenMP 入門 須田礼仁 2009/10/30 初版 OpenMP 共有メモリ並列処理の標準化 API http://openmp.org/ 最新版は 30 3.0 バージョンによる違いはあまり大きくない サポートしているバージョンはともかく csp で動きます gcc も対応しています やっぱり SPMD Single Program Multiple Data プログラム #pragma omp

More information

,4) 1 P% P%P=2.5 5%!%! (1) = (2) l l Figure 1 A compilation flow of the proposing sampling based architecture simulation

,4) 1 P% P%P=2.5 5%!%! (1) = (2) l l Figure 1 A compilation flow of the proposing sampling based architecture simulation 1 1 1 1 SPEC CPU 2000 EQUAKE 1.6 50 500 A Parallelizing Compiler Cooperative Multicore Architecture Simulator with Changeover Mechanism of Simulation Modes GAKUHO TAGUCHI 1 YOUICHI ABE 1 KEIJI KIMURA 1

More information

新・明解C言語 実践編

新・明解C言語 実践編 第 1 章 見 21 1-1 見えないエラー 見 List 1-1 "max2x1.h" a, b max2 List 1-1 chap01/max2x1.h max2 "max2x1.h" #define max2(a, b) ((a) > (b)? (a) : (b)) max2 List 1-2 List 1-2 chap01/max2x1test.c max2 #include

More information

LIFO(last in first out, ) 1 FIFO(first in first out, ) 2 2 PUSH POP : 1

LIFO(last in first out, ) 1 FIFO(first in first out, ) 2 2 PUSH POP : 1 2007 7 17 2 1 1.1 LIFO(last in first out, ) 1 FIFO(first in first out, ) 2 2 PUSH POP 2 2 5 5 5 1: 1 2 データの追加 データの取り出し 5 2 5 2 5 2: 1.2 [1] pp.199 217 2 (binary tree) 2 2.1 (three: ) ( ) 秋田高専 校長 準学士課程学生

More information

C による数値計算法入門 ( 第 2 版 ) 新装版 サンプルページ この本の定価 判型などは, 以下の URL からご覧いただけます. このサンプルページの内容は, 新装版 1 刷発行時のものです.

C による数値計算法入門 ( 第 2 版 ) 新装版 サンプルページ この本の定価 判型などは, 以下の URL からご覧いただけます.  このサンプルページの内容は, 新装版 1 刷発行時のものです. C による数値計算法入門 ( 第 2 版 ) 新装版 サンプルページ この本の定価 判型などは, 以下の URL からご覧いただけます. http://www.morikita.co.jp/books/mid/009383 このサンプルページの内容は, 新装版 1 刷発行時のものです. i 2 22 2 13 ( ) 2 (1) ANSI (2) 2 (3) Web http://www.morikita.co.jp/books/mid/009383

More information

gpw96.dvi

gpw96.dvi MOO An optimal MOO strategy Tetsuro Tanaka, Faculty of Engineering, University of Tokyo tanaka@ipl.t.u-tokyo.ac.jp MOO ( ) (exhaustive search). [1], MOO. MOO,.,, 0.5., MOO. 1 MOO MOO, Hit & Blow, Cow &

More information

07-二村幸孝・出口大輔.indd

07-二村幸孝・出口大輔.indd GPU Graphics Processing Units HPC High Performance Computing GPU GPGPU General-Purpose computation on GPU CPU GPU GPU *1 Intel Quad-Core Xeon E5472 3.0 GHz 2 6 MB L2 cache 1600 MHz FSB 80 GFlops 1 nvidia

More information

/ SCHEDULE /06/07(Tue) / Basic of Programming /06/09(Thu) / Fundamental structures /06/14(Tue) / Memory Management /06/1

/ SCHEDULE /06/07(Tue) / Basic of Programming /06/09(Thu) / Fundamental structures /06/14(Tue) / Memory Management /06/1 I117 II I117 PROGRAMMING PRACTICE II 2 MEMORY MANAGEMENT 2 Research Center for Advanced Computing Infrastructure (RCACI) / Yasuhiro Ohara yasu@jaist.ac.jp / SCHEDULE 1. 2011/06/07(Tue) / Basic of Programming

More information

01_OpenMP_osx.indd

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

More information

Microsoft Word - 計算科学演習第1回3.doc

Microsoft Word - 計算科学演習第1回3.doc スーパーコンピュータの基本的操作方法 2009 年 9 月 10 日高橋康人 1. スーパーコンピュータへのログイン方法 本演習では,X 端末ソフト Exceed on Demand を使用するが, 必要に応じて SSH クライアント putty,ftp クライアント WinSCP や FileZilla を使用して構わない Exceed on Demand を起動し, 以下のとおり設定 ( 各自のユーザ

More information

Microsoft PowerPoint ppt [互換モード]

Microsoft PowerPoint ppt [互換モード] 計算機アーキテクチャ特論 2013 年 10 28 枝廣 前半 ( 並列アーキテクチャの基本 枝廣 ) 10/7, 10/21, 10/28, 11/11, 11/18, (12/2)( 程は予定 ) 内容 ( 変更の可能性あり ) 序論 ( マルチコア= 並列アーキテクチャ概論 ) キャッシュ コヒーレンシ メモリ コンシステンシ 並列アーキテクチャモデル OSモデル 並列プログラミングモデル 語

More information

459

459 459 40 5 200606-1,940 7 - - - 480.2 3.6+0.8 40 4,00010 0.791 50 5 200608-2,740 5 - - - 600.2 4.1+0.8 51 4,00010 1.122 65 5 200610-3,500 5 - - - 760.3 4.1+0.8 67 4,00010 1.445 75 5 200611-5,360 3 - - -

More information

2) TA Hercules CAA 5 [6], [7] CAA BOSS [8] 2. C II C. ( 1 ) C. ( 2 ). ( 3 ) 100. ( 4 ) () HTML NFS Hercules ( )

2) TA Hercules CAA 5 [6], [7] CAA BOSS [8] 2. C II C. ( 1 ) C. ( 2 ). ( 3 ) 100. ( 4 ) () HTML NFS Hercules ( ) 1,a) 2 4 WC C WC C Grading Student programs for visualizing progress in classroom Naito Hiroshi 1,a) Saito Takashi 2 Abstract: To grade student programs in Computer-Aided Assessment system, we propose

More information

An Introduction to OSL

An Introduction to OSL .... An Introduction to OSL TeamGPS 2009 3 CSA (TeamGPS) An Introduction to OSL 2009 3 CSA 1 / 45 ..1..2..3..4.... : (TeamGPS) An Introduction to OSL 2009 3 CSA 2 / 45 Disclaimer: OSL Bonanza Crafty (pruning/cut,

More information

I J

I J I 065763J 8 7 7 31 jikken/ +----- accumulation_demupa.c +----- accumulation_rain.c +----- frequency_demupa.c +----- frequency_rain.c +----- go.sh +----- graph_maker.sh +----- mesure-ryudai/ 2007/4/1 2007/6/30

More information

「産業上利用することができる発明」の審査の運用指針(案)

「産業上利用することができる発明」の審査の運用指針(案) 1 1.... 2 1.1... 2 2.... 4 2.1... 4 3.... 6 4.... 6 1 1 29 1 29 1 1 1. 2 1 1.1 (1) (2) (3) 1 (4) 2 4 1 2 2 3 4 31 12 5 7 2.2 (5) ( a ) ( b ) 1 3 2 ( c ) (6) 2. 2.1 2.1 (1) 4 ( i ) ( ii ) ( iii ) ( iv)

More information

演習1: 演習準備

演習1: 演習準備 演習 1: 演習準備 2013 年 8 月 6 日神戸大学大学院システム情報学研究科森下浩二 1 演習 1 の内容 神戸大 X10(π-omputer) について システム概要 ログイン方法 コンパイルとジョブ実行方法 OpenMP の演習 ( 入門編 ) 1. parallel 構文 実行時ライブラリ関数 2. ループ構文 3. shared 節 private 節 4. reduction 節

More information

Prog1_6th

Prog1_6th 2012 年 5 月 24 日 ( 木 ) 実施 多分岐のプログラム 前回は多段階の 2 分岐を組み合わせて 3 種類以上の場合分けを実現したが, 式の値の評価によって, 一度に多種類の場合分けを行う多分岐の利用によって見通しのよいプログラムを作成できる場合がある ( 流れ図は右図 ) 式の評価 : 値 1 : 値 2 : 値 n : 該当値無し 処理 1 処理 2 処理 n 既定の処理 switch

More information

B

B B 27 1153021 28 2 10 1 1 5 1.1 CPU................. 5 1.2.... 5 1.3.... 6 1.4.. 7 1.5................................ 8 2 9 2.1.................................. 9 2.2............................ 10 2.3............................

More information

Cell/B.E. BlockLib

Cell/B.E. BlockLib Cell/B.E. BlockLib 17 17115080 21 2 10 i Cell/B.E. BlockLib SIMD CELL SIMD Cell Cell BlockLib BlockLib NestStep libspe1 Cell SDK 3.1 libspe2 BlockLib Cell SDK 3.1 NestStep libspe2 BlockLib BlockLib libspe1

More information

II 3 yacc (2) 2005 : Yacc 0 ~nakai/ipp2 1 C main main 1 NULL NULL for 2 (a) Yacc 2 (b) 2 3 y

II 3 yacc (2) 2005 : Yacc 0 ~nakai/ipp2 1 C main main 1 NULL NULL for 2 (a) Yacc 2 (b) 2 3 y II 3 yacc (2) 2005 : Yacc 0 ~nakai/ipp2 1 C 1 6 9 1 main main 1 NULL NULL 1 15 23 25 48 26 30 32 36 38 43 45 47 50 52 for 2 (a) 2 2 1 Yacc 2 (b) 2 3 yytext tmp2 ("") tmp2->next->word tmp2 yytext tmp2->next->word

More information

28 Docker Design and Implementation of Program Evaluation System Using Docker Virtualized Environment

28 Docker Design and Implementation of Program Evaluation System Using Docker Virtualized Environment 28 Docker Design and Implementation of Program Evaluation System Using Docker Virtualized Environment 1170288 2017 2 28 Docker,.,,.,,.,,.,. Docker.,..,., Web, Web.,.,.,, CPU,,. i ., OS..,, OS, VirtualBox,.,

More information

II ( ) prog8-1.c s1542h017%./prog8-1 1 => 35 Hiroshi 2 => 23 Koji 3 => 67 Satoshi 4 => 87 Junko 5 => 64 Ichiro 6 => 89 Mari 7 => 73 D

II ( ) prog8-1.c s1542h017%./prog8-1 1 => 35 Hiroshi 2 => 23 Koji 3 => 67 Satoshi 4 => 87 Junko 5 => 64 Ichiro 6 => 89 Mari 7 => 73 D II 8 2003 11 12 1 6 ( ) prog8-1.c s1542h017%./prog8-1 1 => 35 Hiroshi 2 => 23 Koji 3 => 67 Satoshi 4 => 87 Junko 5 => 64 Ichiro 6 => 89 Mari 7 => 73 Daisuke 8 =>. 73 Daisuke 35 Hiroshi 64 Ichiro 87 Junko

More information

26

26 26 FIPP FAPP I/O LAMMPS LJ atomic fluid 32,000 atoms for 100 timesteps FX10 4 16 / (FIPP) FIPP fipp - C - d dir/ - Ihwm,call - i10 mpiexec./a.out GUI, fipppx - A - d dir/ - Ihwm,cpu,balance,call,src

More information

Microsoft Word - C.....u.K...doc

Microsoft Word - C.....u.K...doc C uwêííôöðöõ Ð C ÔÖÐÖÕ ÐÊÉÌÊ C ÔÖÐÖÕÊ C ÔÖÐÖÕÊ Ç Ê Æ ~ if eíè ~ for ÒÑÒ ÌÆÊÉÉÊ ~ switch ÉeÍÈ ~ while ÒÑÒ ÊÍÍÔÖÐÖÕÊ ~ 1 C ÔÖÐÖÕ ÐÊÉÌÊ uê~ ÏÒÏÑ Ð ÓÏÖ CUI Ô ÑÊ ÏÒÏÑ ÔÖÐÖÕÎ d ÈÍÉÇÊ ÆÒ Ö ÒÐÑÒ ÊÔÎÏÖÎ d ÉÇÍÊ

More information

ohp03.dvi

ohp03.dvi 19 3 ( ) 2019.4.20 CS 1 (comand line arguments) Unix./a.out aa bbb ccc ( ) C main void int main(int argc, char *argv[]) {... 2 (2) argc argv argc ( ) argv (C char ) ( 1) argc 4 argv NULL. / a. o u t \0

More information

file"a" file"b" fp = fopen("a", "r"); while(fgets(line, BUFSIZ, fp)) {... fclose(fp); fp = fopen("b", "r"); while(fgets(line, BUFSIZ, fp)) {... fclose

filea fileb fp = fopen(a, r); while(fgets(line, BUFSIZ, fp)) {... fclose(fp); fp = fopen(b, r); while(fgets(line, BUFSIZ, fp)) {... fclose I117 9 2 School of Information Science, Japan Advanced Institute of Science and Technology file"a" file"b" fp = fopen("a", "r"); while(fgets(line, BUFSIZ, fp)) {... fclose(fp); fp = fopen("b", "r"); while(fgets(line,

More information

1153006 JavaScript try-catch JavaScript JavaScript try-catch try-catch try-catch try-catch try-catch 1 2 2 try-catch try-catch try-catch try-catch 25 1153006 26 2 12 1 1 1 2 3 2.1... 3 2.1.1... 4 2.1.2

More information

SystemC言語概論

SystemC言語概論 SystemC CPU S/W 2004/01/29 4 SystemC 1 SystemC 2.0.1 CPU S/W 3 ISS SystemC Co-Simulation 2004/01/29 4 SystemC 2 ISS SystemC Co-Simulation GenericCPU_Base ( ) GenericCPU_ISS GenericCPU_Prog GenericCPU_CoSim

More information

tuat1.dvi

tuat1.dvi ( 1 ) http://ist.ksc.kwansei.ac.jp/ tutimura/ 2012 6 23 ( 1 ) 1 / 58 C ( 1 ) 2 / 58 2008 9 2002 2005 T E X ptetex3, ptexlive pt E X UTF-8 xdvi-jp 3 ( 1 ) 3 / 58 ( 1 ) 4 / 58 C,... ( 1 ) 5 / 58 6/23( )

More information

lexex.dvi

lexex.dvi (2018, c ) http://istksckwanseiacjp/ ishiura/cpl/ 4 41 1 mini-c lexc,, 2 testlexc, lexc mini-c 1 ( ) mini-c ( ) (int, char, if, else, while, return 6 ) ( ) (+, -, *, /, %, &, =, ==,!=, >, >=,

More information

スライド 1

スライド 1 目次 2.MPI プログラミング入門 この資料は, スーパーコン 10 で使用したものである. ごく基本的な内容なので, 現在でも十分利用できると思われるものなので, ここに紹介させて頂く. ただし, 古い情報も含まれているので注意が必要である. 今年度版の解説は, 本選の初日に配布する予定である. 1/20 2.MPI プログラミング入門 (1) 基本 説明 MPI (message passing

More information

untitled

untitled II 4 Yacc Lex 2005 : 0 1 Yacc 20 Lex 1 20 traverse 1 %% 2 [0-9]+ { yylval.val = atoi((char*)yytext); return NUM; 3 "+" { return + ; 4 "*" { return * ; 5 "-" { return - ; 6 "/" { return / ; 7 [ \t] { /*

More information

1:. Csmith,, (B!=0? A/B : A),.,., Orange3 [3], Orange4 [4],., Csmith., Csmith GCC LLVM.,,., Orange3, Orange4,, if for., Orange4, C, Csmith.,., if, for

1:. Csmith,, (B!=0? A/B : A),.,., Orange3 [3], Orange4 [4],., Csmith., Csmith GCC LLVM.,,., Orange3, Orange4,, if for., Orange4, C, Csmith.,., if, for C 1 1 1, C,.,,, if, for,.,, while, switch,,,. Orange4,, GCC-8.0.0 LLVM/Clang-6.0 ( 2017 12 ).,,,, Enriching Generation of Control Statements and Data Structures for Random Test of C Compilers Based on

More information

Microsoft PowerPoint ppt [互換モード]

Microsoft PowerPoint ppt [互換モード] 計算機アーキテクチャ特論 前半 ( 並列アーキテクチャの基本 枝廣 ) 10/1, 10/15, 10/22, 10/29, 11/5, 11/12( 程は予定 ) 内容 ( 変更の可能性あり ) 序論 ( マルチコア= 並列アーキテクチャ概論 ) キャッシュ コヒーレンシ メモリ コンシステンシ 並列アーキテクチャモデル OSモデル スケーラビリティに関する法則 2012 年 10 月 22 日枝廣

More information

北米アジャイル界デビュー fkinoからは 何も聞いてませんでした これまでに書いたもの Web 2.0 ビギナーズバイブル エンジニアマインド vol.5 開発の現場 vol.011 Dave 達人 Thomasも云ってたよ http://jp.rubyist.net/rubykaigi2007/?c=plugin;plugin=attach_download;p=program0610;file_name=the_island_of_ruby_j.pdf

More information

第86回日本感染症学会総会学術集会後抄録(I)

第86回日本感染症学会総会学術集会後抄録(I) κ κ κ κ κ κ μ μ β β β γ α α β β γ α β α α α γ α β β γ μ β β μ μ α ββ β β β β β β β β β β β β β β β β β β γ β μ μ μ μμ μ μ μ μ β β μ μ μ μ μ μ μ μ μ μ μ μ μ μ β

More information

ex01.dvi

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

More information

hpc141_shirahata.pdf

hpc141_shirahata.pdf GPU アクセラレータと不揮発性メモリ を考慮した I/O 性能の予備評価 白幡晃一 1,2 佐藤仁 1,2 松岡聡 1 1: 東京工業大学 2: JST CREST 1 GPU と不揮発性メモリを用いた 大規模データ処理 大規模データ処理 センサーネットワーク 遺伝子情報 SNS など ペタ ヨッタバイト級 高速処理が必要 スーパーコンピュータ上での大規模データ処理 GPU 高性能 高バンド幅 例

More information

[ 1] 1 Hello World!! 1 #include <s t d i o. h> 2 3 int main ( ) { 4 5 p r i n t f ( H e l l o World!! \ n ) ; 6 7 return 0 ; 8 } 1:

[ 1] 1 Hello World!! 1 #include <s t d i o. h> 2 3 int main ( ) { 4 5 p r i n t f ( H e l l o World!! \ n ) ; 6 7 return 0 ; 8 } 1: 005 9 7 1 1.1 1 Hello World!! 5 p r i n t f ( H e l l o World!! \ n ) ; 7 return 0 ; 8 } 1: 1 [ ] Hello World!! from Akita National College of Technology. 1 : 5 p r i n t f ( H e l l o World!! \ n ) ;

More information

XACC講習会

XACC講習会 www.xcalablemp.org 1 4, int array[max]; #pragma xmp nodes p(*) #pragma xmp template t(0:max-1) #pragma xmp distribute t(block) onto p #pragma xmp align array[i] with t(i) int array[max]; main(int argc,

More information

IntelR Compilers Professional Editions

IntelR Compilers Professional Editions June 2007 インテル コンパイラー プロフェッショナル エディション Phil De La Zerda 公開が禁止された情報が含まれています 本資料に含まれるインテル コンパイラー 10.0 についての情報は 6 月 5 日まで公開が禁止されています グローバル ビジネス デベロップメント ディレクター Intel Corporation マルチコア プロセッサーがもたらす変革 これまでは

More information

本文ALL.indd

本文ALL.indd Intel Xeon プロセッサにおける Cache Coherency 時間の性能測定方法河辺峻田口成美古谷英祐 Intel Xeon プロセッサにおける Cache Coherency 時間の性能測定方法 Performance Measurement Method of Cache Coherency Effects on an Intel Xeon Processor System 河辺峻田口成美古谷英祐

More information

memo

memo 計数工学プログラミング演習 ( 第 6 回 ) 2017/05/16 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : 再帰呼び出し 2 分探索木 深さ優先探索 課題 : 2 分探索木を用いたソート 2 再帰呼び出し 関数が, 自分自身を呼び出すこと (recursive call, recursion) 再帰を使ってアルゴリズムを設計すると, 簡単になることが多い

More information

春期講座 ~ 極限 1 1, 1 2, 1 3, 1 4,, 1 n, n n {a n } n a n α {a n } α {a n } α lim n an = α n a n α α {a n } {a n } {a n } 1. a n = 2 n {a n } 2, 4, 8, 16,

春期講座 ~ 極限 1 1, 1 2, 1 3, 1 4,, 1 n, n n {a n } n a n α {a n } α {a n } α lim n an = α n a n α α {a n } {a n } {a n } 1. a n = 2 n {a n } 2, 4, 8, 16, 春期講座 ~ 極限 1 1, 1 2, 1 3, 1 4,, 1 n, n n {a n } n a n α {a n } α {a n } α lim an = α n a n α α {a n } {a n } {a n } 1. a n = 2 n {a n } 2, 4, 8, 16, 32, n a n {a n } {a n } 2. a n = 10n + 1 {a n } lim an

More information

21 20 20413525 22 2 4 i 1 1 2 4 2.1.................................. 4 2.1.1 LinuxOS....................... 7 2.1.2....................... 10 2.2........................ 15 3 17 3.1.................................

More information

研修コーナー

研修コーナー l l l l l l l l l l l α α β l µ l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l

More information

DPD Software Development Products Overview

DPD Software Development Products Overview 2 2007 Intel Corporation. Core 2 Core 2 Duo 2006/07/27 Core 2 precise VTune Core 2 Quad 2006/11/14 VTune Core 2 ( ) 1 David Levinthal 3 2007 Intel Corporation. PC Core 2 Extreme QX6800 2.93GHz, 1066MHz

More information

IPSJ SIG Technical Report 1 1, Nested Transactional Memory Selecting the Optimal Rollback Point Yuji Ito, 1 Ryota Shioya, 1, 2 Masahiro Goshima

IPSJ SIG Technical Report 1 1, Nested Transactional Memory Selecting the Optimal Rollback Point Yuji Ito, 1 Ryota Shioya, 1, 2 Masahiro Goshima 1 1, 2 1 1 Nested Transactional Memory Selecting the Optimal Rollback Point Yuji Ito, 1 Ryota Shioya, 1, 2 Masahiro Goshima 1 and Shuichi Sakai 1 Lock-based synchronization is common in parallel programming.

More information

main

main RaVioli 21 21115135 25 2 12 i RaVioli CPU RaVioli RaVioli CPU RaVioli RaVioli RaVioli RaVioli RaVioli 1 1 2 2 2.1........................................... 2 2.1.1.......................... 2 2.1.2.....

More information

r08.dvi

r08.dvi 19 8 ( ) 019.4.0 1 1.1 (linked list) ( ) next ( 1) (head) (tail) ( ) top head tail head data next 1: NULL nil ( ) NULL ( NULL ) ( 1 ) (double linked list ) ( ) 1 next 1 prev 1 head cur tail head cur prev

More information

CPU Levels in the memory hierarchy Level 1 Level 2... Increasing distance from the CPU in access time Level n Size of the memory at each level 1: 2.2

CPU Levels in the memory hierarchy Level 1 Level 2... Increasing distance from the CPU in access time Level n Size of the memory at each level 1: 2.2 FFT 1 Fourier fast Fourier transform FFT FFT FFT 1 FFT FFT 2 Fourier 2.1 Fourier FFT Fourier discrete Fourier transform DFT DFT n 1 y k = j=0 x j ω jk n, 0 k n 1 (1) x j y k ω n = e 2πi/n i = 1 (1) n DFT

More information