SlideShare a Scribd company logo
1 of 57
Download to read offline
RIKEN	
  ADVANCED	
  INSTITUTE	
  FOR	
  COMPUTATIONAL	
  SCIENCE
第1回  
スーパーコンピュータと  
アプリケーションの性能
2014年4月10日



独立行政法人理化学研究所

計算科学研究機構�運用技術部門

ソフトウェア技術チーム�チームヘッド



南�一生

minami_kaz@riken.jp
CMSI計算科学技術特論B
講義の概要
• スーパーコンピュータとアプリケーションの性能  
• アプリケーションの性能最適化1(高並列性能最適化)  
• アプリケーションの性能最適化2(CPU単体性能最適化)  
• アプリケーションの性能最適化の実例1  
• アプリケーションの性能最適化の実例2
22014年4月10日 CMSI計算科学技術特論B 
本日の内容
!
• スーパーコンピュータとは?  
• アプリケーションの性能とは?  
• 高並列化のための重要点  
• 単体性能向上のための重要点
32014年4月10日 CMSI計算科学技術特論B 
4
スーパーコンピュータとは?
2014年4月10日 CMSI計算科学技術特論B 
5
スーパーコンピュータとは・・・
スーパーコンピュータ=卓越した計算能力    
!
その時代の一般的なコンピュータよりも、極めて高速(浮動小数
点演算性能で1000倍以上)な計算機  
!
演算性能  1.5  TFlops  以上(*)  
!
・・・現在の政府調達における「スーパーコンピュータ」の定義
(*):1秒間に1.5兆回以上の浮動小数点演算が可能
2014年4月10日 CMSI計算科学技術特論B 
6
1923年 タイガー手回し計算機
1946年 ENIAC	
  	
  
世界初のコンピュータ
2002年 地球シミュレータ 	
  
当時世界最速のスーパーコンピュータ
2011年 「京」コンピュータ
160Mflops
40Tflops
10Pflop
2002年 当時のパソコン 	
  
PentiumIV
6.4Gflops
40倍
1976年 CRAY-­‐1	
  	
  
世界初のスーパーコンピュータ
25万倍
6250万倍
スーパーコンピュータの発展
≒2011年 iPhone4S	
  	
  
LINPACK 140Mflops
2014年4月10日 CMSI計算科学技術特論B 
7
コンピュータとは?
■ CPU	
 
■ メモリ	
 
■ IO(入出力) 
IOから受け取った(入力)データとプ
ログラムをメモリに置き、
CPUでプログラムに従ってデータの
処理を行なって、メモリに書き戻し、
それをIOに出す、書出す(出力)
CPU
メモリ
IO
(ハードディスクや	
 
ディスプレーなど)
CPUの性能向上
≒コンピュータの性能向上
!
であった時代
■ アプリケーション	
 
■ ミドルウェア
■ OS
ハードウェア ソフトウェア(進化とともに分化) 一台のコンピュータ
2014年4月10日 CMSI計算科学技術特論B 
8
昔のスーパーコンピュータ
昔は、ベクトル機構などによって、1台のコンピュータを高速化
CPU
メモリ
IO
VU
ベクトル
データのかたまりを
一まとめで処理する
(SUとメモリを共有)
ベクトル機構
■CPU(SU)+VU
■メモリ
■IO(入出力)
今もこの方式が無くなったわけではありませんが...
一つのOSで制御	
 
される一つの	
 
コンピュータ
メモリからデータを	
 
まとめて持ってくるのは
とても大変
ここが大変
2014年4月10日 CMSI計算科学技術特論B 
9
シングルプロセッサの問題
■ メモリは一定時間を経過しないと同
じメモリバンクにアクセスできない
■ 昔は20サイクルくらい待っていた
■ しかし動作周波数が低かったため
演算器も遅く演算速度とメモり転送
性能は釣り合っていた
メモリウォール問題
演算器
メモリ
インタリーブ
メモリ
メモリバンク
(例は4バンク)
動作周波数が低い場合(昔)
2014年4月10日 CMSI計算科学技術特論B 
10
メモリウォール問題
演算器
メモリ
インタリーブ
メモリ
メモリバンク
(例は4バンク)
動作周波数が高い場合(現在)
■ メモリは動作周波数が高くなっ
てくるともっと待つ事となる(100-
200サイクル)
■ メモリに比べて演算器は動作周
波数が高くなると高速になった
■ さらに半導体プロセスの微細化
により演算器はCPUにたくさん
搭載可能となった
■ 結果的に演算器に比べメモリの
データ転送能力が低くなった
シングルプロセッサの問題
2014年4月10日 CMSI計算科学技術特論B 
11
対策1
演算器
メモリ
インタリーブ
メモリ
メモリバンク
(例は7バンク)
動作周波数が高い場合
■ メモリバンクを増やし演算器に
供給するデータ量を増大させた
■ しかしこの方式は機構が複雑に
なり電力が増大する
■ またコスト・価格も高くなる
■ベクトル機では数百のバンクを
搭載した
■ ちなみに昔のベクトル機はこの方式により
1要素(8バイト)単位のメモリアクセスで高
いメモリアクセス性能を実現した
■ しかしここで述べたようにコスト・価格・電力
面では高価である
シングルプロセッサの問題
2014年4月10日 CMSI計算科学技術特論B 
12
 ベクトル機
