SlideShare a Scribd company logo
1 of 13
Download to read offline
1/13	
ハイパースレッディングの
並列化効率への影響	
東京大学物性研究所
渡辺宙志
2/13	
400万粒子/ノードに固定し、ノード数を増やすウィークスケーリング
1000ステップ計算するのにかかった時間をプロット
@物性研 SGI Altix ICE 8400EX	
観測事実 (1/2)	
オーバーヘッド
3/13	
観測事実 (2/2)	
(1) 粒度が疎、つまり計算時間に比して通信時間が相当
短いはずなのに、ウィークスケーリングで高並列時に
性能が劣化する
(2) 力の計算時間を測定してみると、通信を含まないは
ずなのにプロセスごとに時間がばらついている
(3) 時間のばらつきはプロセス数を増やすと大きくなり、
全体同期により性能劣化を招いている
(4) まったく同じ計算をしても、遅いプロセスは毎回異なる
システムノイズ(OSジッタ)だろうか?
しかしOSジッタにしては影響が大きすぎる
4/13	
調べたいこと	
(1) プロセスの実行時間の揺らぎを精密に調べる
(2) ハイパースレッディング(HT) の並列性能への影響を
調べる
5/13	
HTなし	
 HTあり	
HTなしでは、物理コアひとつにMPIプロセス一つをバインドする。
HTありでは、物理コアが二つの論理コアになるが、
物理コア一つにMPIプロセスを一つバインド。	
計算条件 (1/2)	
HTの有無以外の計算条件は変えない
6/13	
計算条件 (2/2)	
東京大学物性研究所 システムB
SGI Altix ICE 8400EX
CPU: Intel Xeon X5570 2.93GHz
4コア/CPU、2CPU/ノード	
計算資源:
計算条件: カットオフ2.5σのLennard-Jones粒子系
時間ステップ 0.001、数密度: 0.5
粒子数: 50万粒子/コア、 400万粒子/ノード
Flat-MPIによる領域分割
計算コード:http://mdacp.sourceforge.net/
測定日:2011年6月 	
※ HT無効の計算は1ノードから1024ノードまで数点を、
  HTを有効にした計算は、1024ノード、8192コアの一点のみを計算
7/13	
粒子をメッシュに登録	
隣接粒子リストを作成	
力の計算	
位置と速度を更新	
リストはまだ有効か?	
No	
Yes	
領域からはみ出した粒子の処理	
粒子の位置情報を更新	
MPI_Sendrecv
MPI_Sendrecv
MPI_Allreduce
計算アルゴリズム	
※通信は全てブロッキング通信
8/13	
粒子をメッシュに登録	
隣接粒子リストを作成	
力の計算	
位置と速度を更新	
リストはまだ有効か?	
No	
Yes	
領域からはみ出した粒子の処理	
粒子の位置情報を更新	
測定する場所	
計算全体:
このループを
1000ステップ積算
力の計算:
ここだけをステップごと、
プロセスごとに計測
※計算全体は並列化効率の定義のため、力の計算は揺らぎの測定のために調べる
9/13	
Hyper-Threadingの影響	
HTを有効にするだけで並列化効率が
大きく改善(66%→90%)
10/13	
あるステップにおける、プロセスごとの「力の計算」に
かかった時間の累積確率分布	
ほとんどのプロセスの揺らぎはガウス分布に従うが、飛び抜けて遅い連中がいる
→ システムからのノイズ?	
計算時間の揺らぎ (1/3)
11/13	
誤差関数でフィットしてみる
特徴的な時間「τ」
ガウス分布の標準偏差に相当	
HTなし:平均時間 143.785 [ms] 標準偏差 0.29 [ms]
HTあり:平均時間 143.940 [ms] 標準偏差 0.36 [ms] 	
一番遅かったプロセス:
HTなし: 221.543 [ms]
HTあり: 164.009 [ms]	
平均からのずれが256σ	
統計情報からはHTなしの方が優れている(平均も揺らぎも小さい)が・・・	
一番遅いプロセスの実行時間がHTにより大きく改善された	
計算時間の揺らぎ (2/3)
12/13	
計算時間の揺らぎ (3/3)	
各ステップでもっとも計算が遅かったランク番号 (HTあり) 	
ロードインバランスのせいではない (同じペアリストを使い回す間は粒子ペア
数が固定であるにも関わらず、毎ステップ一番遅いプロセスが違うから)
何か構造がありそう。ラウンドロビンで何かやってる?
13/13	
まとめのようなもの	
(1) Hyper-Threading Technologyを有効にすることで 
並列化効率が大きく向上→HTによるスムーズなス
レッドの切り替えが要因?
(2) 揺らぐ時間は80ミリ秒といったオーダー
  → OSジッタとしては大きすぎる
