Microsoft PowerPoint - 先端GPGPUシミュレーション工学特論(web).pptx
|
|
- こうご こけい
- 5 years ago
- Views:
Transcription
1 偏微分方程式の差分計算 拡散方程式 ) 長岡技術科学大学電気電子情報工学専攻出川智啓
2 今日の内容 シミュレーションの歴史と進歩 差分法 1 階微分 階微分に対する差分法 1 次関数の差分 次元拡散方程式 付録 共有メモリの典型的な使い方 49 先端 GPGPUシミュレーション工学特論
3 数値計算 計算機を利用して数学 物理学的問題の解を計算 微積分を計算機で扱える形に変換 処理自体はあまり複雑ではない 精度を上げるために計算量が増加 493 先端 GPGPUシミュレーション工学特論
4 シミュレーションの歴史と進歩 このスライドは諸事情により空白です 494
5 シミュレーションの歴史と進歩 1985 年 次元でのシミュレーション 実験結果と 傾向は 一致 495
6 シミュレーションの歴史と進歩 1987 年 3 次元化し 実車に近い形状で計算 496
7 シミュレーションの歴史と進歩 1988 年 ~1990 年 車輪や床下も含めたモデル化 497
8 シミュレーションの歴史と進歩 1993 年 空気抵抗を誤差 1% で予測可能 空力解析以外にも利用 498
9 シミュレーションの歴史と進歩 199 年 ~1993 年 車体から発生する騒音のシミュレーション ドアミラーやピラーの形状の改良 エンジンルームの冷却 10mm 以上の部品は全て含めて解析 499
10 シミュレーションの歴史と進歩 衝突解析 500
11 現象を支配する方程式 支配方程式 ) 現象は微分方程式によって記述 微分と積分が計算できれば現象を明らかにできる 支配方程式 場所や時間によって方程式は変わらない 流体の支配方程式 0 t p t q p E t E 質量保存式 ) エネルギ保存式 ) 運動量保存式 ) 501
12 拡散方程式 物質の拡散を表す方程式 水の中に落ちたインクの拡散 金属中の熱伝導等 時刻 t=0 における の分布 初期値 ) が既知 時間進行に伴い がどのように変化するかを計算 時間積分しながら の分布を求める ) ) t t t 50 ) ) ) y t y t y t t y
13 差分法 計算機で微分を計算する方法の一つ 微分の定義 の関数 について だけ離れた 点間の傾きを計算し 点の間隔を無限小に近づけたときの極限 d Δ) ) lm d Δ 0 Δ 差分近似 関数をある間隔でサンプリング その間隔 がの変化に対して十分小さいと仮定 d Δ) ) d Δ 503
14 差分法 理論的なお話 ) 差分の誤差 lm を排除したことでどの程度の誤差が入るのか d d Δ) ) lm 0 Δ Δ Δ) Δ ) 関数 のテイラー展開を利用 d Δ d Δ d Δ) ) Δ 3 d! d 3! d 3 3 d d Δ) Δ ) 1 Δ Δ! d d Δ 3! 3 d 3 d 3 504
15 差分法 理論的なお話 ) 空間打ち切り誤差 定義とテイラー展開の比較 テイラー展開を有限項で打ち切ったことによる誤差 !! 1 ) ) d d Δ d d Δ Δ Δ Δ d d Δ Δ Δ Δ d d Δ ) ) ) ) lm 0 誤差 3 3 3!! d d Δ d d Δ 505
16 差分法 理論的なお話 ) 誤差の主要項 空間打ち切り誤差の中で最も大きい誤差は第 1 項 は小さい の高次項はさらに小さく 無視できる Δ! d d Δ 3! d 3 d 3 O Δ) 直感的に導いた微分の数値計算法の誤差は O) を 1/10 にすれば誤差も 1/10 になる 506
17 差分法 理論的なお話 ) 507 差分の取り方 関数値の選び方にいくつか選択肢がある テイラー展開で整理 Δ Δ Δ Δ d d Δ ) ) ) ) lm !! ) ) d d Δ d d Δ d d Δ Δ !! 1 ) ) d d Δ d d Δ Δ Δ Δ d d
18 差分法 理論的なお話 ) 508 差分の取り方 テイラー展開で整理 Δ Δ Δ Δ Δ Δ d d Δ ) ) ) ) lm 0 Δ Δ Δ Δ ) ) ) ) ! 1 ) ) d d Δ Δ Δ Δ Δ d d
19 差分法の概念図 ) 中心差分 Δ) Δ Δ) 後退差分 ) Δ) Δ 前進差分 Δ) ) Δ =
20 差分法の概念図 ) サンプリングされた関数値を配列 [] で保持 = =0 1) +1) 510
21 差分法の概念図 [] 中心差分 [+1] [ 1]) /*d) サンプリングされた関数値を配列 [] で保持 [+1] [] [ 1] d =
22 階微分の離散化 テイラー展開を応用 方向に 離れた 点で展開 3 3 Δ Δ Δ) ) Δ 3! 3! 3 3 Δ Δ Δ) ) Δ 3! 3! 式を足すと 1 階微分が消滅 Δ Δ) Δ) )! 51 先端 GPGPUシミュレーション工学特論
23 階微分の離散化 階微分の式に整理 Δ) ) Δ Δ) [] 階の中心差分 [+1] [+1] *[]+[ 1]) /d*d) [ 1] [] = 先端 GPGPUシミュレーション工学特論 d サンプリングされた関数値を配列 [] で保持
24 差分法の実装 階微分の中心差分近似 d d Δ) ) Δ Δ) 1 Δ 1 [] Δ dd[] 514
25 差分法の実装 計算領域内部 dd[]=[ 1] *[]+[+1])/dd; 境界条件 関数値が無いため処理を変更 ) dd[0 ]=*[0 ] 5*[1 ]+4*[ ] [3 ])/dd; dd[n 1]=*[N 1] 5*[N ]+4*[N 3] [N 4])/dd; [] Δ dd[] 515
26 差分法の実装 計算領域内部 dd[]=[ 1] *[]+[+1])/dd; 境界条件 関数値が無いため処理を変更 ) dd[0 ]=*[0 ] 5*[1 ]+4*[ ] [3 ])/dd; dd[n 1]=*[N 1] 5*[N ]+4*[N 3] [N 4])/dd; [] + 1 Δ dd[] 516
27 差分法の実装 計算領域内部 dd[]=[ 1] *[]+[+1])/dd; 境界条件 関数値が無いため処理を変更 ) dd[0 ]=*[0 ] 5*[1 ]+4*[ ] [3 ])/dd; dd[n 1]=*[N 1] 5*[N ]+4*[N 3] [N 4])/dd; [] + 1 Δ dd[] 517
28 CPU プログラム #nclde<stdlb.h> #nclde<math.h>/* lmオプションが必要*/ #defne L.0*M_PI) #defne N 56) #defne d L/N 1)) #defne Nbytes N*szeofdoble)) #defne dd d*d) vod ntdoble *){ nt ; for=0; <N; ++){ [] = sn*d); vod dfferentatedoble * doble *dd){ nt ; dd[0] =.0*[0] 5.0*[1] +4.0*[] [3])/dd; for=1; <N 1; ++) dd[] = [+1].0*[ ] + [ 1])/dd; dd[n 1]= [N 4] +4.0*[N 3] 5.0*[N ] +.0*[N 1])/dd; nt manvod){ doble **dd; = doble *)mallocnbytes); dd = doble *)mallocnbytes); nt); dfferentatedd); retrn 0; dfferentate.c 518
29 関数の離散化 計算領域の長さと離散点の数 離散点の間隔の関係 ) L 0 0 から L の間に設けられた点の数 N =L /
30 実行結果 d/d 50 先端 GPGPUシミュレーション工学特論
31 GPU への移植 計算領域内部を計算するスレッド dd[]=[ 1] *[]+[+1])/dd; 境界を計算するスレッド dd[0 ]=*[0 ] 5*[1 ]+4*[ ] [3 ])/dd; dd[n 1]=*[N 1] 5*[N ]+4*[N 3] [N 4])/dd; [] Δ dd[] 51
32 GPU プログラム #nclde<stdo.h> #nclde<stdlb.h> #nclde<math.h>/* lmオプションが必要*/ #defne L.0*M_PI) #defne N 56) #defne d L/N 1)) #defne Nbytes N*szeofdoble)) #defne dd d*d) #defne NT 18) #defne NB N/NT) vod ntdoble *){ nt ; for=0; <N; ++){ [] = sn*d); global vod dfferentate doble * doble *dd){ nt = blockid.*blockdm. + threadid.; f==0) dd[] =.0*[ ] 5.0*[+1] +4.0*[+] [+3])/dd; f0< && <N 1) dd[] = [+1].0*[ ] + [ 1])/dd; f==n 1) dd[]= [ 3] +4.0*[ ] 5.0*[ 1] +.0*[ ])/dd; dfferentate.c 5
33 GPU プログラム nt manvod){ doble *host_*host_dd; doble **dd; host_ =doble *)mallocnbytes); cdamallocvod **)&Nbytes); cdamallocvod **)&ddnbytes); nthost_); cdamemcpy host_ Nbytes cdamemcpyhosttodevce); dfferentate<<<nb NT>>> dd); //host_dd=doble *)mallocnbytes); //cdamemcpyhost_dd dd Nbytes cdamemcpydevcetohost); //fornt =0; <N; ++)prntf"%f%f%f n"*dhost_[]host_dd[]); freehost_); freehost_dd); cdafree); cdafreedd); retrn 0; dfferentate.c 53
34 次元への拡張 54 拡散方程式 1 次元 次元 ) ) t t t ) ) ) y t y t y t t y dfferentate.c で計算どのように 次元に拡張するかどのように離散化するか
35 次元への拡張 方向 階偏微分 y 方向を固定して 方向に偏微分 y 方向 階偏微分 方向を固定して y 方向に偏微分 ) ) ) Δ y Δ y y Δ ) ) ) Δy Δy y y Δy y y 55
36 時間積分 時間微分項の離散化 時間微分項を前進差分で離散化 右辺の t+t の項を移行 t t y t t y t ) ) 56 t t t t y t t y ) ) 拡散方程式を代入 ) ) ) t y t t y t t y y t) の 階微分を計算できれば y t+t) が求められる
37 離散化された方程式の記述 簡略化した表現 配列との対応をとるため下付き添字 を利用 y) y) 1 y y) 1 時間は 上付き添字 n を利用 n y t) y t t) n1 57 先端 GPGPUシミュレーション工学特論
38 離散化された拡散方程式 連続系 離散系 t 秒後の値 ) ) ) y t y t y t t y y t n n n n n n n n y t n n n n n n n n 58
39 拡散方程式 熱伝導方程式 ) y y y y t t+t y t n n n n n n n n
40 拡散方程式の安定性 530 プログラムを正しく作成しても正常な計算結果が得られない場合がある 安定条件 拡散の強さを表す係数 拡散係数 ) を使った形 二つの条件を満たすことが必要 結果が正しいかは別 ) 0.5 t v 5 0. y t v y t n n n n n n n n
41 計算手順 1. 計算条件の決定 計算領域の大きさ L L y 計算領域の分割数 離散点の個数 )N N y 離散点同士の間隔 格子間隔 ) y 計算時間間隔 t. 初期値の決定 の初期分布の決定 3. 差分値の計算 の分布から y 方向の 階微分値を計算 境界条件に基づいて境界の値を決定 t 秒後のを計算 531 先端 GPGPUシミュレーション工学特論
42 CPU プログラム 計算条件の決定 計算領域の大きさ L L y 計算領域の分割数 離散点の個数 )N N y 離散点同士の間隔 格子間隔 ) y #nclde<stdo.h> #nclde<stdlb.h> #nclde<math.h> #defne L.0*M_PI) #defne Ly.0*M_PI) #defne N 51 #defne Ny 51 #defne d L/N 1)) #defne dy Ly/Ny 1)) #defne dt 計算時間間隔 t 53 先端 GPGPUシミュレーション工学特論
43 CPU プログラム 初期条件 sn sn y 境界条件 sn sn y 0 for=0;<ny;++){ for=0;<n;++){ = doble)*d; y = doble)*dy; [*Ny+]=sn)*sny); 533 先端 GPGPUシミュレーション工学特論
44 CPU プログラム #nclde<stdo.h> #nclde<stdlb.h> #nclde<math.h> #defne L.0*M_PI) #defne Ly.0*M_PI) #defne N 18 #defne Ny 18 #defne d L/N 1)) #defne dy Ly/Ny 1)) #defne dt #defne endt 1.0) #defne Nt nt)endt/dt) #defne DIFF 1.0) #defne dd d*d) #defne dydy dy*dy) #defne Nbytes N*Ny*szeofdoble)) vod laplacandoble * doble *); vod ntegratedoble * doble * doble *); vod pdatedoble * doble *); nt manvod){ doble **new*lapy; nt p1m1p1m1n; = doble *)mallocn*ny*szeofdoble)); new = doble *)mallocn*ny*szeofdoble)); lap = doble *)mallocn*ny*szeofdoble)); for=0;<ny;++){ for=0;<n;++){ = doble)*d; y = doble)*dy; [*Ny+]=sn)*sny); new[*ny+]=0.0f; lap[*ny+]=0.0f; forn=0;n<nt;n++){ laplacanlap); ntegratelapnew); pdatenew); retrn 0; dffson.c 534
45 CPU プログラム vod laplacandoble * doble *lap){ nt p1m1p1m1; for=1;<ny 1;++){ for=1;<n 1;++){ = *Ny+; p1 = +1)*Ny+; m1 = 1)*Ny+; p1 = *Ny++1; m1 = *Ny+ 1; lap[] = [p1].0*[]+[m1])/dd +[p1].0*[]+[m1])/dydy; vod ntegrate doble * doble *lap doble *new){ nt ; for=0;<ny;++){ for=0;<n;++){ = *Ny+; new[] = [] + dt*diff*lap[]; vod pdatedoble * doble *new){ nt ; for=0;<ny;++){ for=0;<n;++){ = *Ny+; [] = new[]; dffson.c 535
46 CPU プログラム 差分計算 方向 y 方向偏微分を個別に計算して加算 vod laplacandoble * doble *lap){ nt p1m1p1m1; for=1;<ny 1;++){ for=1;<n 1;++){ = *Ny+; p1 = +1)*Ny+; m1 = 1)*Ny+; p1 = *Ny++1; m1 = *Ny+ 1; lap[] = [p1].0*[]+[m1])/dd +[p1].0*[]+[m1])/dydy; 536 先端 GPGPUシミュレーション工学特論
47 ラプラシアン計算のメモリ参照 ある 1 点 のラプラシアンを計算するために 周囲 5 点の を参照 [] lap[] 先端 GPGPUシミュレーション工学特論
48 ラプラシアン計算のメモリ参照 ある 1 点 のラプラシアンを計算するために 周囲 5 点の を参照 [] lap[] 先端 GPGPUシミュレーション工学特論
49 ラプラシアン計算のメモリ参照 ある 1 点 のラプラシアンを計算するために 周囲 5 点の を参照 [] lap[] 先端 GPGPUシミュレーション工学特論
50 ラプラシアン計算のメモリ参照 ある 1 点 のラプラシアンを計算するために 周囲 5 点の を参照 [] lap[] 先端 GPGPUシミュレーション工学特論
51 ラプラシアン計算のメモリ参照 ある 1 点 のラプラシアンを計算するために 周囲 5 点の を参照 全ての を参照し 領域内部の lap を計算 [] lap[] 541 先端 GPGPUシミュレーション工学特論
52 CPU プログラム 境界条件 のラプラシアン sn sn y lap[] 境界ではどの時刻においても 0 =0 0 y = 0 y 0 y=0 0 y= 変数 lap を 0 で初期化すれば 計算しなくてもよい 54 先端 GPGPUシミュレーション工学特論
53 CPU プログラム の積分 vod ntegrate doble * doble *lap doble *new){ nt ; for=0;<ny;++){ for=0;<n;++){ = *Ny+; new[] = [] + dt*diff*lap[]; y t n n n n n n n n
54 CPU プログラム の更新 n から n+1 を計算 n+1 から n+ を計算 同じアルゴリズム 今の時刻から次の時刻を求める 求められた次の時刻を今の時刻と見なし 次の時刻を求める vod pdatedoble * doble *new){ nt ; for=0;<ny;++){ for=0;<n;++){ = *Ny+; [] = new[]; 544 先端 GPGPUシミュレーション工学特論
55 GPU プログラム CPU 処理用共通部分 ) #nclde<stdo.h> #nclde<stdlb.h> #nclde<math.h> #defne L.0*M_PI) #defne Ly.0*M_PI) #defne N 18 #defne Ny N #defne d L/N 1)) #defne dy Ly/Ny 1)) #defne dt #defne endt 1.0) #defne Nt nt)endt/dt) #defne DIFF 1.0) #defne dd d*d) #defne dydy dy*dy) #defne Nbytes N*Ny*szeofdoble)) #nclde "df1.c" //#nclde "df.c" //#nclde "df3.c" nt manvod){ nt n; doble *dev_*dev_new*dev_lap; dm3 Thread Block; fdiff*dt/dd > 0.5){ prntf"confgraton error n"); et1); cdamalloc vod**)&dev_ Nbytes ); cdamalloc vod**)&dev_new Nbytes ); cdamalloc vod**)&dev_lap Nbytes ); Thread = dm3threadxthready1); Block = dm3blockx BLOCKY 1); nt<<<block Thread>>> dev_ dev_lap dev_new); forn=0;n<nt;n++){ laplacan<<<block Thread>>> dev_dev_lap); ntegrate<<<block Thread>>> dev_dev_lapdev_new); pdate<<<block Thread>>>dev_dev_new); retrn 0; dff.c 545
56 GPU プログラム 1 スレッド版 ) #defne THREADX 1 #defne THREADY 1 #defne BLOCKX 1 #defne BLOCKY 1 global vod nt doble * doble *lap doble *new){ nt ; doble y; for=0;<ny;++){ for=0;<n;++){ = *Ny+; = doble)*d; y = doble)*dy; []=sn)*sny); new[]=0.0; lap[]=0.0; global vod laplacandoble * doble *lap){ nt p1m1p1m1; for=1;<ny 1;++){ for=1;<n 1;++){ = *Ny+; p1 = +1)*Ny+; m1 = 1)*Ny+; p1 = *Ny++1; m1 = *Ny+ 1; lap[] = [p1].0f*[]+[m1])/dd +[p1].0f*[]+[m1])/dydy; global vod ntegrate doble * doble *lap doble *new){ nt ; for=0;<ny;++){ for=0;<n;++){ = *Ny+; new[] = [] + dt*diff*lap[]; global vod pdatedoble * doble *new){ nt ; for=0;<ny;++){ for=0;<n;++){ = *Ny+; [] = new[]; df1.c 546
57 次元ブロック分割 1 スレッドが 1 点のラプラシアンを計算 grddm.= blockid.=0 blockid.=1 grddm.y= blockid.y=0 blockid.y=1 blockdm.=4 blockdm.y=4 threadid.= threadid.y= 547
58 次元ブロック分割 N=8 Ny=8 y 方向スレッド数 4 ブロック数 = blockid.*blockdm. + threadid. = blockid.y*blockdm.y + threadid.y block00) block10) = )10)0)30)00) 01)11)1)31) 0)1))3) 03)13)3)33) 33) 00) 00) 33) 33) = threadid. threadid.y 548 block01) block11)
59 次元的な配列アクセスの優先方向 CPU) 次元配列の 1 次元配列的表現 for=0;<n;++) for=0;<ny;++) ot[][]=n[][]; n[]ot[] for=0;<n;++) for=0;<ny;++) ot[*ny+]= n[*ny+]; Ny N 549
60 次元的な配列アクセスの優先方向 GPU) CUDA で 次元的に並列化してアクセスする場合 for=0;<n;++) for=0;<ny;++) ot[*ny+]= n[*ny+]; = blockid.*blockdm. + threadid.; = blockid.y*blockdm.y + threadid.y; ot[*n+]=n[*n+]; n[]ot[] threadid. threadid.y Ny N 550
61 GPU プログラム 1 スレッドが 1 点を計算 ) #defne THREADX 16 #defne THREADY 16 #defne BLOCKX N/THREADX) #defne BLOCKY Ny/THREADY) global vod laplacandoble * doble *lap){ nt p1m1p1m1; = blockid.*blockdm. + threadid.; = blockid.y*blockdm.y + threadid.y; f 0< && <N 1) && 0< && <Ny 1) ){ = +N*; p1 = +1+N*; m1 = 1+N*; p1 = +N*+1); m1 = +N* 1); lap[] = [p1].0*[]+[m1])/dd +[p1].0*[]+[m1])/dydy; global vod ntegrate doble * doble *lap doble *new){ nt ; = blockid.*blockdm. + threadid.; = blockid.y*blockdm.y + threadid.y; = +N*; new[] = [] + dt*lap[]; global vod pdatedoble * doble *new){ nt ; = blockid.*blockdm. + threadid.; = blockid.y*blockdm.y + threadid.y; = +N*; [] = new[]; global vod nt doble * doble *lap doble *new){ nt ; doble y; = blockid.*blockdm. + threadid.; = blockid.y*blockdm.y + threadid.y; = +N*; = doble)*d; y = doble)*dy; []=sn)*sny); new[]=0.0; lap[]=0.0; df.c 551
62 境界でラプラシアンが 0 にならない場合 共有メモリを利用してキャッシュを模擬 共有メモリに付加的な領域を追加 [] lap[] 55 先端 GPGPUシミュレーション工学特論
63 境界でラプラシアンが 0 にならない場合 共有メモリを利用してキャッシュを模擬 共有メモリに付加的な領域を追加 [] lap[] 553 先端 GPGPUシミュレーション工学特論
64 境界でラプラシアンが 0 にならない場合 共有メモリを利用してキャッシュを模擬 共有メモリに付加的な領域を追加 s[][] [] lap[] 554 先端 GPGPUシミュレーション工学特論
65 付加的な領域 袖領域 ) の取り扱い データがグローバルメモリに存在する場合は グローバルメモリから読み込み s[][] [] lap[] 555 先端 GPGPUシミュレーション工学特論
66 付加的な領域 袖領域 ) の取り扱い グローバルメモリに無い場合は境界条件から決定 s[][] [] lap[] 556 先端 GPGPUシミュレーション工学特論
67 境界条件 557 階微分が Δ Δy y
68 境界条件 558 階微分を片側差分で計算 Δy y Δ
69 GPU プログラム ラプラシアン kernel) #defne THREADX 16 #defne THREADY 16 #defne BLOCKX N/THREADX) #defne BLOCKY Ny/THREADY) global vod laplacandoble * doble *lap){ nt ; nt tty; shared float s[1+threadx+1][1+thready+1]; = blockid.*blockdm. + threadid.; = blockid.y*blockdm.y + threadid.y; t = threadid. + 1; ty = threadid.y + 1; = +N*; s[t][ty] = []; syncthreads); f blockid. == 0 && threadid. == 0 ) s[t 1][ty] =.0*s[t][ty] s[t+1][ty]; f blockid.!= 0 && threadid. == 0 ) s[t 1][ty] = [*N+ 1]; f blockid. == grddm. 1 && threadid. == blockdm. 1) s[t+1][ty] =.0*s[t][ty] s[t 1][ty]; f blockid.!= grddm. 1 && threadid. == blockdm. 1) s[t+1][ty] = [*N++1]; f blockid.y == 0 && threadid.y == 0) s[t][ty 1] =.0*s[t][ty] s[t][ty+1]; f blockid.y!= 0 && threadid.y == 0) s[t][ty 1] = [ 1)*N+]; f blockid.y == grddm.y 1 && threadid.y == blockdm.y 1) s[t][ty+1] =.0*s[t][ty] s[t][ty 1]; f blockid.y!= grddm.y 1 && threadid.y == blockdm.y 1) s[t][ty+1] = [+1)*N+]; syncthreads); lap[] = s[t 1][ty ].0*s[t][ty]+s[t+1][ty ])/dd +s[t ][ty 1].0*s[t][ty]+s[t ][ty+1])/dydy; df3.c 559
70 GPU プログラム ラプラシアン kernel) shared float s[1+threadx+1][1+thready+1]; = blockid.*blockdm. + threadid.; = blockid.y*blockdm.y + threadid.y; t = threadid.; ty = threadid.y; [] = +N*; s[t][ty] = []; syncthreads); ブロック内のスレッド数 + 袖領域分の共有メモリを確保袖領域があるために添字の対応が変化 添字の対応を考えないと 必要なデータを袖領域に置いてしまう syncthreads) を呼んでスレッドを同期 共有メモリにデータが正しく書き込まれた事を保証 s[][] 560
71 GPU プログラム ラプラシアン kernel) shared float s[1+threadx+1][1+thready+1]; = blockid.*blockdm. + threadid.; = blockid.y*blockdm.y + threadid.y; t = threadid. + 1; ty = threadid.y; [] = +N*; s[t][ty] = []; syncthreads); ブロック内のスレッド数 + 袖領域分の共有メモリを確保袖領域があるために添字の対応が変化 添字の対応を考えないと 必要なデータを袖領域に置いてしまう syncthreads) を呼んでスレッドを同期 561 共有メモリにデータが正しく書き込まれた事を保証 s[][] +1
72 GPU プログラム ラプラシアン kernel) shared float s[1+threadx+1][1+thready+1]; = blockid.*blockdm. + threadid.; = blockid.y*blockdm.y + threadid.y; t = threadid. + 1; ty = threadid.y + 1; [] = +N*; s[t][ty] = []; syncthreads); ブロック内のスレッド数 + 袖領域分の共有メモリを確保袖領域があるために添字の対応が変化 添字の対応を考えないと 必要なデータを袖領域に置いてしまう syncthreads) を呼んでスレッドを同期 56 共有メモリにデータが正しく書き込まれた事を保証 s[][] +1 +1
73 GPU プログラム ラプラシアン kernel) 袖領域の設定 fblockid. == 0 && threadid. == 0 ) s[t 1][ty] =.0*s[t][ty] s[t+1][ty]; fblockid.!= 0 && threadid. == 0 ) s[t 1][ty] = [*N+ 1]; fblockid. == grddm. 1 && threadid. == blockdm. 1) s[t+1][ty] =.0*s[t][ty] s[t 1][ty]; fblockid.!= grddm. 1 && threadid. == blockdm. 1) s[t+1][ty] = [*N++1]; fblockid.y == 0 && threadid.y == 0 ) s[t][ty 1] =.0*s[t][ty] s[t][ty+1]; fblockid.y!= 0 && threadid.y == 0 ) s[t][ty 1] = [ 1)*N+]; fblockid.y == grddm.y 1 && threadid.y == blockdm.y 1) s[t][ty+1] =.0*s[t][ty] s[t][ty 1]; fblockid.y!= grddm.y 1 && threadid.y == blockdm.y 1) s[t][ty+1] = [+1)*N+]; syncthreads); グローバルメモリにデータがある箇所はグローバルメモリから読み込みグローバルメモリにデータがない箇所は 階微分が0になるように袖領域の値を決定 ブロックが境界に接しているか否かで処理を切替 563
74 GPU プログラム ラプラシアン kernel) lap[] = s[t 1][ty ].0*s[t][ty]+s[t+1][ty ])/dd +s[t ][ty 1].0*s[t][ty]+s[t ][ty+1])/dydy; 共有メモリのデータを利用してラプラシアンを計算 f 分岐を排除 lap[] s[][] 564
75 GPU プログラムの評価 共有メモリを使用した df3.c df.c 共有メモリ不使用 ) より速いこともあれば遅いこともある Ferm 世代以降の GPU はキャッシュを搭載 共有メモリを使っても速くならない 共有メモリへ明示的にデータを移動 余分な処理により負荷が増加 565
76 その他の処理の高速化 値の更新 newのデータをにコピーしているだけ cdamemcpyで代用可能 global vod pdatedoble * doble *new){ nt ; = blockid.*blockdm. + threadid.; = blockid.y*blockdm.y + threadid.y; = +N*; [] = new[]; 566
77 その他の処理の高速化 値の更新 newのデータをにコピーしているだけ cdamemcpyで代用可能 forn=0;n<nt;n++){ laplacan<<<block Thread>>>dev_dev_lap); ntegrate<<<block Thread>>>dev_dev_lapdev_new); //pdate<<<block Thread>>>dev_dev_new); cdamemcpydev_ dev_new Nbytes cdamemcpydevcetodevce); retrn 0; 567
78 その他の処理の高速化 初期値の計算 三角関数がそれらしい値で求められればいい場合 有効数字 4 桁程度 global vod ntdoble * doble *lap doble *new){ nt ; doble y; = blockid.*blockdm. + threadid.; = blockid.y*blockdm.y + threadid.y; = +N*; = doble)*d;y = doble)*dy; []=sn)*sny); new[]=0.0; lap[]=0.0; 568
79 その他の処理の高速化 初期値の計算 三角関数がそれらしい値で求められればいい場合 有効数字 4 桁程度 global vod ntdoble * doble *lap doble *new){ nt ; doble y; = blockid.*blockdm. + threadid.; = blockid.y*blockdm.y + threadid.y; = +N*; = doble)*d;y = doble)*dy; []= snf)* snfy); new[]=0.0; lap[]=0.0; 569
80 FastMath 関数 三角関数など数学関数を高速に計算 精度は落ちる 手動で書き換え snf cosf powf など se_fast_math オプション sncos を利用していても se fast math オプションを付けることで snf cosf に置き換えられる 570
81 付録共有メモリの典型的な使い方
82 共有メモリの典型的な使い方 差分法 あるスレッドが中心差分を計算するために配列の要素 1 +1 を参照 配列要素は複数回参照される Ferm 世代以降はキャッシュが利用可能 [] 参照される回数 1 Δ dd[] 57
83 共有メモリの典型的な使い方 境界で異なる処理を行うために f 分岐が必要 キャッシュを搭載していてもグローバルメモリへのアクセスを伴う f 分岐は高負荷 データの再利用と f 文の排除に共有メモリを利用 [] 3 3 参照される回数 Δ dd[] 573
84 共有メモリによる明示的なキャッシュ グローバルメモリから共有メモリにデータをキャッシュ 共有メモリ上で境界条件を処理 中心差分の計算から f を排除 blockid.=0 blockid.=1 [] 共有メモリ 計算のために必要になる余分な領域 袖領域 ) dd[] 574
85 共有メモリによる明示的なキャッシュ グローバルメモリから共有メモリにデータをキャッシュ 共有メモリ上で境界条件を処理 中心差分の計算から f を排除 blockid.=0 blockid.=1 [] 共有メモリ 何らかの方法で境界条件を反映 何らかの方法で境界条件を反映 dd[] 575
86 共有メモリによる明示的なキャッシュ グローバルメモリから共有メモリにデータをキャッシュ 共有メモリ上で境界条件を処理 中心差分の計算から f を排除 blockid.=0 blockid.=1 [] 共有メモリ 全スレッドが同じ式で中心差分を計算 dd[] 576
87 GPU プログラム 単純な実装 ) #nclde<stdlb.h> #nclde<math.h>/* lm オプションが必要 */ #defne L.0*M_PI) #defne N 104*104) #defne d L/N 1)) #defne Nbytes N*szeofdoble)) #defne NT 56) #defne NB N/NT) vod ntdoble *){ nt ; for=0; <N; ++){ [] = sn*d); global vod dfferentate doble * doble *dd){ nt = blockid.*blockdm. + threadid.; f==0) dd[]= 3.0*[ ] +4.0*[+1] [+])/.0*d); f0< && <N 1) dd[] = [+1] [ 1])/.0*d); f==n 1) dd[]= [ ] 4.0*[ 1] +3.0*[ ])/.0*d); dfferentate1d.c 577
88 GPU プログラム 単純な実装 ) nt manvod){ doble *host_*host_dd; doble **dd; host_ =doble *)mallocnbytes); host_dd=doble *)mallocnbytes); cdamallocvod **)&Nbytes); cdamallocvod **)&ddnbytes); nthost_); cdamemcpyhost_nbytes cdamemcpyhosttodevce); dfferentate<<<nb NT>>>dd); cdamemcpyhost_dd dd Nbytes cdamemcpydevcetohost); freehost_); freehost_dd); cdafree); cdafreedd); retrn 0; dfferentate1d.c 578
89 共有メモリを用いた書き換え global vod dfferentatedoble * doble *dd){ nt = blockid.*blockdm. + threadid.; shared doble s[1+nt+1]; nt t = threadid.+1; s[t] = []; syncthreads); fblockid.> 0 && threadid.==0 ) s[t 1] = [ 1]; fblockid.< grddm. 1 && threadid.==blockdm. 1) s[t+1] = [+1]; fblockid.==0 && threadid.==0 ) s[t 1] = 3.0*s[t] 3.0*s[t+1]+s[t+]; fblockid.==grddm. 1 && threadid.==blockdm. 1) s[t+1] = 3.0*s[t] 3.0*s[t 1]+s[t ]; syncthreads); dd[] = s[t+1] s[t 1])/.0*d); dfferentate1d_shared.c 579
90 共有メモリの宣言と代入 nt = blockid.*blockdm. + threadid.; shared doble s[1+nt+1]; // 右と左の袖領域を追加して宣言 nt t = threadid.+1; s[t] = []; syncthreads); [] = NT=3 NT=3 threadid.= s[nt+] [0] [1] [] [3] [4] [5] t=
91 袖領域の処理 fblockid.> 0 && threadid.==0 ) s[t 1] = [ 1]; fblockid.< grddm. 1 && threadid.==blockdm. 1) s[t+1] = [+1]; [] blockid.=0 blockid.=1 = =threadid. s[nt+] [0] [1] [] [3] [4] [5] t=
92 袖領域の処理 fblockid.> 0 && threadid.==0 ) s[t 1] = [ 1]; fblockid.< grddm. 1 && threadid.==blockdm. 1) s[t+1] = [+1]; [] blockid.=0 blockid.=1 = =threadId. s[nt+] [0] [1] [] [] [3] [4] [5] t=
93 袖領域の処理 fblockid.> 0 && threadid.==0 ) s[t 1] = [ 1]; fblockid.< grddm. 1 && threadid.==blockdm. 1) s[t+1] = [+1]; [] blockid.=0 blockid.=1 = threadid.= 0 1 s[nt+] [0] [1] [] [] [3] [4] [5] t=
94 袖領域の処理 fblockid.> 0 && threadid.==0 ) s[t 1] = [ 1]; fblockid.< grddm. 1 && threadid.==blockdm. 1) s[t+1] = [+1]; [] blockid.=0 blockid.=1 = threadid.= s[nt+] [0] [1] [] [3] [] [3] [4] [5] t=
95 境界条件の処理 fblockid.==0 && threadid.==0 ) s[t 1] = 3.0*s[t] 3.0*s[t+1]+s[t+]; fblockid.==grddm. 1 && threadid.==blockdm. 1) s[t+1] = 3.0*s[t] 3.0*s[t 1]+s[t ]; blockid.=0 blockid.=1 s[nt+] [ 1] [0] [1] [] [3] [] [3] [4] [5] t= d d 3 1 境界での差分式と中心差分式が一致するように 1 を決定 Δ Δ 0 585
96 境界条件の処理 fblockid.==0 && threadid.==0 ) s[t 1] = 3.0*s[t] 3.0*s[t+1]+s[t+]; fblockid.==grddm. 1 && threadid.==blockdm. 1) s[t+1] = 3.0*s[t] 3.0*s[t 1]+s[t ]; blockid.=0 blockid.=1 s[nt+] [ 1] [0] [1] [] [3] [] [3] [4] [5] [6] t= N 3 N 1 3 N N 3 境界での差分式と中心差分式が一致するように N を決定 d d 3 N 1 4N N 3 N N Δ Δ N 1 586
97 中心差分の計算 syncthreads); dd[] = s[t+1] s[t 1])/.0*d); blockid.=0 blockid.=1 t= s[nt+] [ 1] [0] [1] [] [3] [] [3] [4] [5] [6] 1 Δ 全スレッドが同じ式 で中心差分を計算 dd[] 587
Microsoft PowerPoint - 先端GPGPUシミュレーション工学特論(web).pptx
偏微分方程式の差分計算 ( 移流方程式 ) 長岡技術科学大学電気電子情報工学専攻出川智啓 今日の内容 差分法 1 次関数の差分 共有メモリの利用 次元移流方程式 gnuplot による結果の表示 ダブルバッファリング 589 先端 GPGPUシミュレーション工学特論 数値計算 計算機を利用して数学 物理学的問題の解を計算 微積分を計算機で扱える形に変換 処理自体はあまり複雑ではない 精度を上げるために計算量が増加
More information偏微分方程式の差分計算 長岡技術科学大学電気電子情報工学専攻出川智啓
偏微分方程式の差分計算 長岡技術科学大学電気電子情報工学専攻出川智啓 今回の内容 差分法 階微分 階微分に対する差分法 次元拡散方程式 guplot による結果の表示 分岐の書き方による実行時間の変化 高速化に利用できるいくつかのテクニック 7 前回授業 ビットマップを使った画像処理 配列の 要素が物理的な配置に対応 配列の 要素に物理的なデータが定義 B G R 7 数値計算 ( 差分法 ) 計算機を利用して数学
More informationパソコンシミュレータの現状
第 2 章微分 偏微分, 写像 豊橋技術科学大学森謙一郎 2. 連続関数と微分 工学において物理現象を支配する方程式は微分方程式で表されていることが多く, 有限要素法も微分方程式を解く数値解析法であり, 定式化においては微分 積分が一般的に用いられており. 数学の基礎知識が必要になる. 図 2. に示すように, 微分は連続な関数 f() の傾きを求めることであり, 微小な に対して傾きを表し, を無限に
More informationN 体問題 長岡技術科学大学電気電子情報工学専攻出川智啓
N 体問題 長岡技術科学大学電気電子情報工学専攻出川智啓 今回の内容 天体の運動方程式 天体運動の GPU 実装 最適化による性能変化 #pragma unroll 855 計算の種類 画像処理, 差分法 空間に固定された観測点を配置 観測点 ( 固定 ) 観測点上で物理量がどのように変化するかを追跡 Euler 型 多粒子の運動 観測点を配置せず, 観測点が粒子と共に移動 Lagrange 型 観測点
More informationMicrosoft Word - NumericalComputation.docx
数値計算入門 武尾英哉. 離散数学と数値計算 数学的解法の中には理論計算では求められないものもある. 例えば, 定積分は, まずは積分 ( 被積分関数の原始関数をみつけること できなければ値を得ることはできない. また, ある関数の所定の値における微分値を得るには, まずその関数の微分ができなければならない. さらに代数方程式の解を得るためには, 解析的に代数方程式を解く必要がある. ところが, これらは必ずしも解析的に導けるとは限らない.
More informationMicrosoft PowerPoint - 先端GPGPUシミュレーション工学特論(web).pptx
数値流体力学への応用 ( 支配方程式 CPU プログラム ) 長岡技術科学大学電気電子情報工学専攻出川智啓 今回の内容 支配方程式 Taylor Gree 渦 Cavty 流れ 798 数値流体力学 数値計算を利用して 流体の挙動を計算 Computatoal Flud Dyamcs( 略して CFD) 計算機の性能向上に伴い 必要不可欠な設計ツールとなっている 流体を取り扱う機器の性能評価 流体中を移動する物体が受ける抵抗の評価など
More informationOpenFOAM(R) ソースコード入門 pt1 熱伝導方程式の解法から有限体積法の実装について考える 前編 : 有限体積法の基礎確認 2013/11/17 オープンCAE 富山富山県立大学中川慎二
OpenFOAM(R) ソースコード入門 pt1 熱伝導方程式の解法から有限体積法の実装について考える 前編 : 有限体積法の基礎確認 2013/11/17 オープンCAE 勉強会 @ 富山富山県立大学中川慎二 * OpenFOAM のソースコードでは, 基礎式を偏微分方程式の形で記述する.OpenFOAM 内部では, 有限体積法を使ってこの微分方程式を解いている. どのようにして, 有限体積法に基づく離散化が実現されているのか,
More information2014 年 10 月 2 日 本日の講義及び演習 数値シミュレーション 2014 年度第 2 回 偏微分方程式の偏微分項をコンピュータで扱えるようにする 離散化 ( 差分化 ) テイラー展開の利用 1 階微分項に対する差分式 2 階微分項に対する差分式 1 次元熱伝導方程式に適用して差分式を導出
04 年 0 月 日 本日の講義及び演習 数値シミュレーション 04 年度第 回 偏微分方程式の偏微分項をコンピュータで扱えるようにする 離散化 ( 差分化 テイラー展開の利用 階微分項に対する差分式 階微分項に対する差分式 次元熱伝導方程式に適用して差分式を導出 Ecel を利用した温度変化シミュレーション 永野 ( 熱流体システム研究室 hagao@tc.ac.p 重要! 熱の伝わり方 ( 伝熱モード
More information今後の予定 6/29 パターン形成第 11 回 7/6 データ解析第 12 回 7/13 群れ行動 ( 久保先生 ) 第 13 回 7/17 ( 金 ) 休講 7/20 まとめ第 14 回 7/27 休講?
今後の予定 6/29 パターン形成第 11 回 7/6 データ解析第 12 回 7/13 群れ行動 ( 久保先生 ) 第 13 回 7/17 ( 金 ) 休講 7/20 まとめ第 14 回 7/27 休講? 数理生物学演習 第 11 回パターン形成 本日の目標 2 次元配列 分子の拡散 反応拡散モデル チューリングパタン 拡散方程式 拡散方程式 u t = D 2 u 拡散が生じる分子などの挙動を記述する.
More information計算機シミュレーション
. 運動方程式の数値解法.. ニュートン方程式の近似速度は, 位置座標 の時間微分で, d と定義されます. これを成分で書くと, d d li li とかけます. 本来は が の極限をとらなければいけませんが, 有限の小さな値とすると 秒後の位置座標は速度を用いて, と近似できます. 同様にして, 加速度は, 速度 の時間微分で, d と定義されます. これを成分で書くと, d d li li とかけます.
More informationFEM原理講座 (サンプルテキスト)
サンプルテキスト FEM 原理講座 サイバネットシステム株式会社 8 年 月 9 日作成 サンプルテキストについて 各講師が 講義の内容が伝わりやすいページ を選びました テキストのページは必ずしも連続していません 一部を抜粋しています 幾何光学講座については 実物のテキストではなくガイダンスを掲載いたします 対象とする構造系 物理モデル 連続体 固体 弾性体 / 弾塑性体 / 粘弾性体 / 固体
More informationMicrosoft PowerPoint - シミュレーション工学-2010-第1回.ppt
シミュレーション工学 ( 後半 ) 東京大学人工物工学研究センター 鈴木克幸 CA( Compter Aded geerg ) r. Jaso Lemo (SC, 98) 設計者が解析ツールを使いこなすことにより 設計の評価 設計の質の向上を図る geerg の本質の 計算機による支援 (CA CAM などより広い名前 ) 様々な汎用ソフトの登場 工業製品の設計に不可欠のツール 構造解析 流体解析
More informationMicrosoft PowerPoint - 夏の学校(CFD).pptx
/9/5 FD( 計算流体力学 ) の基礎理論 性能 運動分野 夏の学校 神戸大学大学院海事科学研究科勝井辰博 流体の質量保存 流体要素内の質量の増加率 [ 単位時間当たりの増加量 ] 単位時間に流体要素に流入する質量 流体要素 Fl lm (orol olm) v ( ) ガウスの定理 v( ) /9/5 = =( ) b=b =(b b b ) b= b = b + b + b アインシュタイン表記
More information微分方程式による現象記述と解きかた
微分方程式による現象記述と解きかた 土木工学 : 公共諸施設 構造物の有用目的にむけた合理的な実現をはかる方法 ( 技術 ) に関する学 橋梁 トンネル ダム 道路 港湾 治水利水施設 安全化 利便化 快適化 合法則的 経済的 自然および人口素材によって作られた 質量保存則 構造物の自然的な性質 作用 ( 外力による応答 ) エネルギー則 の解明 社会的諸現象のうち マスとしての移動 流通 運動量則
More informationMicrosoft PowerPoint - 発表II-3原稿r02.ppt [互換モード]
地震時の原子力発電所燃料プールからの溢水量解析プログラム 地球工学研究所田中伸和豊田幸宏 Central Research Institute of Electric Power Industry 1 1. はじめに ( その 1) 2003 年十勝沖地震では 震源から離れた苫小牧地区の石油タンクに スロッシング ( 液面揺動 ) による火災被害が生じた 2007 年中越沖地震では 原子力発電所内の燃料プールからの溢水があり
More information差分スキーム 物理 化学 生物現象には微分方程式でモデル化される例が多い モデルを使って現実の現象をコンピュータ上で再現することをシミュレーション ( 数値シミュレーション コンピュータシミュレーション ) と呼ぶ そのためには 微分方程式をコンピュータ上で計算できる数値スキームで近似することが必要
差分スキーム 物理 化学 生物現象には微分方程式でモデル化される例が多い モデルを使って現実の現象をコンピュータ上で再現することをシミュレーション ( 数値シミュレーション コンピュータシミュレーション ) と呼ぶ そのためには 微分方程式をコンピュータ上で計算できる数値スキームで近似することが必要になる その一つの方法が微分方程式を差分方程式におき直すことである 微分方程式の差分化 次の 1 次元境界値問題を考える
More information4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ
4 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プログラミング技術 工業 333 実教出版 ) 共通 : 科目 プログラミング技術 のオリエンテーション プログラミング技術は
More information0 21 カラー反射率 slope aspect 図 2.9: 復元結果例 2.4 画像生成技術としての計算フォトグラフィ 3 次元情報を復元することにより, 画像生成 ( レンダリング ) に応用することが可能である. 近年, コンピュータにより, カメラで直接得られない画像を生成する技術分野が生
0 21 カラー反射率 slope aspect 図 2.9: 復元結果例 2.4 画像生成技術としての計算フォトグラフィ 3 次元情報を復元することにより, 画像生成 ( レンダリング ) に応用することが可能である. 近年, コンピュータにより, カメラで直接得られない画像を生成する技術分野が生まれ, コンピューテーショナルフォトグラフィ ( 計算フォトグラフィ ) と呼ばれている.3 次元画像認識技術の計算フォトグラフィへの応用として,
More informationSlide 1
CUDA プログラミングの基本 パート II - カーネル CUDA の基本の概要 パート I CUDAのソフトウェアスタックとコンパイル GPUのメモリ管理 パート II カーネルの起動 GPUコードの具体像 注 : 取り上げているのは基本事項のみです そのほか多数の API 関数についてはプログラミングガイドを ご覧ください GPU 上でのコードの実行 カーネルは C 関数 + 多少の制約 ホストメモリはアクセスできない戻り値型は
More information3 数値解の特性 3.1 CFL 条件 を 前の章では 波動方程式 f x= x0 = f x= x0 t f c x f =0 [1] c f 0 x= x 0 x 0 f x= x0 x 2 x 2 t [2] のように差分化して数値解を求めた ここでは このようにして得られた数値解の性質を 考
3 数値解の特性 3.1 CFL 条件 を 前の章では 波動方程式 f x= x = f x= x t f c x f = [1] c f x= x f x= x 2 2 t [2] のように差分化して数値解を求めた ここでは このようにして得られた数値解の性質を 考える まず 初期時刻 t=t に f =R f exp [ik x ] [3] のような波動を与えたとき どのように時間変化するか調べる
More informationChap2.key
. f( ) V (V V ) V e + V e V V V V ( ) V V ( ) E. - () V (0 ) () V (0 ) () V (0 ) (4) V ( ) E. - () V (0 ) () V (0 ) O r θ ( ) ( ) : (r θ) : { r cos θ r sn θ { r + () V (0 ) (4) V ( ) θ θ arg( ) : π π
More information数値計算で学ぶ物理学 4 放物運動と惑星運動 地上のように下向きに重力がはたらいているような場においては 物体を投げると放物運動をする 一方 中心星のまわりの重力場中では 惑星は 円 だ円 放物線または双曲線を描きながら運動する ここでは 放物運動と惑星運動を 運動方程式を導出したうえで 数値シミュ
数値計算で学ぶ物理学 4 放物運動と惑星運動 地上のように下向きに重力がはたらいているような場においては 物体を投げると放物運動をする 一方 中心星のまわりの重力場中では 惑星は 円 だ円 放物線または双曲線を描きながら運動する ここでは 放物運動と惑星運動を 運動方程式を導出したうえで 数値シミュレーションによって計算してみる 4.1 放物運動一様な重力場における放物運動を考える 一般に質量の物体に作用する力をとすると運動方程式は
More informationMicrosoft PowerPoint - GPUシンポジウム _d公開版.ppt [互換モード]
200/0/9 数値流体解析の並列効率とその GPU による高速化の試み 清水建設 ( 株 ) 技術研究所 PHAM VAN PHUC ( ファムバンフック ) 流体計算時間短縮と GPU の活用の試み 現 CPUとの比較によりGPU 活用の可能性 現 CPU の最大利用 ノード内の最大計算資源の利用 すべてCPUコアの利用 適切なアルゴリズムの利用 CPU コア性能の何倍? GPU の利用の試み
More information解析力学B - 第11回: 正準変換
解析力学 B 第 11 回 : 正準変換 神戸大 : 陰山聡 ホームページ ( 第 6 回から今回までの講義ノート ) http://tinyurl.com/kage2010 2011.01.27 正準変換 バネ問題 ( あえて下手に座標をとった ) ハミルトニアンを考える q 正準方程式は H = p2 2m + k 2 (q l 0) 2 q = H p = p m ṗ = H q = k(q
More informationMicrosoft PowerPoint SIGAL.ppt
アメリカン アジアンオプションの 価格の近似に対する 計算幾何的アプローチ 渋谷彰信, 塩浦昭義, 徳山豪 ( 東北大学大学院情報科学研究科 ) 発表の概要 アメリカン アジアンオプション金融派生商品の一つ価格付け ( 価格の計算 ) は重要な問題 二項モデルにおける価格付けは計算困難な問題 目的 : 近似精度保証をもつ近似アルゴリズムの提案 アイディア : 区分線形関数を計算幾何手法により近似 問題の説明
More information以下 変数の上のドットは時間に関する微分を表わしている (ex. 2 dx d x x, x 2 dt dt ) 付録 E 非線形微分方程式の平衡点の安定性解析 E-1) 非線形方程式の線形近似特に言及してこなかったが これまでは線形微分方程式 ( x や x, x などがすべて 1 次で なおかつ
以下 変数の上のドットは時間に関する微分を表わしている (e. d d, dt dt ) 付録 E 非線形微分方程式の平衡点の安定性解析 E-) 非線形方程式の線形近似特に言及してこなかったが これまでは線形微分方程式 ( や, などがすべて 次で なおかつそれらの係数が定数であるような微分方程式 ) に対して安定性の解析を行ってきた しかしながら 実際には非線形の微分方程式で記述される現象も多く存在する
More informationモデリングとは
コンピュータグラフィックス基礎 第 5 回曲線 曲面の表現 ベジェ曲線 金森由博 学習の目標 滑らかな曲線を扱う方法を学習する パラメトリック曲線について理解する 広く一般的に使われているベジェ曲線を理解する 制御点を入力することで ベジェ曲線を描画するアプリケーションの開発を行えるようになる C++ 言語の便利な機能を使えるようになる 要素数が可変な配列としての std::vector の活用 計算機による曲線の表現
More information微分方程式 モデリングとシミュレーション
1 微分方程式モデリングとシミュレーション 2018 年度 2 質点の運動のモデル化 粒子と粒子に働く力 粒子の運動 粒子の位置の時間変化 粒子の位置の変化の割合 速度 速度の変化の割合 加速度 力と加速度の結び付け Newtonの運動方程式 : 微分方程式 解は 時間の関数としての位置 3 Newton の運動方程式 質点の運動は Newton の運動方程式で記述される 加速度は力に比例する 2
More informationenshu5_6.key
情報知能工学演習V (前半第6週) 政田洋平 システム情報学研究科計算科学専攻 TA : 菅 新 菅沼智史 水曜 新行紗弓 馬淵隼 木曜 演習 V( 前半 ) の内容 第 1 週 : 高性能計算 (High Performance Computing = HPC) 向けプログラミングの基礎 第 2 週 : シミュレーションの基礎 第 3 週 : 波の移流方程式のシミュレーション 第 4,5 週 :
More informationDVIOUT-SS_Ma
第 章 微分方程式 ニュートンはリンゴが落ちるのを見て万有引力を発見した という有名な逸話があります 無重力の宇宙船の中ではリンゴは落ちないで静止していることを考えると 重力が働くと始め静止しているものが動き出して そのスピードはどんどん大きくなる つまり速度の変化が現れることがわかります 速度は一般に時間と共に変化します 速度の瞬間的変化の割合を加速度といい で定義しましょう 速度が変化する, つまり加速度がでなくなるためにはその原因があり
More informationMicrosoft PowerPoint - 第7章(自然対流熱伝達 )_H27.ppt [互換モード]
第 7 章自然対流熱伝達 伝熱工学の基礎 : 伝熱の基本要素 フーリエの法則 ニュートンの冷却則 次元定常熱伝導 : 熱伝導率 熱通過率 熱伝導方程式 次元定常熱伝導 : ラプラスの方程式 数値解析の基礎 非定常熱伝導 : 非定常熱伝導方程式 ラプラス変換 フーリエ数とビオ数 対流熱伝達の基礎 : 熱伝達率 速度境界層と温度境界層 層流境界層と乱流境界層 境界層厚さ 混合平均温度 強制対流熱伝達 :
More information1/12 平成 29 年 3 月 24 日午後 1 時 1 分第 3 章測地線 第 3 章測地線 Ⅰ. 変分法と運動方程式最小作用の原理に基づくラグランジュの方法により 重力場中の粒子の運動方程式が求められる これは 力が未知の時に有効な方法であり 今のような 一般相対性理論における力を求めるのに使
/ 平成 9 年 3 月 4 日午後 時 分第 3 章測地線 第 3 章測地線 Ⅰ. 変分法と運動方程式最小作用の原理に基づくラグランジュの方法により 重力場中の粒子の運動方程式が求められる これは 力が未知の時に有効な方法であり 今のような 一般相対性理論における力を求めるのに使う事ができる 最小作用の原理 : 粒子が時刻 から の間に移動したとき 位置 と速度 v = するのが ラグランジュ関数
More informationMicrosoft Word - 1B2011.doc
第 14 回モールの定理 ( 単純梁の場合 ) ( モールの定理とは何か?p.11) 例題 下記に示す単純梁の C 点のたわみ角 θ C と, たわみ δ C を求めよ ただし, 部材の曲げ 剛性は材軸に沿って一様で とする C D kn B 1.5m 0.5m 1.0m 解答 1 曲げモーメント図を描く,B 点の反力を求める kn kn 4 kn 曲げモーメント図を描く knm 先に得られた曲げモーメントの値を
More informationAutodesk Inventor Skill Builders Autodesk Inventor 2010 構造解析の精度改良 メッシュリファインメントによる収束計算 予想作業時間:15 分 対象のバージョン:Inventor 2010 もしくはそれ以降のバージョン シミュレーションを設定する際
Autodesk Inventor Skill Builders Autodesk Inventor 2010 構造解析の精度改良 メッシュリファインメントによる収束計算 予想作業時間:15 分 対象のバージョン:Inventor 2010 もしくはそれ以降のバージョン シミュレーションを設定する際に 収束判定に関するデフォルトの設定をそのまま使うか 修正をします 応力解析ソルバーでは計算の終了を判断するときにこの設定を使います
More informationMicrosoft PowerPoint - OS07.pptx
この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました 主記憶管理 主記憶管理基礎 パワーポイント 27 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です 復習 OS
More informationシミュレーション物理4
シミュレーション物理 4 運動方程式の方法 運動方程式 物理で最もよく出てくる そもそも物理はものの運動を議論する学問から出発 ( つり合いは運動を行わないという意味で含まれる ) 代表例 ニュートンの運動方程式 波動方程式 シュレーディンガー方程式 運動方程式 ( 微分方程式の解法 ) 高次の微分方程式を 1 階微分方程式に変形 N 変数の 階微分方程式 N 変数の 1 階微分方程式 dy/dt=f(t,y)
More information耳桁の剛性の考慮分配係数の計算条件は 主桁本数 n 格子剛度 zです 通常の並列鋼桁橋では 主桁はすべて同じ断面を使います しかし 分配の効率を上げる場合 耳桁 ( 幅員端側の桁 ) の断面を大きくすることがあります 最近の桁橋では 上下線を別橋梁とすることがあり また 防音壁などの敷設が片側に有る
格子桁の分配係数の計算 ( デモ版 ) 理論と解析の背景主桁を並列した鋼単純桁の設計では 幅員方向の横桁の剛性を考えて 複数の主桁が協力して活荷重を分担する効果を計算します これを 単純な (1,0) 分配に対して格子分配と言います レオンハルト (F.Leonhardt,1909-1999) が 1950 年初頭に発表した論文が元になっていて 理論仮定 記号などの使い方は その論文を踏襲して設計に応用しています
More informationMicrosoft PowerPoint - Lec17 [互換モード]
情報デザイン専攻 画像情報処理論及び演習 - フィルタ処理 エッジ強調 - 差分法 変分法と平滑化 エッジ S Yoszw: s@re.p 今日の授業内容 www.re.p/rc/yoszw/ecres/e.ml www.re.p/rc/yoszw/ecres/ec7.p. 勾配とエッジの基礎 : 差分法.. plcと拡散方程式の基礎 : 変分法. 第 6 回講義水曜日 限教室 68 吉澤信 s@re.p
More informationMicrosoft PowerPoint - H22制御工学I-2回.ppt
制御工学 I 第二回ラプラス変換 平成 年 4 月 9 日 /4/9 授業の予定 制御工学概論 ( 回 ) 制御技術は現在様々な工学分野において重要な基本技術となっている 工学における制御工学の位置づけと歴史について説明する さらに 制御システムの基本構成と種類を紹介する ラプラス変換 ( 回 ) 制御工学 特に古典制御ではラプラス変換が重要な役割を果たしている ラプラス変換と逆ラプラス変換の定義を紹介し
More information(Microsoft PowerPoint - \221\34613\211\361)
計算力学 ~ 第 回弾性問題の有限要素解析 (Ⅱ)~ 修士 年後期 ( 選択科目 ) 担当 : 岩佐貴史 講義の概要 全 5 講義. 計算力学概論, ガイダンス. 自然現象の数理モデル化. 行列 場とその演算. 数値計算法 (Ⅰ) 5. 数値計算法 (Ⅱ) 6. 初期値 境界値問題 (Ⅰ) 7. 初期値 境界値問題 (Ⅱ) 8. マトリックス変位法による構造解析 9. トラス構造の有限要素解析. 重み付き残差法と古典的近似解法.
More information<4D F736F F F696E74202D20906C8D488AC28BAB90DD8C7689F090CD8D488A D91E F1>
人工環境設計解析工学構造力学と有限要素法 ( 第 回 ) 東京大学新領域創成科学研究科 鈴木克幸 固体力学の基礎方程式 変位 - ひずみの関係 適合条件式 ひずみ - 応力の関係 構成方程式 応力 - 外力の関係 平衡方程式 境界条件 変位規定境界 反力規定境界 境界条件 荷重応力ひずみ変形 場の方程式 Γ t Γ t 平衡方程式構成方程式適合条件式 構造力学の基礎式 ひずみ 一軸 荷重応力ひずみ変形
More informationMicrosoft PowerPoint - NA03-09black.ppt
きょうの講義 数値 記号処理 2003.2.6 櫻井彰人 NumSymbol@soft.ae.keo.ac.jp http://www.sakura.comp.ae.keo.ac.jp/ 数値計算手法の定石 多項式近似 ( 復習 )» 誤差と手間の解析も 漸化式» 非線型方程式の求解 数値演算上の誤差 数値計算上の誤差 打ち切り誤差 (truncaton error)» 使う公式を有限項で打ち切る
More information講習No.8
配列変数の要素 復習 int x[5]; x[0] x[1] x[2] x[3] x[4] 5 は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字, またはインデックスと呼ぶ! 重要! インデックスの最大値 = 要素数ー 1 int x = 7; float aa[x]; int x = 7; float aa[7];! 重要! 配列宣言時の要素数は定数でなければならない
More information3次多項式パラメタ推定計算の CUDAを用いた実装 (CUDAプログラミングの練習として) Implementation of the Estimation of the parameters of 3rd-order-Polynomial with CUDA
3 次多項式パラメタ推定計算の CUDA を用いた実装 (CUDA プログラミングの練習として ) Estimating the Parameters of 3rd-order-Polynomial with CUDA ISS 09/11/12 問題の選択 目的 CUDA プログラミングを経験 ( 試行錯誤と習得 ) 実際に CPU のみの場合と比べて高速化されることを体験 問題 ( インプリメントする内容
More informationPowerPoint プレゼンテーション
反応工学 Raction Enginring 講義時間 ( 場所 : 火曜 限 (8-A 木曜 限 (S-A 担当 : 山村 火 限 8-A 期末試験中間試験以降 /7( 木 まで持ち込みなし要電卓 /4( 木 質問受付日講義なし 授業アンケート (li campus の入力をお願いします 晶析 (crystallization ( 教科書 p. 濃度 溶解度曲線 C C s A 安定 液 ( 気
More information<4D F736F F D20332E322E332E819C97AC91CC89F090CD82A982E78CA982E9466F E393082CC8D5C91A291CC90AB945C955D89BF5F8D8296D85F F8D F5F E646F63>
3.2.3. 流体解析から見る Fortran90 の構造体性能評価 宇宙航空研究開発機構 高木亮治 1. はじめに Fortran90 では 構造体 動的配列 ポインターなど様々な便利な機能が追加され ユーザーがプログラムを作成する際に選択の幅が広がりより便利になった 一方で 実際のアプリケーションプログラムを開発する際には 解析対象となる物理現象を記述する数学モデルやそれらを解析するための計算手法が内包する階層構造を反映したプログラムを作成できるかどうかは一つの重要な観点であると考えられる
More information大気環境シミュレーション
第 3 回 (Q) 各自 eelを用いて 次の漸化式 + = の解の初期値依存性を調べよ.は50まで () 0 =.0 () 0 =.5 (3) 0 =.0 締切 04 年 月 6 日 ( 月 ) 夕方まで 提出先 347 室 オーバーフロー失敗ゴメンなさい (Q) 各自 eelを用いて 次の漸化式 + = の解の初期値依存性を調べよ.は50まで () 0 =.330 () 0 =.33 (3) 0
More information喨微勃挹稉弑
== 全微分方程式 == 全微分とは 変数の関数 z=f(, ) について,, の増分を Δ, Δ とするとき, z の増分 Δz は Δz z Δ+ z Δ で表されます. この式において, Δ 0, Δ 0 となる極限を形式的に dz= z d+ z d (1) で表し, dz を z の全微分といいます. z は z の に関する偏導関数で, を定数と見なし て, で微分したものを表し, 方向の傾きに対応します.
More information第 5 章 構造振動学 棒の振動を縦振動, 捩り振動, 曲げ振動に分けて考える. 5.1 棒の縦振動と捩り振動 まっすぐな棒の縦振動の固有振動数 f[ Hz] f = l 2pL である. ただし, L [ 単位 m] は棒の長さ, [ 2 N / m ] 3 r[ 単位 Kg / m ] E r
第 5 章 構造振動学 棒の振動を縦振動, 捩り振動, 曲げ振動に分けて考える 5 棒の縦振動と捩り振動 まっすぐな棒の縦振動の固有振動数 f[ Hz] f l pl である ただし, L [ 単位 m] は棒の長さ, [ N / m ] [ 単位 Kg / m ] E は (5) E 単位は棒の材料の縦弾性係数 ( ヤング率 ) は棒の材料の単位体積当りの質量である l は境界条件と振動モードによって決まる無
More information構造力学Ⅰ第12回
第 回材の座屈 (0 章 ) p.5~ ( 復習 ) モールの定理 ( 手順 ) 座屈とは 荷重により梁に生じた曲げモーメントをで除して仮想荷重と考える 座屈荷重 偏心荷重 ( 曲げと軸力 ) 断面の核 この仮想荷重に対するある点でのせん断力 たわみ角に相当する曲げモーメント たわみに相当する ( 例 ) 単純梁の支点のたわみ角 : は 図 を仮想荷重と考えたときの 点の支点反力 B は 図 を仮想荷重と考えたときのB
More information2018年度 2次数学セレクション(微分と積分)
08 次数学セレクション問題 [ 東京大 ] > 0 とし, f = x - x とおく () x で f ( x ) が単調に増加するための, についての条件を求めよ () 次の 条件を満たす点 (, b) の動きうる範囲を求め, 座標平面上に図示せよ 条件 : 方程式 f = bは相異なる 実数解をもつ 条件 : さらに, 方程式 f = bの解を < < とすると > である -- 08 次数学セレクション問題
More informationNumericalProg09
数値解析および プログラミング演習 [08 第 9 回目 ] の解法 - 4. Ruge-Kua( ルンゲ クッタ 法 Ruge-Kua-Gill( ルンゲ クッタ ジル / ギル 法 5. 多段解法 解法の対象 常微分方程式 d( d 初期値条件 (, の変化に応じて変化する の値を求める. ( 0 ( 0 と 0 は,give 0 常微分方程式の初期値問題 と言う. 3 Ruge-Kua 法の導出
More informationMicrosoft PowerPoint - H21生物計算化学2.ppt
演算子の行列表現 > L いま 次元ベクトル空間の基底をケットと書くことにする この基底は完全系を成すとすると 空間内の任意のケットベクトルは > > > これより 一度基底を与えてしまえば 任意のベクトルはその基底についての成分で完全に記述することができる これらの成分を列行列の形に書くと M これをベクトル の基底 { >} による行列表現という ところで 行列 A の共役 dont 行列は A
More information( 慣性抵抗 ) 速度の 2 乗に比例流体中を進む物体は前面にある流体を押しのけて進む. 物 aaa 体の後面には流体が付き従う ( 渦を巻いて ). 前面にある速度 0 の流体が後面に移動して速度 vとなったと考えてよい. この流体の質量は単位時間内に物体が押しのける体積に比例するので,v に比例
空気抵抗があるときの自由落下 抵抗が速度に比例する場合 1. 絵を描く, 座標と情報, 記号を記入する x F0 v
More informationIf(A) Vx(V) 1 最小 2 乗法で実験式のパラメータが導出できる測定で得られたデータをよく近似する式を実験式という. その利点は (M1) 多量のデータの特徴を一つの式で簡潔に表現できること. また (M2) y = f ( x ) の関係から, 任意の x のときの y が求まるので,
If(A) Vx(V) 1 最小 乗法で実験式のパラメータが導出できる測定で得られたデータをよく近似する式を実験式という. その利点は (M1) 多量のデータの特徴を一つの式で簡潔に表現できること. また (M) y = f ( x ) の関係から, 任意の x のときの y が求まるので, 未測定点の予測ができること. また (M3) 現象が比較的単純であれば, 現象を支配 する原理の式が分かることである.
More information画像解析論(2) 講義内容
画像解析論 画像解析論 東京工業大学長橋宏 主な講義内容 信号処理と画像処理 二次元システムとその表現 二次元システムの特性解析 各種の画像フィルタ 信号処理と画像処理 画像解析論 処理の応答 記憶域 入出力の流れ 信号処理系 実時間性が求められる メモリ容量に対する制限が厳しい オンラインでの対応が厳しく求められる 画像処理系 ある程度の処理時間が許容される 大容量のメモリ使用が容認され易い オフラインでの対応が容認され易い
More informationPowerPoint Presentation
付録 2 2 次元アフィン変換 直交変換 たたみ込み 1.2 次元のアフィン変換 座標 (x,y ) を (x,y) に移すことを 2 次元での変換. 特に, 変換が と書けるとき, アフィン変換, アフィン変換は, その 1 次の項による変換 と 0 次の項による変換 アフィン変換 0 次の項は平行移動 1 次の項は座標 (x, y ) をベクトルと考えて とすれば このようなもの 2 次元ベクトルの線形写像
More informationMicrosoft PowerPoint - 第3回2.ppt
講義内容 講義内容 次元ベクトル 関数の直交性フーリエ級数 次元代表的な対の諸性質コンボリューション たたみこみ積分 サンプリング定理 次元離散 次元空間周波数の概念 次元代表的な 次元対 次元離散 次元ベクトル 関数の直交性フーリエ級数 次元代表的な対の諸性質コンボリューション たたみこみ積分 サンプリング定理 次元離散 次元空間周波数の概念 次元代表的な 次元対 次元離散 ベクトルの直交性 3
More information技術資料 JARI Research Journal OpenFOAM を用いた沿道大気質モデルの開発 Development of a Roadside Air Quality Model with OpenFOAM 木村真 *1 Shin KIMURA 伊藤晃佳 *2 Akiy
技術資料 176 OpenFOAM を用いた沿道大気質モデルの開発 Development of a Roadside Air Quality Model with OpenFOAM 木村真 *1 Shin KIMURA 伊藤晃佳 *2 Akiyoshi ITO 1. はじめに自動車排出ガスの環境影響は, 道路沿道で大きく, 建物など構造物が複雑な気流を形成するため, 沿道大気中の自動車排出ガス濃度分布も複雑になる.
More informationMicrosoft PowerPoint - 熱力学Ⅱ2FreeEnergy2012HP.ppt [互換モード]
熱力学 Ⅱ 第 章自由エネルギー システム情報工学研究科 構造エネルギー工学専攻 金子暁子 問題 ( 解答 ). 熱量 Q をある系に与えたところ, 系の体積は膨張し, 温度は上昇した. () 熱量 Q は何に変化したか. () またこのとき系の体積がV よりV に変化した.( 圧力は変化無し.) 内部エネルギーはどのように表されるか. また, このときのp-V 線図を示しなさい.. 不可逆過程の例を
More informationMicrosoft PowerPoint - ca ppt [互換モード]
大阪電気通信大学情報通信工学部光システム工学科 2 年次配当科目 コンピュータアルゴリズム 良いアルゴリズムとは 第 2 講 : 平成 20 年 10 月 10 日 ( 金 ) 4 限 E252 教室 中村嘉隆 ( なかむらよしたか ) 奈良先端科学技術大学院大学助教 y-nakamr@is.naist.jp http://narayama.naist.jp/~y-nakamr/ 第 1 講の復習
More informationMicrosoft PowerPoint - GPGPU実践基礎工学(web).pptx
GPU のメモリ階層 長岡技術科学大学電気電子情報工学専攻出川智啓 今回の内容 GPU のメモリ階層 グローバルメモリ 共有メモリ モザイク処理への適用 コンスタントメモリ 空間フィルタへの適用 577 GPU の主要部品 基盤 GPU( チップ )+ 冷却部品 画面出力端子 電源入力端子 メモリ 特性の把握が重要 電源入力端子 画面出力端子 メモリ チップ PCI Ex 端子 http://www.geforce.com/whats
More informationPowerPoint プレゼンテーション
多倍長計算手法 平成 年度第 四半期 今回はパラメータ の設定と精度に関してまとめて記述しました ループ積分と呼ばれる数値積分計算では 質量 の光子や質量が非常に小さい事はわかっているが その値は不明なニュートリノに対して赤外発散を防ぐため微小量を与えて計算しています この設定する微少量の値により 結果の精度及び反復に要する時間が大きく作用したり 誤った値を得る事があります ここでは典型的な つのケースで説明します
More informationTaro-数値計算の誤差(公開版)
0. 目次 1. 情報落ち 計算のルールを 10 進 4 桁 切り捨て と仮定する 2 つの数の加算では まず小数点が合わされ 大きい数が優先される したがって 12.34 + 0.005678 は 12.34 と計算される このように 絶対値の小さい数を絶対値の大きい数に加えてもほとんど影響を与えない現象を情報落ちという 2. オーバーフロー アンダーフロー 計算結果の絶対値がコンピュータの処理できる最大の数を越えてしまう現象をオーバーフローという
More informationPowerPoint Presentation
応用数学 Ⅱ (7) 7 連立微分方程式の立て方と解法. 高階微分方程式による解法. ベクトル微分方程式による解法 3. 演算子による解法 連立微分方程式 未知数が複数個あり, 未知数の数だけ微分方程式が与えられている場合, これらを連立微分方程式という. d d 解法 () 高階微分方程式化による解法 つの方程式から つの未知数を消去して, 未知数が つの方程式に変換 のみの方程式にするために,
More information線積分.indd
線積分 線積分 ( n, n, n ) (ξ n, η n, ζ n ) ( n-, n-, n- ) (ξ k, η k, ζ k ) ( k, k, k ) ( k-, k-, k- ) 物体に力 を作用させて位置ベクトル A の点 A から位置ベクトル の点 まで曲線 に沿って物体を移動させたときの仕事 W は 次式で計算された A, A, W : d 6 d+ d+ d@,,, d+ d+
More informationアルゴリズムとデータ構造
講義 アルゴリズムとデータ構造 第 2 回アルゴリズムと計算量 大学院情報科学研究科情報理工学専攻情報知識ネットワーク研究室喜田拓也 講義資料 2018/5/23 今日の内容 アルゴリズムの計算量とは? 漸近的計算量オーダーの計算の方法最悪計算量と平均計算量 ポイント オーダー記法 ビッグオー (O), ビッグオメガ (Ω), ビッグシータ (Θ) 2 お風呂スケジューリング問題 お風呂に入る順番を決めよう!
More informationMicrosoft PowerPoint - 第5回電磁気学I
1 年 11 月 8 日 ( 月 ) 1:-1: Y 平成 年度工 系 ( 社会環境工学科 ) 第 5 回電磁気学 Ⅰ 天野浩 項目 電界と電束密度 ガウスの発散定理とガウスの法則の積分形と微分形 * ファラデーの電気力線の使い方をマスターします * 電界と電束密度を定義します * ガウスの発散定理を用いて ガウスの法則の積分形から微分形をガウスの法則の積分形から微分形を導出します * ガウスの法則を用いて
More information2009 年 11 月 16 日版 ( 久家 ) 遠地 P 波の変位波形の作成 遠地 P 波の変位波形 ( 変位の時間関数 ) は 波線理論をもとに P U () t = S()* t E()* t P() t で近似的に計算できる * は畳み込み積分 (convolution) を表す ( 付録
遠地 波の変位波形の作成 遠地 波の変位波形 ( 変位の時間関数 ) は 波線理論をもとに U () t S() t E() t () t で近似的に計算できる は畳み込み積分 (convolution) を表す ( 付録 参照 ) ここで St () は地震の断層運動によって決まる時間関数 1 E() t は地下構造によって生じる種々の波の到着を与える時間関数 ( ここでは 直達 波とともに 震源そばの地表での反射波や変換波を与える時間関数
More informationMicrosoft PowerPoint - siryo7
. 化学反応と溶液 - 遷移状態理論と溶液論 -.. 遷移状態理論 と溶液論 7 年 5 月 5 日 衝突論と遷移状態理論の比較 + 生成物 原子どうしの反応 活性錯体 ( 遷移状態 ) は 3つの並進 つの回転の自由度をもつ (1つの振動モードは分解に相当 ) 3/ [ ( m m) T] 8 IT q q π + π tansqot 3 h h との並進分配関数 [ πmt] 3/ [ ] 3/
More informationスライド 1
非線形数理秋の学校 パターン形成の数理とその周辺 - 反応拡散方程式理論による時 空間パターンの解析を中心に - 2007 年 9 月 25 日 -27 日 モデル方程式を通してみるパターン解析ー進行波からヘリカル波の分岐を例としてー 池田勉 ( 龍谷大学理工学部 ) 講義概要, 講義資料, 講義中に使用する C 言語プログラムと初期値データ, ヘリカル波のアニメーションをウェブで公開しています :
More information例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X (
第 週ラプラス変換 教科書 p.34~ 目標ラプラス変換の定義と意味を理解する フーリエ変換や Z 変換と並ぶ 信号解析やシステム設計における重要なツール ラプラス変換は波動現象や電気回路など様々な分野で 微分方程式を解くために利用されてきた ラプラス変換を用いることで微分方程式は代数方程式に変換される また 工学上使われる主要な関数のラプラス変換は簡単な形の関数で表されるので これを ラプラス変換表
More informationଗȨɍɫȮĘർǻ 図 : a)3 次元自由粒子の波数空間におけるエネルギー固有値の分布の様子 b) マクロなサイズの系 L ) における W E) と ΩE) の対応 として与えられる 周期境界条件を満たす波数 kn は kn = πn, L n = 0, ±, ±, 7) となる 長さ L の有限
: Email: mizushima@mp.es.osaka-u.ac.jp, D38 0 08 5 S = k B ln W ) W n [] [] 5 N. 6 d h m dx ϕ nx) = E n ϕ n x) ) L 5 ϕ n x = 0) = ϕ n x = L) = 0, N k n ϕ n = N sink n x), E n = h k n m 3) k n = nπ, n =,,
More informationMicrosoft PowerPoint - mp11-02.pptx
数理計画法第 2 回 塩浦昭義情報科学研究科准教授 shioura@dais.is.tohoku.ac.jp http://www.dais.is.tohoku.ac.jp/~shioura/teaching 前回の復習 数理計画とは? 数理計画 ( 復習 ) 数理計画問題とは? 狭義には : 数理 ( 数学 ) を使って計画を立てるための問題 広義には : 与えられた評価尺度に関して最も良い解を求める問題
More informationProbit , Mixed logit
Probit, Mixed logit 2016/5/16 スタートアップゼミ #5 B4 後藤祥孝 1 0. 目次 Probit モデルについて 1. モデル概要 2. 定式化と理解 3. 推定 Mixed logit モデルについて 4. モデル概要 5. 定式化と理解 6. 推定 2 1.Probit 概要 プロビットモデルとは. 効用関数の誤差項に多変量正規分布を仮定したもの. 誤差項には様々な要因が存在するため,
More information板バネの元は固定にします x[0] は常に0です : > x[0]:=t->0; (1.2) 初期値の設定をします 以降 for 文処理のため 空集合を生成しておきます : > init:={}: 30 番目 ( 端 ) 以外については 初期高さおよび初速は全て 0 にします 初期高さを x[j]
機械振動論固有振動と振動モード 本事例では 板バネを解析対象として 数値計算 ( シミュレーション ) と固有値問題を解くことにより振動解析を行っています 実際の振動は振動モードと呼ばれる特定パターンが複数組み合わされますが 各振動モードによる振動に分けて解析を行うことでその現象を捉え易くすることが出来ます そこで 本事例では アニメーションを活用した解析結果の可視化も取り入れています 板バネの振動
More informationKumamoto University Center for Multimedia and Information Technologies Lab. 熊本大学アプリケーション実験 ~ 実環境における無線 LAN 受信電波強度を用いた位置推定手法の検討 ~ InKIAI 宮崎県美郷
熊本大学アプリケーション実験 ~ 実環境における無線 LAN 受信電波強度を用いた位置推定手法の検討 ~ InKIAI プロジェクト @ 宮崎県美郷町 熊本大学副島慶人川村諒 1 実験の目的 従来 信号の受信電波強度 (RSSI:RecevedSgnal StrengthIndcator) により 対象の位置を推定する手法として 無線 LAN の AP(AccessPont) から受信する信号の減衰量をもとに位置を推定する手法が多く検討されている
More informationPowerPoint プレゼンテーション
非線形カルマンフィルタ ~a. 問題設定 ~ 離散時間非線形状態空間表現 x k + 1 = f x k y k = h x k + bv k + w k f : ベクトル値をとるx k の非線形関数 h : スカラ値をとるx k の非線形関数 v k システム雑音 ( 平均値 0, 分散 σ v 2 k ) x k + 1 = f x k,v k w k 観測雑音 ( 平均値 0, 分散 σ w
More information1. 共通数値の計算 1.1 単純梁の曲げモーメントと撓み (INFSBEAMV.XLSのシートPanel1のコピー) パネル数 n= 1 パネル間隔 λ= 支間 L/nとして利用する [T 1 ] の計算 (-1,2,-1) の係数をマトリックスに構成する (1/2) 倍しない係数に注意 連続する
連続梁の影響線 ( デモ版 )INFCONTBVN.xls 理論と解析の背景 連続梁は 種々の境界条件と弾性条件があります ここでは標準的な等断面 等径間の 1 等分した格点で 二径間 (1:1) と三径間 (1:1:1) 連続梁の影響線だけの計算をまとめます 不等径間比の連続梁の影響線 格点分割数の計算は 応用計算として別にまとめます 連続梁の計算には 単純梁の曲げモーメントや撓みの影響線などを使います
More informationPowerPoint プレゼンテーション
復習 ) 時系列のモデリング ~a. 離散時間モデル ~ y k + a 1 z 1 y k + + a na z n ay k = b 0 u k + b 1 z 1 u k + + b nb z n bu k y k = G z 1 u k = B(z 1 ) A(z 1 u k ) ARMA モデル A z 1 B z 1 = 1 + a 1 z 1 + + a na z n a = b 0
More informationMicrosoft Word - mathtext8.doc
8 章偏微分と重積分 8. 偏微分とは これまで微分を考える際 関数は f という形で 関数値がつの変数 に依存している場合のみを扱ってきました しかし一般に変数はつとは決まっておらず f のように 複数の変数を持つ関数も考えなければなりません そ こでこの節では今まで学んできた微分を一般化させ 複数の変数に対応した偏微分と呼ばれるものについて説明します これまでの微分を偏微分と区別したいとき 常微分という呼び方を用います
More informationMicrosoft Word - Chap17
第 7 章化学反応に対する磁場効果における三重項機構 その 7.. 節の訂正 年 7 月 日. 節 章の9ページ の赤枠に記載した説明は間違いであった事に気付いた 以下に訂正する しかし.. 式は 結果的には正しいので安心して下さい 磁場 の存在下でのT 状態のハミルトニアン は ゼーマン項 と時間に依存するスピン-スピン相互作用の項 との和となる..=7.. g S = g S z = S z g
More information風力発電インデックスの算出方法について 1. 風力発電インデックスについて風力発電インデックスは 気象庁 GPV(RSM) 1 局地気象モデル 2 (ANEMOS:LAWEPS-1 次領域モデル ) マスコンモデル 3 により 1km メッシュの地上高 70m における 24 時間の毎時風速を予測し
風力発電インデックスの算出方法について 1. 風力発電インデックスについて風力発電インデックスは 気象庁 GPV(RSM) 1 局地気象モデル 2 (ANEMOS:LAWEPS-1 次領域モデル ) マスコンモデル 3 により 1km メッシュの地上高 70m における 24 時間の毎時風速を予測し 2000kW 定格風車の設備利用率として表示させたものです 数値は風車の定格出力 (2000kW)
More informationBlack Scholes Equation ブラック ショールズ方程式 知的財産仲裁センター知的財産価値評価人候補者 序 弁理士堀城之 これが ブラック ショールズ方程式であり フィッシャー ブラックとマイロン ショールズにより発明された偏微分方程式である オプション取引 ( ヨーロピアンオプショ
Black Scholes Equation ブラック ショールズ方程 知的財産仲裁センター知的財産価値評価人候補者 序 弁理士堀城之 これが ブラック ショールズ方程であり フィッシャー ブラックとマイロン ショールズにより発明された偏微分方程である オプション取引 ( ヨーロピアンオプション ) における理論価格の決定に用いられるものとして広く普及した この功績により 1997 年のノーベル経済学賞の受賞対象になった
More informationスライド 1
知能制御システム学 画像処理の高速化 OpenCV による基礎的な例 東北大学大学院情報科学研究科鏡慎吾 swk(at)ic.is.tohoku.ac.jp 2007.07.03 リアルタイム処理と高速化 リアルタイム = 高速 ではない 目標となる時間制約が定められているのがリアルタイム処理である.34 ms かかった処理が 33 ms に縮んだだけでも, それによって与えられた時間制約が満たされるのであれば,
More information応用数学Ⅱ 偏微分方程式(2) 波動方程式(12/13)
偏微分方程式. 偏微分方程式の形 偏微分 偏導関数 つの独立変数 をもつ関数 があるとき 変数 が一定値をとって だけが変化したとす ると は だけの関数となる このとき を について微分して得られる関数を 関数 の に関する 偏微分係数 略して偏微分 あるいは偏導関数 pil deiie といい 次のように表される についても同様な偏微分を定義できる あるいは あるいは - あるいは あるいは -
More information7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1
7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 10001 番地とすると, そこから int 型のサイズ, つまり 4 バイト分の領域が確保される.1
More informationLaplace2.rtf
=0 ラプラスの方程式は 階の微分方程式で, 一般的に3つの座標変数をもつ. ここでは, 直角座標系, 円筒座標系, 球座標系におけるラプラスの方程式の解き方を説明しよう. 座標変数ごとに方程式を分離し, それを解いていく方法は変数分離法と呼ばれる. 変数分離解と固有関数展開法. 直角座標系における 3 次元の偏微分方程式 = x + y + z =0 (.) を解くために,x, y, z について互いに独立な関数の積で成り立っていると考え,
More informationMicrosoft PowerPoint - 6.PID制御.pptx
プロセス制御工学 6.PID 制御 京都大学 加納学 Division of Process Control & Process Systems Engineering Department of Chemical Engineering, Kyoto University manabu@cheme.kyoto-u.ac.jp http://www-pse.cheme.kyoto-u.ac.jp/~kano/
More informationMicrosoft PowerPoint - pr_12_template-bs.pptx
12 回パターン検出と画像特徴 テンプレートマッチング 領域分割 画像特徴 テンプレート マッチング 1 テンプレートマッチング ( 図形 画像などの ) 型照合 Template Matching テンプレートと呼ばれる小さな一部の画像領域と同じパターンが画像全体の中に存在するかどうかを調べる方法 画像内にある対象物体の位置検出 物体数のカウント 物体移動の検出などに使われる テンプレートマッチングの計算
More information<4D F736F F F696E74202D208CB48E7197CD8A7789EF F4882CC91E589EF8AE989E A2E B8CDD8AB B83685D>
数値解析技術と標準 (3) 数値解析の信頼性に関する標準 平成 24 年 9 月 21 日原子力学会 2012 秋の大会標準委員会セッション5( 基盤 応用専門部会 ) 独立行政法人原子力安全基盤機構原子力システム安全部堀田亮年 AESJ MTG 2012 Autumn @Hiroshima 1 シミュレーションの信頼性 WG 報告書の構成 本文 (118 頁 ):V&Vの構造案解説 A) V&V
More information09.pptx
講義内容 数値解析 第 9 回 5 年 6 月 7 日 水 理学部物理学科情報理学コース. 非線形方程式の数値解法. はじめに. 分法. 補間法.4 ニュートン法.4. 多変数問題への応用.4. ニュートン法の収束性. 連立 次方程式の解法. 序論と行列計算の基礎. ガウスの消去法. 重対角行列の場合の解法項目を変更しました.4 LU 分解法.5 特異値分解法.6 共役勾配法.7 反復法.7. ヤコビ法.7.
More informationMicrosoft PowerPoint - Š’Š¬“H−w†i…„…C…m…‰…Y’fl†j.ppt
乱流とは? 不規則運動であり, 速度の時空間的な変化が複雑であり, 個々の測定結果にはまったく再現性がなく, 偶然の値である. 渦運動 3 次元流れ 非定常流 乱流は確率過程 (Stochastic Process) である. 乱流工学 1 レイノルズの実験 UD = = ν 慣性力粘性力 乱流工学 F レイノルズ数 U L / U 3 = mα = ρl = ρ 慣性力 L U u U A = µ
More informationPowerPoint Presentation
06 年 8 月 日 ( 月 )-6 日 ( 金 ) 千葉大学総合校舎 号館 4 階情報演習室 宇宙磁気流体 プラズマシミュレーションサマースクール 差分法の基礎 三好隆博 広島大学大学院理学研究科 時限目の目標 線形移流方程式 コンピュータ を計算機で解く! 内容 はじめに 差分法 移流方程式の差分法 高次精度風上差分法 はじめに はじめに 微分方程式 未知関数とその導関数を含む方程式 自然現象などを記述する基礎方程式
More information相対性理論入門 1 Lorentz 変換 光がどのような座標系に対しても同一の速さ c で進むことから導かれる座標の一次変換である. (x, y, z, t ) の座標系が (x, y, z, t) の座標系に対して x 軸方向に w の速度で進んでいる場合, 座標系が一次変換で関係づけられるとする
相対性理論入門 Lorentz 変換 光がどのような座標系に対しても同一の速さ で進むことから導かれる座標の一次変換である. x, y, z, t ) の座標系が x, y, z, t) の座標系に対して x 軸方向に w の速度で進んでいる場合, 座標系が一次変換で関係づけられるとすると, x A x wt) y y z z t Bx + Dt 弨弱弩弨弲弩弨弳弩弨弴弩 が成立する. 図 : 相対速度
More informationMicrosoft PowerPoint - 計算機言語 第7回.ppt
計算機言語第 7 回 長宗高樹 目的 関数について理解する. 入力 X 関数 f 出力 Y Y=f(X) 関数の例 関数の型 #include int tasu(int a, int b); main(void) int x1, x2, y; x1 = 2; x2 = 3; y = tasu(x1,x2); 実引数 printf( %d + %d = %d, x1, x2, y);
More information適応フィルタのSIMD最適化
茂木和洋 @ まるも製作所 今回は省略 初めての方は #1 の資料を参照 適応フィルタとは 適応フィルタの問題点 ( 速度面で ) SIMD 比較命令でマスク処理 ベンチマーク 固定のフィルタではなく 入力値によって処理を変更し 最適な結果を求める 例 基準値との差異を閾値と比較して 参照画素として使うか使わないかを切り替える 最小自乗法でフィッティングしてフィルタ係数自体を動的に作成する 他いろいろ
More information偏微分方程式、連立1次方程式、乱数
数値計算法 011/6/8 林田清 大阪大学大学院理学研究科 常微分方程式の応用例 1 Rutherford 散乱 ( 原子核同士の散乱 ; 金の薄膜に α 粒子をあてる ) 1 クーロン力 f= 4 0 r r r Ze y からf cos, si f f f y f f 粒子の 方向 y方向の速度と座標について dv Ze dvy Ze y, 3 3 dt 40m r dt 40m r d dy
More informationMicrosoft PowerPoint - elast.ppt [互換モード]
弾性力学入門 年夏学期 中島研吾 科学技術計算 Ⅰ(48-7) コンピュータ科学特別講義 Ⅰ(48-4) elast 弾性力学 弾性力学の対象 応力 弾性力学の支配方程式 elast 3 弾性力学 連続体力学 (Continuum Mechanics) 固体力学 (Solid Mechanics) の一部 弾性体 (lastic Material) を対象 弾性論 (Theor of lasticit)
More informationスライド 1
計測工学第 12 回以降 測定値の誤差と精度編 2014 年 7 月 2 日 ( 水 )~7 月 16 日 ( 水 ) 知能情報工学科 横田孝義 1 授業計画 4/9 4/16 4/23 5/7 5/14 5/21 5/28 6/4 6/11 6/18 6/25 7/2 7/9 7/16 7/23 2 誤差とその取扱い 3 誤差 = 測定値 真の値 相対誤差 = 誤差 / 真の値 4 誤差 (error)
More information