特にこの部分がコスト・価格・電力面で高価になる
2014年4月10日 CMSI計算科学技術特論B 
13
対策2
演算器
動作周波数が高い場合
■ メモリのバンクは増やさない
■ データ供給能力の高いキャッシュ
をメモリと演算器間に設ける
■ データをなるべくキャッシュに置き
データを再利用する事でメモリの
データ供給能力の不足を補う
■ こうすることで演算器の能力を使
い切る
■ 多くのスカラー機はこの方式を取っている
■ キャッシュライン(数十から数百バイト)単位
のメモリアクセスである
2次キャッシュ
1次キャッシュ
メモリ
インタリーブ
メモリ
シングルプロセッサの問題
2014年4月10日 CMSI計算科学技術特論B 
14
 スカラー機
この部分がベクトル機に比べればシンプルになる
2014年4月10日 CMSI計算科学技術特論B 
15
■ 動作周波数を上げる事で電力が吹き上がる
■ 動作周波数の限界を迎えている
■ メモリウォール問題もあり一台のコンピュータの演算
能力を上げてもメモリの能力が追いつかない
一台のコンピュータの処理限界
!
そこで!  
シングルプロセッサの問題
2014年4月10日 CMSI計算科学技術特論B 
最近のスーパーコンピュータ
たくさんのコンピュータをつないで、システムとして一体で動かす
CPU
メモリ
IO
■ CPU
■ メモリ
■ IO(入出力)
■ インターコネクト(接続機構)
■ GPU/アクセラレータ
(加速器:あったり、なかったり)
インターコネクト
GPU
各々のコンピュータが
各々のOSで制御される
各々のコンピュータ=「ノード」
メモリは専用
(大変だから)
2014年4月10日 CMSI計算科学技術特論B 
17
インターコネクトの種類
・初代地球シミュレータや富士通VPPで採用された  
・1回のスイッチの切り替えでノード同士が直接接続  
・通信性能は良い  
・ノード数の二乗のスイッチが必要となる  
・ノード数が多くなるとハードウェアの物量が著しく増大する
単段クロスバーネットワーク
18
インターコネクトの種類
多段クロスバーネットワーク(例は3次元クロスバー)
・日立SR2201等で採用された  
・複数回(例は3回)のスイッチの切り替えでノード接続  
・通信性能は単段クロスバーには劣る  
・スイッチの数は単段クロスバーに比べると少なくてすむ  
・それでもノード数が多くなるとハードウェアの物量が増大する
19
インターコネクトの種類
FatTreeネットワーク(例は2段のツリー)
・多くのPCクラスターやスパコンで採用  
・複数回のスイッチの切り替えでノード接続  
・通信性能は単段クロスバーには劣る  
・スイッチの数は単段クロスバーに比べると少なくてすむ  
・それでもノード数が多くなるとハードウェアの物量が増大する
ノード
20
インターコネクトの種類
6次元ToFuネットワーク(京のネットワーク)
A
B
C
+X-X
+Y+Z
-Z-Y
・スイッチを使わない直接網となっている  
・クロスバーよりもハードウェアの物量を抑える設計  
・大規模なノード数に対応可能  
・実際の性能等の使い勝手は良好  
・非構造の問題のようにきっちり並んでいなくても通信性能は十分  
・集団通信はToFuアルゴリズムを使うと良い性能が得られる
21
コンピュータ(ノード)どうしをつなぐ
CPU
メモリ
IO
CPU
メモリ
IO
インターコネクト
ソフトウェア	
 
同士が連携して
一体として動く
ノード ノード
2014年4月10日 CMSI計算科学技術特論B 
22
コンピュータ(ノード)どうしをつなぐ
CPU
メモリ
IO
CPU
メモリ
IO
インターコネクト
ノード ノード
CPU
メモリ
IO
インターコネクト
CPU
メモリ
IO
インターコネクト
ノード ノード
システムとして一体で動く
(一つの仕事をやる、たくさんの仕事は互いに連携して分担しあって片づける)
2014年4月10日 CMSI計算科学技術特論B 
23
もっともっと、たくさんのコンピュータ(ノード)どうしをつなぐ
どれだけたくさんつなげるか?⇒システムとして高性能	
 
一つのシステムとして動く
実際はハードディスクは、まとめる2014年4月10日 CMSI計算科学技術特論B 
24
9966プロセッサ
11ラック
886644ラック


8822994444プロセッサ


6666万コア
50m×60mの部屋に
ちなみに「京」の場合は?
2014年4月10日 CMSI計算科学技術特論B 
25
ü仮にひとつのCPUが、
これだけ巨大システムでCPUが頻繁に故障すると・・・
1年
üシステム全体で見ると、
約6分
CPUの故障率を抑えることは極めて重要
約66分に11回の故障・・・
1年に1回故障したとします
2014年4月10日 CMSI計算科学技術特論B 
26
1940年代半ばのENIACの登場  
最初はシングルプロセッサの時代  
ベクトル/CISC/RISC/スーパースカラ等色々なアーキテクチャが登場  
その時代は演算器を増やすことにより高速処理を実現.  
メモリウォール問題及び電力,動作周波数を上げられない問題に
よりシングルプロセッサの限界となった.  
それらによりスーパーコンピュータが並列プロセッサアーキテクチャ
へと変化
スーパーコンピュータについてまとめると
スーパーコンピュータは一つのノードの構成としては普通のコン
ピュータと基本的には変わらないが・・  
トータルとしての計算能力・演算性能がきわめて高い  
そのためには高速なインターコネクトが要求される  
またシステムトータルとしての高い省電力性能・高信頼性が高い
レベルで要求される
2014年4月10日 CMSI計算科学技術特論B 
27
アプリケーションの  
性能とは?
2014年4月10日 CMSI計算科学技術特論B 
28
スパコンはシミュレーションに使う
従来の  
科学は
コンピュータ実験  
(シミュレーション)  
実験  
    