(3) 通信を含まないはずの領域を測定しているのに、計
算時間が大きく揺らぐ
  →通信の後処理が割り込んでいる?

More Related Content

What's hot

組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
 
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)
Hiroshi Tokumaru
 

What's hot (20)

チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
 
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
Android/iOS端末におけるエッジ推論のチューニング
Android/iOS端末におけるエッジ推論のチューニングAndroid/iOS端末におけるエッジ推論のチューニング
Android/iOS端末におけるエッジ推論のチューニング
 
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しようCognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
 
C#で速度を極めるいろは
C#で速度を極めるいろはC#で速度を極めるいろは
C#で速度を極めるいろは
 
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)
 
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
 
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow) UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
templateとautoの型推論
templateとautoの型推論templateとautoの型推論
templateとautoの型推論
 
JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話
 
データモデリング入門-astah*を使って、TMの手法を使う-
データモデリング入門-astah*を使って、TMの手法を使う-データモデリング入門-astah*を使って、TMの手法を使う-
データモデリング入門-astah*を使って、TMの手法を使う-
 
インタフェース完全に理解した
インタフェース完全に理解したインタフェース完全に理解した
インタフェース完全に理解した
 

Viewers also liked

Viewers also liked (10)

短距離古典分子動力学計算の 高速化と大規模並列化
短距離古典分子動力学計算の 高速化と大規模並列化短距離古典分子動力学計算の 高速化と大規模並列化
短距離古典分子動力学計算の 高速化と大規模並列化
 
AVX命令を用いたLJの力計算のSIMD化
AVX命令を用いたLJの力計算のSIMD化AVX命令を用いたLJの力計算のSIMD化
AVX命令を用いたLJの力計算のSIMD化
 
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの
 
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの 〜並列編〜
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの 〜並列編〜短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの 〜並列編〜
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの 〜並列編〜
 
空間分割
空間分割空間分割
空間分割
 
衝突判定
衝突判定衝突判定
衝突判定
 
CMSI計算科学技術特論A(12) 古典分子動力学法の高速化1
CMSI計算科学技術特論A(12) 古典分子動力学法の高速化1CMSI計算科学技術特論A(12) 古典分子動力学法の高速化1
CMSI計算科学技術特論A(12) 古典分子動力学法の高速化1
 
Cedec2015 ゲームサーバー基盤の新しい選択肢
Cedec2015 ゲームサーバー基盤の新しい選択肢Cedec2015 ゲームサーバー基盤の新しい選択肢
Cedec2015 ゲームサーバー基盤の新しい選択肢
 
負の二項分布について
負の二項分布について負の二項分布について
負の二項分布について
 
20150821 Azure 仮想マシンと仮想ネットワーク
20150821 Azure 仮想マシンと仮想ネットワーク20150821 Azure 仮想マシンと仮想ネットワーク
20150821 Azure 仮想マシンと仮想ネットワーク
 

More from Hiroshi Watanabe (7)

Enjoy supercomputing
Enjoy supercomputingEnjoy supercomputing
Enjoy supercomputing
 
CMSI計算科学技術特論A(8) 高速化チューニングとその関連技術2
CMSI計算科学技術特論A(8) 高速化チューニングとその関連技術2CMSI計算科学技術特論A(8) 高速化チューニングとその関連技術2
CMSI計算科学技術特論A(8) 高速化チューニングとその関連技術2
 
CMSI計算科学技術特論A(8) 高速化チューニングとその関連技術1
CMSI計算科学技術特論A(8) 高速化チューニングとその関連技術1CMSI計算科学技術特論A(8) 高速化チューニングとその関連技術1
CMSI計算科学技術特論A(8) 高速化チューニングとその関連技術1
 
MDとはなにか
MDとはなにかMDとはなにか
MDとはなにか
 
Huge-Scale Molecular Dynamics Simulation of Multi-bubble Nuclei
Huge-Scale Molecular Dynamics Simulation of Multi-bubble NucleiHuge-Scale Molecular Dynamics Simulation of Multi-bubble Nuclei
Huge-Scale Molecular Dynamics Simulation of Multi-bubble Nuclei
 
130613-debug
130613-debug130613-debug
130613-debug
 
Tuning, etc.
Tuning, etc.Tuning, etc.
Tuning, etc.
 

Recently uploaded

Recently uploaded (11)

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

ハイパースレッディングの並列化への影響