理論  
第3の科学
科学について
2014年4月10日 CMSI計算科学技術特論B 
29
10-10m
水中のウィルスの丸ごと
シミュレーションによる医
療への貢献
難しい大気現象の解明、また
正確な台風の進路・強度の
予測による気象への貢献
短周期地震波動の地震波シミュレーション、
構造物の耐震シミュレーションを組み合わせ
た防災への貢献
次世代のデバイス全体のシ
ミュレーションによるエレクト
ロニクスへの貢献
セルロース分解
酵素のシミュレー
ションによる安価
なバイオ燃料の
提供等エネル
ギーへの貢献
10-8m
100m
102m
107m
1021m
具体的なアプリケーション
2014年4月10日 CMSI計算科学技術特論B 
30
現代のスパコン利用の難しさ
アプリケーションの  
超並列性を引き出す
プロセッサの単体性能  
を引き出す
System Board
Rack
System
現代のプロセッサ
演算器
2次キャッシュ
1次キャッシュ
メモリ
現代のスーパーコンピュータシステム
2014年4月10日 CMSI計算科学技術特論B 
31
システム運用評価
論文作成
結果の解釈
グラスィックス処理
プロダクションRUN
デバッグ
!
コンパイル
プログラム作成
離散化
定式化
理論構築
問題設定
ハードウェア
開発・実行環境
コンパイラ
プログラム
言語
計算科学         計算機科学
24
理論に忠実な分かり

やすいコーディング
!
!
!
昔のプログラミング  
!
!
!
!
大昔の計算機  
!
!
!
!
!
!
!
演算3
演算器
演算器に逐次に入力し逐次実行
演算2
演算1
性能向上  
!
!
!
!
!
!
!
(1)そのまま実行すると6clock
演算1 演算2
(2)演算を3つのス  
 テージに分割する  
演算i
(3)並列に計算できるようスケジューリング         
(4)2個の演算資源を使い並列に実行  
(5)4clockで実行可  
!!!!!(6)処理や演算を細かく分割し複数の演算資源を  
  並列に動作させ性能アップ
2014年4月10日 CMSI計算科学技術特論B 
32
並列処理と依存性の回避
配列データ同士の足し算は
C(1)=A(1)+B(1)
C(2)=A(2)+B(2)
C(3)=A(3)+B(3)
  :  :
C(n)=A(n)+B(n)
と書き表せる。A,B ,CはそれぞれN個からなる配列データで ある。コンピュータが 足し算を行
うときのプロセスを4つに分けて考える。
1.指数の比較 2.桁あわせ 3.加算 4.正規化
!
これら4つのプロセス を,1マシンサイクルのあいだに並行して 処理できる機構がパイ プライン
である。つまり
指数比較  [1][2][3][4][5] … →時間の流れ
桁あわせ    [1][2][3][4][5] ...
加 算       [1][2][3][4][5] ...
正規化        [1][2][3][4][5] …


この図ではあるタイミング、たとえば[4 ]の指数比較が行われると同時に[3 ]の桁あわせ、
[2]の加算,[1]の正規化が行われている。これ らの[i]の 処理が スカラ ー命令で 駆動されるのが
スカ ラーパ イプライン処理 である。(Fetch・Decode・EXecution・Memory Access・Write
Backもパイプライン化されている)
< スカラーパイプライン> ハードウェア
2014年4月10日 CMSI計算科学技術特論B 
33
並列処理と依存性の回避
< スーパースカラ方式> ハードウェア
• r1=r0+r2 r1=r0+r2 —-(1) 

r3=r1+r4 r3=r1+r4 —-(2)

r4=r5+r6 r9=r5+r6 —-(3)

r4=r7+r8 r10=r7+r8 —-(4)

—————————
• 左側(1)(2)式は真の依存関係があるという
• 左側(2)(3)式は逆依存の関係があるという
• 左側(3)(4)式は出力依存の関係があるという
• このような依存関係がある場合、加算が1サイクルで実行可能な場合4サイクルかかる。
• そこで右側の式のようにレジスタを付け替えると依存関係はなくなる
• この場合は、(2)-(4)までは並列に実行可能であり、加算器を3つ以上持つスーパースカラ
プロセ ッサでは、1 サイクルで実行できる。
• したがって全体を2 サイクルで実行できる。
• このようなレジスタ番号の付け替えをレジスタリネーミングという。
< レジスタリネーミング> バードウェア
• 並列実行可能な演算器を複数装備したプロセッサ
2014年4月10日 CMSI計算科学技術特論B 
34
並列処理と依存性の回避
< 内側ループアンローリング(1)>
・以下の様なコーディングの変更を内側ループアンローリングという。
 do i=1,n
  x(i)=x(i)+a(i)*b+c(i)*d
 end do
!
 do i=1,n,2
  x(i)=x(i)+a(i)*b+c(i)*d
  x(i+1)=x(i+1)+a(i+1)*b+c(i+1)*d
 end do
この変更により演算器を並列に使用できるようになる。
コンパイラ
2014年4月10日 CMSI計算科学技術特論B 
35
並列処理と依存性の回避
< 結合変換機能>
• x=a+b+c+d+e+fの形で計算する場合、各加算演算の間で依存性が発生する。
• しかしx=a+ b+ c+ (d+ e+ f)の形にすると前3つの加算と後3つの加算の間では
依存がなくなる。
• この変換を結合変換という。
!
< 複数命令にまたがる依存性の消去>
• 以下のコーディング例で説明する。
  do i=1,n
  xx(i)=b1+a11*x(i)+a12*y(i)
  yy(i)=b2+a21*x(i)+a22*y(i)
  end do
• この中でb1+a11*x(i)とb2+a21*x(i)の計算は、依存性がない。
• このように依存性がない部分を見つけてやり依存性を消去する。
コンパイラ(ハードウェア)
2014年4月10日 CMSI計算科学技術特論B 
コンパイラ(ハードウェア)
36
並列処理と依存性の回避
< アウトオブオーダー実行>
• 各命令間の依存関係をチェックしレジスタリネーミングによりレジスタ番号付け
を行ったあと、これを効率よく実行するためには、演算器を複数もった プロセッ
サを用意し動的に順序を入れ換えて命令を実行する必要がある。
• これをアウトオブオーダー実行という。
ハードウェア
2014年4月10日 CMSI計算科学技術特論B 
37
並列処理と依存性の回避
< ソフトウェアパイプラインニング>
例えば以下の処理をを考える。
 do i=1,100
  a(i)のロード
  b(i)のロード
  a(i)とb(i)の演算
  i番目の結果のストア
 end do
コンパイラ
<前提>  
・ロード2つorストアと演算とは同時実行可能  
・ロードとストアは2クロックで実行可能  
・演算は4クロックで実行可能  
・ロードと演算とストアはパイプライン化されている
(1) (2)
<実行時間>  
・8クロック×100要素=800クロックかかる
2014年4月10日 CMSI計算科学技術特論B 
38
並列処理と依存性の回避
< ソフトウェアパイプラインニング>
左の処理を以下のように構成し直す事を
ソフトウェアパイプラインニングという
a(1)a(2)a(3)のロード
b(1)b(2)のロード
(1)の演算
do i=3,100
  a(i+1)のロード
  b(i)のロード
  (i-1)の演算
i-2番目の結果のストア
end do
b(100)のロード
(99)(100)の演算
(98)(99)(100)のストア
<ソフトウェアパイプラインニング>
例えば以下のコーディングを考える。
do i=1,100
a(i)=a(i-1)+a(i)
b(i)=b(i-1)+a(i)
c(i)=c(i-1)+b(i)
end do
このコーディングは下図の実線の矢印のような参照関係を持っているため、ループ内の
3つの式に依存性が生じる。点線上の計算をループ内の3 つの式となるよう処理を変更す
ることをソフトウェアパイプラインニングという。
a
b
c
0 1 2 3 4
コーディングは以下のようになる。
a(1)=a(0)+a(1)
b(1)=b(0)+a(1)
a(2)=a(1)+a(2)
do i=3,100
c(i-2)=c(i-3)+b(i-2)
b(i-1)=b(i-2)+a(i-1)
a(i)=a(i-1)+a(i)
<ソフトウェアパイプラインニング>
例えば以下のコーディングを考える。
do i=1,100
a(i)=a(i-1)+a(i)
b(i)=b(i-1)+a(i)
c(i)=c(i-1)+b(i)
end do
このコーディングは下図の実線の矢印のような参照関係を持っているため、ループ内の
3つの式に依存性が生じる。点線上の計算をループ内の3 つの式となるよう処理を変更す
ることをソフトウェアパイプラインニングという。
a
b
c
0 1 2 3 4
コーディングは以下のようになる。
a(1)=a(0)+a(1)
b(1)=b(0)+a(1)
a(2)=a(1)+a(2)
do i=3,100
c(i-2)=c(i-3)+b(i-2)
b(i-1)=b(i-2)+a(i-1)
a(i)=a(i-1)+a(i)
end do
c(99)=c(98)+b(99)
b(100)=b(99)+a(100)
<ソフトウェアパイプラインニング>
例えば以下のコーディングを考える。
do i=1,100
a(i)=a(i-1)+a(i)
b(i)=b(i-1)+a(i)
c(i)=c(i-1)+b(i)
end do
このコーディングは下図の実線の矢印のような参照関係を持っているた
3つの式に依存性が生じる。点線上の計算をループ内の3 つの式となるよ
ることをソフトウェアパイプラインニングという。
a
b
c
0 1 2 3 4
コーディングは以下のようになる。
a(1)=a(0)+a(1)
b(1)=b(0)+a(1)
a(2)=a(1)+a(2)
do i=3,100
c(i-2)=c(i-3)+b(i-2)
b(i-1)=b(i-2)+a(i-1)
a(i)=a(i-1)+a(i)
end do
c(99)=c(98)+b(99)
b(100)=b(99)+a(100)
<ソフトウェアパイプラインニング>
例えば以下のコーディングを考える。
do i=1,100
a(i)=a(i-1)+a(i)
b(i)=b(i-1)+a(i)
c(i)=c(i-1)+b(i)
end do
このコーディングは下図の実線の矢印のような参照関係を持っているため、ループ
3つの式に依存性が生じる。点線上の計算をループ内の3 つの式となるよう処理を変
ることをソフトウェアパイプラインニングという。
a
b
c
0 1 2 3 4
コーディングは以下のようになる。
a(1)=a(0)+a(1)
b(1)=b(0)+a(1)
a(2)=a(1)+a(2)
do i=3,100
c(i-2)=c(i-3)+b(i-2)
b(i-1)=b(i-2)+a(i-1)
a(i)=a(i-1)+a(i)
<ソフトウェアパイプラインニング>
例えば以下のコーディングを考える。
do i=1,100
a(i)=a(i-1)+a(i)
b(i)=b(i-1)+a(i)
c(i)=c(i-1)+b(i)
end do
このコーディングは下図の実線の矢印のような参照関係を持っているた
3つの式に依存性が生じる。点線上の計算をループ内の3 つの式となるよ
ることをソフトウェアパイプラインニングという。
a
b
c
0 1 2 3 4
コーディングは以下のようになる。
a(1)=a(0)+a(1)
b(1)=b(0)+a(1)
a(2)=a(1)+a(2)
do i=3,100
c(i-2)=c(i-3)+b(i-2)
b(i-1)=b(i-2)+a(i-1)
a(i)=a(i-1)+a(i)
<ソフトウェアパイプラインニング>
例えば以下のコーディングを考える。
do i=1,100
a(i)=a(i-1)+a(i)
b(i)=b(i-1)+a(i)
c(i)=c(i-1)+b(i)
end do
このコーディングは下図の実線の矢印のような参照関係を持っているため、ループ内
3つの式に依存性が生じる。点線上の計算をループ内の3 つの式となるよう処理を変更
ることをソフトウェアパイプラインニングという。
a
b
c
0 1 2 3 4
コーディングは以下のようになる。
a(1)=a(0)+a(1)
b(1)=b(0)+a(1)
a(2)=a(1)+a(2)
do i=3,100
c(i-2)=c(i-3)+b(i-2)
b(i-1)=b(i-2)+a(i-1)
a(i)=a(i-1)+a(i)
aロード
bロード
演算
ストア
(1)     (2)         (3)    (4)・・・・  ・・・・     (99)          (100)
2014年4月10日 CMSI計算科学技術特論B 
コンパイラ
39
並列処理と依存性の回避
< ソフトウェアパイプラインニング>
 
do i=1,100
  a(i)のロード
  b(i)のロード
  a(i)とb(i)の演算
  i番目の結果のストア
end do
コンパイラ
(1) (2)
2014年4月10日 CMSI計算科学技術特論B 
 
do i=1,100
  a(i)のロード
 
  b(i)のロード
 
  a(i)とb(i)の演算
 
  i番目の結果のストア
!
end do
(1) (2)
40
並列処理と依存性の回避
< ソフトウェアパイプラインニング>
左の処理を以下のように構成し直す事を
ソフトウェアパイプラインニングという
a(1)a(2)a(3)のロード
b(1)b(2)のロード
(1)の演算
do i=3,100
  a(i+1)のロード
  b(i)のロード
  (i-1)の演算
i-2番目の結果のストア
end do
b(100)のロード
(99)(100)の演算
(98)(99)(100)のストア !
<実行時間>  
・前後の処理及びメインループの立ち上がり部分を除くと  
・1クロック×100要素=100クロックで処理できる  
(3)(1) (2) (4)(5)(6)(7)(8)
2014年4月10日 CMSI計算科学技術特論B 
41
並列処理と依存性の回避
< ロード命令の先行実行>
(例題)
add—— load r1 …(1)

multiply—— add —— …(2)

load r1 multiply —— …(3)

add r3 r1 r2 add r3 r1 r2 …(4)

------------------------------------------------------

• 左側の命令列でもし(3)においてキャッシュミスが生じると直後の命令でr1を使ってい
るため待ちが生じてしまう.
• したがって右側のようにload命令をできるだけ先に実行してしまうような命令列に変更
する.
• この命令列であれば、(1)でキャッシュミスが発生しても、そのデータを使う(4)までの
間に(2)(3)は並行して実施できるため,キャッシュミスのペナルティを小さくできる.
• これをロード命令の先行実行という.
2014年4月10日 CMSI計算科学技術特論B 
コンパイラ
42
システム運用評価
論文作成
結果の解釈
グラスィックス処理
プロダクションRUN
デバッグ
!
コンパイル
プログラム作成
離散化
定式化
理論構築
問題設定
ハードウェア
開発・実行環境
コンパイラ
プログラム
プログラム
理論に忠実な分かり

やすいコーディング
高並列化・	
  
高性能コーディング
言語
計算科学         計算機科学
24
!
!
• アプリケーションの超
並列性を引き出す  
!
• プロセッサの単体性能
を引き出す  
!
現代のプログラミング  
(スパコンを使う場合)
!
!
!
!
!
!
!
!
・データを各プロセッサへ分割  
・処理を各プロセッサへ割当  
・プロセッサ間での通信を記述  
・キャッシュの有効利用プログラミング  
・演算器有効利用プログラミング  
・メモリ性能有効利用プログラミング  
・コンパイラ有効利用プログラミング  
!
2014年4月10日 CMSI計算科学技術特論B 
43
従来,単体プロセッサの時代からプログラムに内在する並列性を
コンパイラで解釈しハードウェアに装備された並列処理機構を利
用することによりことにより,高速処理を実現してきた.  
!
しかし現代のスパコンプログラマーは,プロセス間の並列性を意
識して並列化し,またブロセス毎のデータの分散を意識してプロ
グラミングすることが必要となった.  
!
そうすることにより数千から数万に及ぶプロセス間の並列性を最
大限利用した超高速計算が実現可能となる.  
!
またシングルプロセッサの性能を最大限使いきるプログラムの
チューニングも必要となる.  
!
もしシングルプロセッサの性能の1%しか出せなければ,並列化さ
れていてもシステムトータルでも1%の性能しかでない.
アプリケーションの性能についてまとめると
2014年4月10日 CMSI計算科学技術特論B 
44
スーパーコンピュータの威力
パソコンで100年かかる計算
!
半日で終わる  
京を使って  
73000倍  
の速度で実行
例えば次世代のデバイス
全体のシミュレーション
たくさんの原子を用いたシ
ミュレーション
2014年4月10日 CMSI計算科学技術特論B 
45
高並列化のための重要点
2014年4月10日 CMSI計算科学技術特論B 
46
計算時間
逐次計算
並列計算
計算時間
そもそも並列化とは?(1)
2014年4月10日 CMSI計算科学技術特論B 
47
計算時間
プロセッサ1
計算時間通信時間 通信時間
通信
通信
通信
プロセッサ2
プロセッサ3
プロセッサ4
できるだけ同じ
計算時間
(ロードインバランス
を出さない)
通信時間を出来る
だけ小さくする!
そもそも並列化とは?(2)
2014年4月10日 CMSI計算科学技術特論B 
48
並列計算できない部分(1秒) 並列計算できる部分(99秒)
1+0.99=1.99秒
ほぼ50倍
並列計算できない部分(非並
列部)を限りなく小さくする!
100
プロセッサ
1+0.099=1.099秒
ほぼ91倍
1000
プロセッサ
必要な並列度を確保する!
そもそも並列化とは?(3)
2014年4月10日 CMSI計算科学技術特論B 
必要な並列度を確保するとは?
49
領域分割 原子分割
・原理的にメッシュ数以上には分割できない  
・実際的にはそんなに分割すると通信ばかりになる  
・以下の手順で分割数を見積もる事が重要  
(1)解きたいメッシュ数を設定し(2)実行時間を見積もる  
(3)解きたい時間を設定し(4)分割数を設定する  
(5)分割数が多すぎる場合,並列数の拡大を検討  
(5)については全てのケースでできる訳ではないが後の
講義でテクニックを例示する.
・原理的に原子数以上には分割できない  
・実際的にはそんなに分割すると通信ばかりになる  
・後は領域分割と同様  
2014年4月10日 CMSI計算科学技術特論B 
50
非並列部が問題になる場合
領域分割の場合,完全に領域分割されていれば非並列部が発生する場合は少ない.  
領域分割されていな配列や処理が主要な計算部に残る場合あり.  
また初期処理に分割されていない処理が残っている場合もある.具体的には通信テー
ブルの作成等.  
量子計算のアプリ等で領域分割でなくエネルギーバンド並列等を使用している場合は
非並列部が残る場合がある.
subroutine m_es_vnonlocal_w(ik,iksnl,ispin,switch_of_eko_part) !
| +-call tstatc0_begin!
| | loop_ntyp: do it = 1, ntyp !
| | | loop_natm : do ia = 1, natm ---------原子数のループ!
| | | +-call calc_phase!
| | | | T-do lmt2 = 1, ilmt(it) !
| | | | +-call vnonlocal_w_part_sum_over_lmt1!
| | | | | +-call add_vnlph_l_without_eko_part!
| | | | | | subroutine add_vnlph_l_without_eko_part() !
| | | | | | | T-if(kimg == 1) then !
| | | | | | | | T-do ib = 1, np_e ---------エネルギーバンド並列部
| | | | | | | | | T-do i = 1, iba(ik) !
| | | | | | | | | V-end do !
| | | | | | | | V-end do !
| | | | | | | +-else !
| | | | | | | | T-do ib = 1, np_e ---------エネルギーバンド並列部!
| | | | | | | | | T-do i = 1, iba(ik) !
| | | | | | | | | V-end do !
| | | | | | | | V-enddo !
| | | | | | | V-end if !
| | | | | | end subroutine add_vnlph_l_without_eko_part !
| | | | V-end do !
| | | V-end do loop_natm !
| | V-end do loop_ntyp !
end subroutine m_es_vnonlocal_w !
2014年4月10日 CMSI計算科学技術特論B 
51
単体性能向上のための重要点
2014年4月10日 CMSI計算科学技術特論B 
52
メモリウォール問題
ü 昔の計算機はメモリのデータ
供給能力と演算器の能力がバ
ランスしていた
メモリ
データ
プロセッサの単体性能を引き出す(1)
!
• 現代の計算機は演算器の能
力が高くなりメモリのデータ供
給能力が相対的に不足して
いる
演算器
• かつては研究者やプログラマーは物理モデル式に忠
実に素直にプログラミングすることが一般的であった
2014年4月10日 CMSI計算科学技術特論B 
53
演算器
・データ供給能力の高いキャッシュを設ける
・キャッシュに置いたデータを何回も再利用し
 演算を行なう
・こうする事で演算器の能力を十分使い切る
 メモリウォール問題への対処
メモリ
データ
2次キャッシュ
1次キャッシュ
データ
データ
再利用
例えば行列行列積
(2N2個のデータで2N3個の演算可)
!
(*1)演算量(Flop) に比べ
データの移動量(Byte)が小さい計算
「アプリケーションが要求
するByte/Flop値が低い」タイプ
の計算(*1)
キャッシュの有効利用
プロセッサの単体性能を引き出す(2)
2014年4月10日 CMSI計算科学技術特論B 
54
もう少し詳しく説明すると
B/F値
=移動量(Byte)/演算量(Flop)
=2N2/2N3
=1/N
×=
行列行列積の計算
2N3個の演算 N2個のデータ N2個のデータ
原理的にはNが大きい程小さな値
現実のアプリケーションではNがある程度の大きさになるとメモリ配置的には(a)は
キャッシュに乗っても(b)は乗らない事となる
(a) (b)
×=
(a) (b)
そこで行列を小行列にブロック分割し(a)も(b)もキャッシュに乗るようにして
キャッシュ上のデータだけで計算するようにする事で性能向上を実現する.
2014年4月10日 CMSI計算科学技術特論B 
55
演算器
・再利用出来ない問題もある
・こうなる演算器の能力を十分使い切る事が
出来ない
 とは言っても・・・・
メモリ
データ
2次キャッシュ
1次キャッシュ
データ
データ
再利用
(*2)演算量(Flop) に比べデータの
移動量(Byte)が大きい計算
「アプリケーションが要求
するByte/Flop値が高い」タイプ
の計算(*2)
キャッシュの有効利用が
難しい
プロセッサの単体性能を引き出す(3)
2014年4月10日 CMSI計算科学技術特論B 
56
例えば
B/F値
=移動量(Byte)/演算量(Flop)
=(N2+N)/2N2
≒1/2
行列ベクトル積の計算
2N2個の演算 N2個のデータ N個のデータ 原理的には1/Nより大きな値
×=
(a) (b)
行列を小行列にブロック分割して(a)も(b)もキャッシュに乗るようにしてもB/F値は大
きいので性能向上はできない.
2014年4月10日 CMSI計算科学技術特論B 
57
まとめ
• スーパーコンピュータとは?  
シングルプロセッサの時代  
メモリウォール等の問題  
並列プロセッサアーキテクチャへ  
• アプリケーションの性能とは?  
アプリケーションの超並列性を引き出す  
プロセッサの単体性能を引き出す  
• 高並列化のための重要点  
並列度の確保  
非並列部を最小化する  
通信時間を最小化する  
ロードインバランスを解消する  
• 単体性能向上のための重要点  
B/F値とは?  
キャッシュの有効利用ができる例  
キャッシュの有効利用がしにくい例
p7.p8,p16,p21-p23についてはRIKEN AICS井上統括役の資料である. 2014年4月10日 CMSI計算科学技術特論B 

More Related Content

What's hot

アプリケーションの性能最適化1(高並列性能最適化)
アプリケーションの性能最適化1(高並列性能最適化)アプリケーションの性能最適化1(高並列性能最適化)
アプリケーションの性能最適化1(高並列性能最適化)
RCCSRENKEI
 
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
智啓 出川
 
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
智啓 出川
 

What's hot (20)

CMSI計算科学技術特論A(14) 量子化学計算の大規模化1
CMSI計算科学技術特論A(14) 量子化学計算の大規模化1CMSI計算科学技術特論A(14) 量子化学計算の大規模化1
CMSI計算科学技術特論A(14) 量子化学計算の大規模化1
 
アプリケーションの性能最適化1(高並列性能最適化)
アプリケーションの性能最適化1(高並列性能最適化)アプリケーションの性能最適化1(高並列性能最適化)
アプリケーションの性能最適化1(高並列性能最適化)
 
200521material takahashi
200521material takahashi200521material takahashi
200521material takahashi
 
電子動力学アプリケーションの最適化2
電子動力学アプリケーションの最適化2電子動力学アプリケーションの最適化2
電子動力学アプリケーションの最適化2
 
200702material hirokawa
200702material hirokawa200702material hirokawa
200702material hirokawa
 
200528material takahashi
200528material takahashi200528material takahashi
200528material takahashi
 
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
 
CMSI計算科学技術特論B(12) 大規模量子化学計算(1)
CMSI計算科学技術特論B(12) 大規模量子化学計算(1)CMSI計算科学技術特論B(12) 大規模量子化学計算(1)
CMSI計算科学技術特論B(12) 大規模量子化学計算(1)
 
CMSI計算科学技術特論B(13) 大規模量子化学計算(2)
CMSI計算科学技術特論B(13) 大規模量子化学計算(2)CMSI計算科学技術特論B(13) 大規模量子化学計算(2)
CMSI計算科学技術特論B(13) 大規模量子化学計算(2)
 
200730material fujita
200730material fujita200730material fujita
200730material fujita
 
El text.tokuron a(2019).katagiri
El text.tokuron a(2019).katagiriEl text.tokuron a(2019).katagiri
El text.tokuron a(2019).katagiri
 
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
 
CMSI計算科学技術特論A(15) 量子化学計算の大規模化2
CMSI計算科学技術特論A(15) 量子化学計算の大規模化2CMSI計算科学技術特論A(15) 量子化学計算の大規模化2
CMSI計算科学技術特論A(15) 量子化学計算の大規模化2
 
CMSI計算科学技術特論A (2015) 第14回 量子化学計算の大規模化1
CMSI計算科学技術特論A (2015) 第14回 量子化学計算の大規模化1CMSI計算科学技術特論A (2015) 第14回 量子化学計算の大規模化1
CMSI計算科学技術特論A (2015) 第14回 量子化学計算の大規模化1
 
ソフトウェア自動チューニング研究紹介
ソフトウェア自動チューニング研究紹介ソフトウェア自動チューニング研究紹介
ソフトウェア自動チューニング研究紹介
 
自動チューニングとビックデータ:機械学習の適用の可能性
自動チューニングとビックデータ:機械学習の適用の可能性自動チューニングとビックデータ:機械学習の適用の可能性
自動チューニングとビックデータ:機械学習の適用の可能性
 
CMSI計算科学技術特論B(10) 大規模MD並列化の技術1
CMSI計算科学技術特論B(10) 大規模MD並列化の技術1CMSI計算科学技術特論B(10) 大規模MD並列化の技術1
CMSI計算科学技術特論B(10) 大規模MD並列化の技術1
 
ppOpen-HPCコードを自動チューニングする言語ppOpen-ATの現状と新展開
ppOpen-HPCコードを自動チューニングする言語ppOpen-ATの現状と新展開ppOpen-HPCコードを自動チューニングする言語ppOpen-ATの現状と新展開
ppOpen-HPCコードを自動チューニングする言語ppOpen-ATの現状と新展開
 
CMSI計算科学技術特論A(12) 古典分子動力学法の高速化1
CMSI計算科学技術特論A(12) 古典分子動力学法の高速化1CMSI計算科学技術特論A(12) 古典分子動力学法の高速化1
CMSI計算科学技術特論A(12) 古典分子動力学法の高速化1
 
ppOpen-ATによる静的コード生成で実現する 自動チューニング方式の評価
ppOpen-ATによる静的コード生成で実現する自動チューニング方式の評価ppOpen-ATによる静的コード生成で実現する自動チューニング方式の評価
ppOpen-ATによる静的コード生成で実現する 自動チューニング方式の評価
 

Similar to CMSI計算科学技術特論B(1) スーパーコンピュータとアプリケーションの性能

TokyoR24 - PerformanceRvsC#
TokyoR24 - PerformanceRvsC#TokyoR24 - PerformanceRvsC#
TokyoR24 - PerformanceRvsC#
ta2c
 
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
Makoto Nonaka
 

Similar to CMSI計算科学技術特論B(1) スーパーコンピュータとアプリケーションの性能 (20)

第1回 配信講義 計算科学技術特論B(2022)
第1回 配信講義 計算科学技術特論B(2022)第1回 配信講義 計算科学技術特論B(2022)
第1回 配信講義 計算科学技術特論B(2022)
 
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介
 
TokyoR24 - PerformanceRvsC#
TokyoR24 - PerformanceRvsC#TokyoR24 - PerformanceRvsC#
TokyoR24 - PerformanceRvsC#
 
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
 
[db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ! by 株式会社日立製作所 村上順一
 [db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ!  by 株式会社日立製作所 村上順一 [db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ!  by 株式会社日立製作所 村上順一
[db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ! by 株式会社日立製作所 村上順一
 
「ソフトウェア品質データ分析を通じた組織的改善の促進」ソフトウエアジャパン2014「ITフォーラムセッション」IPA/SEC データの分析に基づくシステム...
「ソフトウェア品質データ分析を通じた組織的改善の促進」ソフトウエアジャパン2014「ITフォーラムセッション」IPA/SEC データの分析に基づくシステム...「ソフトウェア品質データ分析を通じた組織的改善の促進」ソフトウエアジャパン2014「ITフォーラムセッション」IPA/SEC データの分析に基づくシステム...
「ソフトウェア品質データ分析を通じた組織的改善の促進」ソフトウエアジャパン2014「ITフォーラムセッション」IPA/SEC データの分析に基づくシステム...
 
kagamicomput201714
kagamicomput201714kagamicomput201714
kagamicomput201714
 
第64回情報科学談話会(滝沢 寛之 准教授)
第64回情報科学談話会(滝沢 寛之 准教授) 第64回情報科学談話会(滝沢 寛之 准教授)
第64回情報科学談話会(滝沢 寛之 准教授)
 
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
 
[Cloud OnAir] そのデータ、今すぐ分析したくありませんか? クラウドを活用したリアルタイムなデータ分析の方法をお教えします (e-Learni...
[Cloud OnAir] そのデータ、今すぐ分析したくありませんか? クラウドを活用したリアルタイムなデータ分析の方法をお教えします (e-Learni...[Cloud OnAir] そのデータ、今すぐ分析したくありませんか? クラウドを活用したリアルタイムなデータ分析の方法をお教えします (e-Learni...
[Cloud OnAir] そのデータ、今すぐ分析したくありませんか? クラウドを活用したリアルタイムなデータ分析の方法をお教えします (e-Learni...
 
Awamoto master thesis
Awamoto master thesisAwamoto master thesis
Awamoto master thesis
 
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
Optuna on Kubeflow Pipeline 分散ハイパラチューニングOptuna on Kubeflow Pipeline 分散ハイパラチューニング
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
 
MPIによる並列計算
MPIによる並列計算MPIによる並列計算
MPIによる並列計算
 
2019 parentsday
2019 parentsday2019 parentsday
2019 parentsday
 
経済学のための並列分散処理1
経済学のための並列分散処理1経済学のための並列分散処理1
経済学のための並列分散処理1
 
第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)
 
Deep Dive into Spark SQL with Advanced Performance Tuning
Deep Dive into Spark SQL with Advanced Performance TuningDeep Dive into Spark SQL with Advanced Performance Tuning
Deep Dive into Spark SQL with Advanced Performance Tuning
 
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
 
IoTt時代のERPに求められる条件とは2017Mar.
IoTt時代のERPに求められる条件とは2017Mar.IoTt時代のERPに求められる条件とは2017Mar.
IoTt時代のERPに求められる条件とは2017Mar.
 
ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題
 

More from Computational Materials Science Initiative

More from Computational Materials Science Initiative (20)

MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE!の設定
MateriApps LIVE!の設定MateriApps LIVE!の設定
MateriApps LIVE!の設定
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE!の設定
MateriApps LIVE!の設定MateriApps LIVE!の設定
MateriApps LIVE!の設定
 
ALPSチュートリアル
ALPSチュートリアルALPSチュートリアル
ALPSチュートリアル
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE!の設定
MateriApps LIVE!の設定MateriApps LIVE!の設定
MateriApps LIVE!の設定
 
MateriApps: OpenMXを利用した第一原理計算の簡単な実習
MateriApps: OpenMXを利用した第一原理計算の簡単な実習MateriApps: OpenMXを利用した第一原理計算の簡単な実習
MateriApps: OpenMXを利用した第一原理計算の簡単な実習
 
CMSI計算科学技術特論C (2015) ALPS と量子多体問題②
CMSI計算科学技術特論C (2015) ALPS と量子多体問題②CMSI計算科学技術特論C (2015) ALPS と量子多体問題②
CMSI計算科学技術特論C (2015) ALPS と量子多体問題②
 
CMSI計算科学技術特論C (2015) ALPS と量子多体問題①
CMSI計算科学技術特論C (2015) ALPS と量子多体問題①CMSI計算科学技術特論C (2015) ALPS と量子多体問題①
CMSI計算科学技術特論C (2015) ALPS と量子多体問題①
 

Recently uploaded

Recently uploaded (11)

Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

CMSI計算科学技術特論B(1) スーパーコンピュータとアプリケーションの性能