計算科学技術 特論ＢËįIĦƔƽǉơǏƦǇǍƁuÝċ6ǕĦħĤ,uÝċ6Ĩ
2016年4月14日
国立研究開発法人理化学研究所
計算科学研究機構�運用技術部門
ソフトウェア技術チーム�チームヘッド
南�一生
minami_kaz@riken.jp
RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE÷ÛƁè• ƨǏƸǏƢǍƺǆǏƫžƔƽǉơǏƦǇǍƁuÝĦ
• ƔƽǉơǏƦǇǍƁuÝċ6ĮħĤ,uÝċ6ĨĦ• ƔƽǉơǏƦǇǍƁuÝċ6įħķŁń8uÝċ6ĨĦ• ƔƽǉơǏƦǇǍƁuÝċ6Ɓ]ĮĦ• ƔƽǉơǏƦǇǍƁuÝċ6Ɓ]į

2016年4月14日 計算科学技術 特論Ｂ




• #
• ;FK>O@IN5•  3#• 5GCLDB<
eqn:

2016年4月14日 計算科学技術 特論Ｂ;r¦

2016年4月14日 計算科学技術 特論Ｂ#e*¦žĈÈÄjcKƁƌũſǖ !ƁĠNŽs*ÄjƒìůžŴƏǓĦǙ¯e*Že*6ŴƏžÞ*ÞþƁe*¯žFƎƁİŻƁe*¯ƁjŭŽŮƏǓ
C1,3u1 + C1,4 u2 + C1,5u7 = α 1①の差分点について

C2,2u1 + C2,3u2 + C2,4 u3 + C2,5u8 = α 2②の差分点について・・・・・・・・・・

C16,1u10 + C16,2u15 + C16,3u16 + C16,4 u17 + C16,5u22 = α 16 ⑯の差分点について・・・・・・・・・・#ČŽİį¯Ɓe*¯ŭYMŴƏƁŽİį!ƁĈÈÄjžſƏǓĦ
ųŸŭźż!Ɓs*ÄjƂǒe*6ƀƌƎƁƌũſĈÈÄjƒìů ƀf¿ŲŵƏ ŭŽŮƏǓ

Ax = b
2016年4月14日 計算科学技術 特論Ｂ;r¦Ɓß¼ſøö
ĵƒ?ƁƌũƀŮ¾ŴǓļĦƂ8ä,Ǔ

Ax = b
A = I−BŗƒŖƀ"ųµŴƏǓ(I − B)x = b

cƁƌũſĈÈÄjƒÜŪƏǓ

x = Bx + b
0

1

2

・・・①
・・・②
・・・③

3

x ,x ,x ,xŘƒ®ŸŴƾƟưǊƁ,ǚŤŤŤŤŤŤŤŤŤŤǎǎǎ
ƒÜŪƏǓx (m+1) = Bx (m ) + b ・・・④űűŽřƁĀƁĕƒ=ƐƃŚƁƌũƀſƏ

lim m→∝ x (m+1) = Blim m→∝ x (m ) + b・・・⑤ĕƾƟưǊƒœžūŰƃŚƂśƁƀſƏx = Bx + b・・・⑥

śƂŘž#ůCžſƏǓŻƆƎĈÈ ÄjǚŖƒìů Ƃřƒ®ŸŴƾƟưǊƁ,ǚŤŤŤŤŤŤŤŤŤŤǎǎǎŤƒéŻŰƏ
ƀf¿ŴƏǓ
x 0 ,x1 ,x 2 ,x 3
2016年4月14日 計算科学技術 特論Ｂ



A;r¦
x (m+1) = Bx (m ) + b ・・・④řƒìůŸƉƁ;r¦ƀŻŨżôŴƏĵƂ¡/ǒĵƁ`ëèÑƂ#żĭŽſŨçÑŽŧƏž\ŴƏǓìůƅŮÄj

Ax = k・・・⑦ĵƒŝƁƌũƀSlǓĸƂĵƁ`ëw*ƁƇƁä,ǓĹƂĵƁ´Ûëä,ƁÊ@ƒSŪŸä,ǓĺƂĵƁ´Ûëä,ƁÊ@ƒSŪŸä,Ǔ

A = D−E−F・・・⑧

Dx = (E + F)x + k・・・⑨ŝƒŜƀ"ųŞƒqƏ

x (m+1) = D −1 (E + F)x (m ) + D −1kŞƒřƁ;r¦ƀŴƏžşƒqƏǓĦ
n
űƁ;r¦ƒ¯ǅƢƹ¦žŨũǓĦ
(m+1))
aii xi= − ∑ aij x (m+ kj%¼ƀƂŠƁíÎ¦žſƏǓĦ
jj=1¨½ŴƅŮƂħōĩĮĨƁìƒqj≠iƏŸƉƀħōĨƁìųŬ¸ųſŨ¯ŽŧƏǓ
n
⎛a ⎞
k

・・・⑩

・・・⑪

)
xi(m+1) = − ∑ ⎜ ij ⎟ x (m
+ i
j
aii
j=1 ⎝ aii ⎠j≠i

2016年4月14日 計算科学技術 特論ＢA;r¦(D − E)x = Fx + k ・・・⑫ŞƒšƁƌũƀSlŴƏǓ
šƒřƁ;r¦ƀŴƏžŢƒqƏǓĦ

(D − E)x (m+1) = Fx (m ) + k ・・・⑬

űƁ;r¦ƒ¯ƜƗƨǎƥƖƯǊ¦žŨũǓĦ
i−1

n

j=1

j=1+1

)
aii xi(m+1) = − ∑ aij x (m+1)− ∑ aij x (m+ k j ・・・⑭jj%¼ƀƂţƁíÎ¦žſƏǓĦ
¨½ŴƅŮƂħōĩĮĨƁìƒqƏŸƉ
ƀħōĩĮĨƁëä,ƒ¸ųżŨƏ¯ŽŧƏħǉƛǋǍƨƁº·ĨǓĦ?KƁƌũƀĪĦŋƒ\ÛŴƏƁƀŋīĮƁƒ:°ŴƏƢǏƯƕǍƠƂKƁƌũſ:°ĒžſƎĪǉƛǋǍƨħIf:°Ĩŭº·ųżŨƏǓǉƛǋǍƨŭŧƏžĪĦŋƀŻ
ŨżƂYĒŭŧƎ,(µŭŽŮſŨǓ

2016年4月14日 計算科学技術 特論Ｂ

do i=1,nx(i) = a(i)* x(i − 1) + b(i)A;r¦ǅƢƹ¦ƋƜƗƨǎƥƖƯǊ¦ƂǄƭƦǆƁíÎğhƒSųżƊ<ŴƏ ŭZ¼
ƀïŲƐżŨƏǓĦ
ƜƗƨǎƥƖƯǊ¦ƚǉƧƲǊƁíÎğhƂ0ƿǏƧƁƌũƀǉƛǋǍƨƁŸƉƀ,
6ŽŮſŨǓĦ
ŶűŽħņĨƁƶƖƷǏƽǋǏǍ¦ƋħŇĨƁłĹĸīĶľĵķĽ¦ƒ¸ŨǊǏƽ&ƁǉƛǋǍƨ
ƀƌƏYĒƒſůŴťĦ
YĒƒſůŴ Ž0I÷ÛƁƌũƀƶǏƱƗƘƔƁ,íÎƒŨĤĆƀ
íÎ>ÝžſƏǓƆŸ,6ŶƁƊƁƀƊ¸>ÝǓ(a)オリジナルスイープ

参照関係
計算順序(スイープ順序)(b)ハイパープレーンスイープ

ƉƁƶƖƸǏƽǋǏǍ&ƂǉƛǋǍƨŭſŨǓĦ
ƶƖƷǏƽǋǏǍđƁƇƀǉ
ƛǋǍƨŭº·Ǔ(c)RED-BLACKスイープ

ĥžěƁǖŻƁǊǏƽƀ'wŴƏǓĦŶƐŷƐƁǊǏƽ&ƂǉƛǋǍƨŭſŨǓ

2016年4月14日 計算科学技術 特論Ｂ$n5č¦ħķĻ¦ĨŖƁį ƁĒƒÜŪƏǓĦ
űƁĒƁaHĢƒìůŸƉƀŊħœĨƁ
s*ƒ=ƎĭžūůǓĦ
ŗƌƎŖƁaHĢƒìů ŭŅœĴņƁìƒqƏ žCÌŽŧƏűžŭ*ŬƏǓĦîžCſ ƒU !ƁƾƟưǊŽäũǓĦ
ŖžCÌſĒžųżŘƒÜŪƏǓĦ
Řƒw*ŽîŴƏžřƁƌũƀſƏǓĦ

1 2
ax − bx
2・・・①

f '(x) = ax − b = 0・・・②

f (x) =

1
f (x) = (x,Ax) − (b,x) ・・・③
2
n
1 n n
f (x) = ∑ ∑ aij xi x j − ∑ bi xi ・・④
2 i=1 j=1
i=1
∂ f (x) 1 n
1 n= ∑ aik xi + ∑ akj x j − b・・⑤
k
∂xk
2 i=1
2 j=1

řƒœŽ s*ŴƏžŚƀſƏǓĦ
ä,ĵƁ`ÃuƒŨǔžūůűžƀƌƎś
ŭqƍƐƏǓĦ
∂ f (x) nśƂĈÈ ÄjŜƁw*åÂŽŧƏǓĦ ∂x = ∑ aki xi − bk = 0kųŸŭźżŘƁaHĢƒìů ÄjŜƒìůűžžſƏǓ
2016年4月14日 計算科学技術 特論Ｂ

ŭĈÈ



・・・⑥

i=1

Ax = b ・・・⑦

$n5č¦ħķĻ¦ĨķĻ¦ƔǊƣǉƩǃƁOlƒcKƀÂ
ŴǓĦűƁƀáŦſƔǊƣǉƩǃƁª·lŭŧƏǓĦŘjƁŊħœĨŭaŭqƍƐƏƌũƀ
œŋƁ,ƒ¤ƉżäůǓĦ
ŐŋĦƂ¢eƾƟưǊŽŧƎ Ũƀ¾ ų
³ÈŽŧƏűžŭïŲƐżŨƏǓĦ
ųŸŭźż¢eƾƟưǊƂŀ!ƁĈÈÄjƀƂŀųŬYMųſŨǓĦ
ķĻ¦ƒũžŀ!ƁĈÈ ÄjƂĤŦŀIƁ;rŽ<ŴƏǓĦƆŸĵƁLŭØĎųżŨƏŬ_ĘųżŨƐƃ<ŭĆůſƏuûƒzŻǓĦ
2016年4月14日 計算科学技術 特論Ｂ0(µŮ$n5č¦ħķĻ¦ĨĵƀāŨ¡`Ãä,ĳĿƒÜŪƢǋƨƝǏ*ìŴƏǐŖjǑǓĦ
űűŽŗƁƌũſœƁÚŮŪƒäũǓĦ

M = UT U

・・・①

x! = UxűƐƒźżƊžƁĵœĴņƒSlŴƏǐŘřjǑĦ

・・・②

AU −1x! = b

・・・③

U −T AU −1x! = U −T b = b! ・・④űűŽŚŽÚŮŪŸĵƁuûƒƇżƇƏǓĦ
!
・・⑤
U −T AU −1 = A
ĿƂśƒ®ŸŴƁŽŖƌƎŜƒ®ŸŴǓĦA≈M
A ≈ UT U

・・・⑥

・・・⑦

ŚƀŜƒċ¸ŴƏžŝƒƇŸųÚŮŪŸĵ U −T AU −1 ≈ U −T (U T U)U −1 = I ・⑧
ƁuûƂ8ä,ƀāŨűžŭ*ŬƏǓĦųŸŭźżŞƀƌźżÚŮŪŸä,ĵƁLƂĮƁFƎƀ_ĘųżŨƏƊƁžÜŪƍ
ƐƏĦÚŮŪŸä,žƾƟưǊƀ`ŴƏĈÈÄjǚşƁ<ƂŨƊƁžoŽŮƏǓ

2016年4月14日 計算科学技術 特論Ｂ! = U −T AU −1
A! x! = b!
A

・・⑨
・・・⑩

0(µŮ$n5č¦ħķĻ¦Ĩ
[#ƢǋƨƝǏ*ìƀƌƏ0(µķĻ¦ƔǊƣǉƩǃƁOlƒKƀÂŴǓĦ[#ƢǋƨƝǏ*ìƂ!Ɓä,èÑƁÚƁƇƒíÎŴƏǓĦ
ǔèÑƀ`ŴƏƻƕǊƖǍƂíÎųſŨǓĦ
íÎƂä,ƾƟưǊÆǎƾƟưǊƨƛǈÆǎƾƟưǊƁGǎ&ÆǎĖÎŽw
1.ICCG法のアルゴリズム
ŲƐƏǓĦü×ŽÂųŸ0(µČ*Ƃ0ĉ"ǎpă"ŽíÎŲƐƏǓ
ステップ1:

αk = (rik •(LL T )−1 rik )/(Apik • p ik )ステップ2:

xi = xi +α pi

ステップ3:

ri k+ 1 = ri k − αk Apik

ステップ4:

β k = (rik+1 •(LLT ) −1 rik+1 ) /(ri k •(LLT ) −1 rik )ステップ5:

pi = (LL ) ri + β pi

2016年4月14日 計算科学技術 特論Ｂ

k+ 1

k+ 1

k

k

k

T −1 k+1

k kƔƽǉơǏƦǇǍƁĦ
uÝċ6

2016年4月14日 計算科学技術 特論Ｂ¾¤Bĝĝĝĝĝĝĝĝĝ¾¤{B
6ãÀD

ÇŀVEĿ!ħŎě
ŋıģşƊŭŕƈŜ

Çx¥
DO)

ŻƇŜƃž

ßh)

5FM=JHN=#$AE?N:, %•ŻƇŜƃž[

•

şƈŶŖƅ
ŭŵŪŜ
ŻƇŨśšƂƈRUN
ŜƃţŕŪśţ

½Å
ŻƇŜƃž

şƈŶŖƃ

¨tŁ¼Õ
Çj[
Á
2016年4月14日 計算科学技術 特論ＢƔƽǉơǏƦǇǍƁý
,uƒkŮ)ŴĦ
ƽǌƪƭƤƁ8uÝƒkŮ)Ŵ

ÙƉE²;ŴƊůŗŘŔå#)Ɖ
åW¬şƊŭŕƈŜ

šţŬžÒ

24¾¤Bĝĝĝĝĝĝĝĝĝ¾¤{B
6ãÀD

ÇŀVEĿ!ħŎě
ŋıģşƊŭŕƈŜ

Çx¥
DO)
ßh)

ïî²æŁŻƇŜƃž

•ŻƇŜƃž[

•

şƈŶŖƅ
ŭŵŪŜ
ŻƇŨśšƂƈRUN
ŜƃţŕŪśţÁ
2016年4月14日 計算科学技術 特論ＢƔƽǉơǏƦǇǍƁý
,uƒkŮ)ŴĦ
ƽǌƪƭƤƁ8uÝ
ƒkŮ)Ŵ
½Å

ŻƇŜƃž

¨tŁ¼Õ
Çj[

5FM=JHN=#$AE?N:, %şƈŶŖƃÙƉE²;å#)Ɖ
åW¬şƊŭŕƈŜ
ŴƊůŗŘŔ
šţŬžÒ

24

ƔƽǉơǏƦǇǍƁuÝċ6ƁƨƮƭƽ

3.1
1.

2.

#W
!s

å#)
řƊŲƅ
Á

4.
åW¬)£
Eµ

3.2

5.
E{ļŁ
ũƁƊűƈŜ

,W¬
4£D

2016年4月14日 計算科学技術 特論Ｂ,²u*ǎƛǏƴǊð

3.1
1.
#W
!s

2.

å#)
řƊŲƅ
Á

åW¬)£
Eµ

3.2
,W¬
4£D

2016年4月14日 計算科学技術 特論Ｂ

4.



5.
E{ļŁ
ũƁƊűƈŜ

(1)şƊůŁxÑŒ!sįŀĹĶźƇŪś(¾¤/Ï)ŀ!&(2)şƊůŁE²oÚŁE(3)ŻƇŜƃžŦƊţşƊůŁÆu(4)źƇŪśŁGŒ_e(5)¾¤źƇŪśŁ¾¤W_e(á#/C#/Ó!#ĞNŀ/N**2ŀ¢)(6)ÏźƇŪśŁÏW_e (ŜƇƊŵƅÏƉÞdÏĞÞdâŀ&ÞdÏ/¡ŀĞ¢)1. #W!s(xÑ!sƉźƇŪśW!s)

Ēĉďēø
ėęĊù
ėęĊú
ėęĊû
ûăƅƊŻ
ėęĊü
ï

E²oÚæ æ¤ƉÏ ¤ƉÏƉţŝƊƃ G W¸¡ŎŷƄŬŕźƇŪśïæ
ĝè¾¤éÓ!# Ăŀ

ïíï
ûăƅƊŻ
ðæ
źƇŪśðæ
æ
ĝè¾¤éæ
ðíï
3
ĝèÏé
Ïï
ėęĊýæ

řƊæ
Ųƅ

C# ĂêêñŀĜÞdÏ Þdâŀ

Ĝ

źƇŪśñ

ėęĊþ

(1)¾¤ƉÏźƇŪśŀĺģĻGƉşƊŭŕƈŜŁÁŒ²ģ3 Ł¾¤ƉÏźƇŪśŒÁįĿŏ äŁ¾¤ƉÏźƇŪśŒřƊŲƅŁ¶ĽįĻģ ı(2)#W!sŁ¨tħōTĶ6ã¹zŀHıŏAWŁY9ŒŀŧƊŞŪŮ6ãE
²oŀĞŇĶå#E²oŀřƊŲƅĽĿŏ¾¤ƉÏřƊŲƅŒģ ıæ
18

2. řƊŲƅÁ
2016年4月14日 計算科学技術 特論ＢźƇŪśŁE²oÚĽţŝƊƃŷƄŬŕÁ()→SrŁÁłŠźƅƊũƈƉÛi¢ŁÁĨ>ģ→ŠźƅƊũƈƉÛił°ğĿ:\ļ5ŃŐŏĶŉ|įģÁĨļĩĿģ

LM+MSD法における測定区間毎のスケーラビリティ
全体

10.0

evolve_WFs_in_subspace

スケーラビリティ 
m_ES_Vnonlocal_W 
betar_dot_WFs 

modified_gram_schmidt 
m_XC_cal_potential
m_FFT_WF

1.0
128

2016年4月14日 計算科学技術 特論Ｂ

256

並列数


512

1024

,²u*ǎĤ,6

3.1
1.

2.

#W
!s

å#)
řƊŲƅ
Á

4.
åW¬)£
Eµ

3.2

5.
E{ļŁ
ũƁƊűƈŜ

,W¬
4£D

2016年4月14日 計算科学技術 特論ＢƔƽǉơǏƦǇǍƒĤ,uƒðŴƏŸƉƀƂǛ
ü *!Ŀ#MŒTŏ#)]Œcıŏæü á#Ó!ŒpI)ıŏæü ÏoÚŒpI)ıŏæ
ü ƇƊůŖƈŵƃƈţŒ ĮĿģ-Ɓ,²u*ƁƻƘǏƩĦ
ūƌƄĤ,6ƁƨƮƭƽŽĦ
ƔƽǉơǏƦǇǍƁĤ,ƒē^ŴƏĦèJƒ©Ũ)Ŵ ŭĎèĦ2016年4月14日 計算科学技術 特論ＢÉå#ŒaįĶ:2ŁZ−źƇŪśŀŒÁıŏn á#ÓĨ}ĹĻģĿģħƖ}ĹĻģŏ:2ŀ6ãĿģħƖ
n ÞdÏoÚĨÉå#oŀľŐĪōģŁ&2Œ-ŉŏħƖn ?8ÏoÚĨÉå#oŀľŐĪōģ<?ıŏħƖæ
n ƇƊůŖƈŵƃƈţĨÉå#oŀX)įĿģħƖĭŐōŁÁĨÖ·

2016年4月14日 計算科学技術 特論Ｂ



ストロングスケール測定ǕƵǏƱ#ƁHĢêƒ\ƀųż­\ŴƏ¦ǓĦűűŽƂİŔİŔĮĭŭ#ƁHĢêǓĦǖƵǏƱǖƵǏƱ*1ŽƂǕƵǏƱŧŸƎƁHĢê
ƂİŔİŔıžſƏǓĦ
ĮĭƵǏƱ*1ŽƂǕƵǏƱŧŸƎƁHĢ
êƂįŔįŔįžſƏǓĦ
HĢƒǕÅģƐƃàŨƁŽ­\Ƃ
ŽŧƏǓĦ

ĮĭƵǏƱ

,Ɓ{4ƂéŪƀůŨǓĦ

2016年4月14日 計算科学技術 特論Ｂウィークスケーリング測定
ǕƵǏƱ

ǖƵǏƱ

ĮƽǌƪƭƤŧŸƎƁHĢêƒ\ƀųż­\ŴƏ¦ǓĦűűŽƂİŔİŔıŭĮƽǌƪƭƤŧŸƎƁH
ĢêǓĦǖƵǏƱ*1ŽƂ#ƁHĢêƂİŔİŔĮĭžſƏǓĦ
ĮĭƵǏƱ*1ŽƂ#ƁHĢêƂĲŔİŔįıžſƏǓĦ
HĢƒçƏtèŭ­\Ƃ±ęŽŧƏǓŸŹų,Ɓ{4ŭéŪŨǓĦ

ĮĭƵǏƱ


2016年4月14日 計算科学技術 特論Ｂ

Éå#ŒaįĶ:2ŁZ−źƇŪśŀŒÁıŏn á#ÓĨ}ĹĻģĿģħƖ}ĹĻģŏ:2ŀ6ãĿģħƖ
n ÞdÏoÚĨÉå#oŀľŐĪōģŁ&2Œ-ŉŏħƖn ?8ÏoÚĨÉå#oŀľŐĪōģ<?ıŏħƖæ
n ƇƊůŖƈŵƃƈţĨÉå#oŀX)įĿģħƖĭŐōŁÁĨÖ·ŶƁŸƉƀ
2016年4月14日 計算科学技術 特論Ｂストロングスケールとウィークスケーリング測定を使う
n ŧƊŞŪŮ6ãŒŉŏn ƐŻƇťŪŠŁ6ã¹zĨŧƊŞŪŮ6ãĽ3MĽĿŏŇļłĞţŮƇƈŜţ
ŝƊƄƈŜļE²oÚƉƇƊůŖƈŵƃƈţƉÞdÏoÚƉ?8ÏoÚŒDƉÁıŏ(100ħōi#Ňļ)n ¿ŊŗŕƊśţŝƊƄƈŜļļĩŐŃĿĦ¯ģæn ¿ŁDƉÁļ6ãĨqŐŃ¼ıŏn 6ãĿīŐŃ#MŒĬĻŗŕƊśţŝƊƄƈŜļ?¹z#Łb(Œ
Dıŏ
ţŮƇƈŜ
ţŝƊƅ
ŗŕƊśţŝƊƅ

E²
oÚ

1ŻƇťŪŠŁ6ãŁ?ĩĮŒŧƊŞŪŮ6ãŁ?ĩĮŀ2őĳŏ

#i

2016年4月14日 計算科学技術 特論Ｂ

?¹z#ŁŗŕƊśţŝƊƄƈŜÁn 0¬ĿE²;Œį100M/1000M/i+MĽ~ÝŒÎĹĻļĩŏķīåģ#Mļ#W¬ŒÄıŏ(ŗŕƊśţŝƊƄƈŜD).
n ŗŕƊśţŝƊƄƈŜĨàįģŊŁŊĢŏĨ rŏķīDįĶģ. àįģ:2łƎ¤oÚŒſŭƅ)įĻEĽſŭƅĽŁ­ŒÁıŏ.

¾¤ŁźƇŪśŀEl

á#ÓŁÁ¤oÚ¤oÚĨ<?įĿģħÄƏ¤oÚĨ<?ıŐŃá#ÓĨ}ĹĻģŏ

?8ÏoÚŁ&2ł®ŀ<?ıŏíæ
Ï×ƉÏ7iŒÄıŏ ļ<?Ł&2Œ¸wŉŏíE²oÚ?8ÏoÚ

ÞdÏoÚ

ÏoÚŁÁÞdoÚŁ&2Ľ<?įĿģħÄíæÏŁkĨXģĽÞdÏoÚĨ<?ıŏí

#i
2016年4月14日 計算科学技術 特論Ｂorbitals was supposed to increase as the number of parallel tasks
in orbitals increased. The number of MPI processes requiring
communications for the parallel tasks in orbitals, however, wasactually restricted to a relatively small number of compute nodes,
and therefore, the wall clock time for global communications of
the parallel tasks in orbitals was small. This means we succeeded
in decreasing time for global communication by the combination

manually decreased by 12% compared with the computation time
for the usual data replacement operations of the L1 cache. This
DGEMM tuned for the K computer was also used for the
LINPACK benchmark program.

5.2 ScalabilityţŮƇƈŜţŝƊƄƈŜķīľţŝƊƅŒſŭƅ)įĶ

We measured the computation time for the SCF iterations with

(a)

(b)

400.0

160.0
theoretical computation

theoretical computation
computationadjacent/space
global/space
global/orbital

computation
global/space

120.0

global/orbital

Time per CG (sec.)

Time per GS (sec.)

300.0

wait/orbital

200.0

80.0

40.0

100.0

0.0

0.0
0

20,00040,00060,000

Number of cores(c)

0

80,000

40000

60000

80000

Number of cores

(d)

200.0

300.0

150.0

theoretical computation

theoretical computation

computation

computationadjacent/space

adjacent/space

global/space

Time per RotV/SD(sec.)

Time per MatE/SD (sec.)

20000

global/orbital

100.0

50.0

global/space
global/orbital

200.0

100.0

0.0

0.0
0

20,00040,000
Number of cores

60,000080,00020,00040,000
Number of cores

60,00080,000Figure 6.特論Ｂ
Computation and communication time
2016年4月14日 計算科学技術
 of (a) GS, (b) CG, (c) MatE/SD and (d)RotV/SD for different numbers of cores.

8uÝDÍ¥\

3.1
1.
#W
!s

2.

å#)
řƊŲƅ
Á

åW¬)£
Eµ

3.2
,W¬
4£D

2016年4月14日 計算科学技術 特論Ｂ

4.



5.
E{ļŁ
ũƁƊűƈŜ

řƊŲƅŁ"ŎįĽW¬4£ŁÂ²íÎƛǏƴǊƁ+Ǝ)ųŕíÎƛǏƴ
Ǌƒ³ÈſƮƨưƽǌƠǈǃžųż+Ǝ)ŴĬĦuÝDÍƁñäŕ+Ǝ)ųŸƮƨư¶Qƒ¸ųŦſuÝDÍƒñäŴƏĬĦuÝDÍƁðǎ¥\ŕñäÕƒðųuÝDÍƁƒÍ\ŴƏĬĦďéÆƎŕuÝDÍƒ] ųŸPBƁƢǏƱ#ƀmĝŴƏƒ©Ũ)ŴĬĦ
ŶƐƍƒ]ƒéÆƏĬĦ

ųŸPBƁďŶƐƍƒðųÓ¼ƀ|¸ŴƏƒ¥\ŴƏǓ
2016年4月14日 計算科学技術 特論Ｂ

Ł:2ŁúĄćW¬åÐ)^³
SPARC64TM VIIで実装した技術を拡張ĈĀąĀāĄøúĆ

コア

演算器

CPU

・・

演算器

ハードウェアSPARC64™ VIIIfx
新規技術

演算器

ąĀāû

・・
バリア同期
レジスタ・・ レジスタ レジスタ

(Iiæ
ƆŢţŧ`P・・

共有キャッシュ

ťśŧæ
ŚƀŪšƁ

メモリ
➔     
2016年4月14日 計算科学技術 特論ＢÿĄúìøúü
科学技術計算を高速で処理するための拡張命令セット

ĤuÝ6Í]æǎ]ŽƁƬǆǏƳǍƠ
3.1
1.
#W
!s

2.

4.

å#)
řƊŲƅ
Á

åW¬)£
Eµ

3.2

5.
E{ļŁ
ũƁƊűƈŜ

,W¬
4£D

åW¬)£EµE{ļŁũƁƊűƈŜ

å#)ŁH£ŒElįĶşƊůŀHįĻ£DįĶ,W¬4£ŒEµıŏæòŇļElĮŐĶşƊůŒĮōŀE{ŀËĳĻĽįĻũƁƊűƈŜıŏææ(1)D
ƉE{ļ#W¬/,W¬ŒDıŏ.
(2)6ãģ į
Ɖ#W¬/,W¬ŁĴŐĵŐŀĺģĻĝ6ãŒģ ı.
(3)6ã¼Ɖģ ĮŐĶ6ãŁ¼££D
Ɖ¼£ŁEµÀ¾ƉŻƇŜƃŽƈŜƉŭŵŪŜvļĢŎvKiŀł?ĩĿvĽĿŏ

2016年4月14日 計算科学技術 特論Ｂ

Ï8ſ]

2016年4月14日 計算科学技術 特論ＢŤĽīőŇŎŏŉ
ŻƇŜƃžxÑŒŀňĻ¼Œ'īŏūƊƅƏæ
ýĔĖĘĖĉē÷î/ńýĔĖĘĖĉēõõĨHÈƏæ
ŻƇšƊŢƀ5ń įëƅƊŻë!
Jŀ ´ĮŐŏŻƇŜƃžŁxÑŁ0º)Œ²ĤƏæĠ ġŻƇŹœŖƅŭƊŧŀHUįĶ(¼sY9Ŋ´0¬ƏæŻƇŜƃžxÑ¼sgfūƊƅƏ

2016年4月14日 計算科学技術 特論Ｂ

ŀŁĶĦĿĻƒ¸ųŸìŀŁĶĦĿĻħǁǊƬƠǉƭƱ¦ƀƌƎĈÈ ÄjĦƒìůƾǍƬǁǏƟƮƨưƽǌƠǈǃĨ
ĈŠŖśƅżƅũŜƄŪů
ŹœŖƈŜƄŪů

şƊŤŜƄŪů
2016年4月14日 計算科学技術 特論ＢŀŁĶĦĿĻƒ¸ųŸìŀŁĶĦĿĻħǁǊƬƠǉƭƱ¦ƀƌƎĈÈ ÄjĦƒìůƾǍƬǁǏƟƮƨưƽǌƠǈǃĨ
ĿĻƁƔǊƣǉƩǃĦ
Au ĦŤŤ
= f ƒìů

ĈŠŖśƅżƅũŜƄŪů

ŹœŖƈŜƄŪů

Ak+1uk+1 = rk+1

%Ü¶Ú

rk+1 = fk+1 − Ak+1uk+1

fk = Rk+1→k fk+1
fk−1 = Rk→k−1 fk

uk+1 = Rk→k+1uk

fk−2 = Rk−1→k−2 fk−1

Ak uk = rk Ì¼¼
rk = fk − Ak uk }L¾¤

f1 = R2→1 f2

uk = Rk−1→k uk−1 NØ¶ÚşƊŤŜƄŪů
2016年4月14日 計算科学技術 特論Ｂ

A1u1 = f1ƔƽǉơǏƦǇǍƁćƁõħèĨ
èïé ¾ŁţŧƊŮĽţŮŪŻŀèðé ©ŎÍįƅƊŻŀææèñé ĒĎñĕŠźƅƊũƈŀæèòé żŖŰţk4ŁƅƊŻļŨŗƈ
ŠŖśƅĽæèóé %Ü¶ÚƅƊũƈĽæèôé ŨŗƈŠŖśƅRŁÌ¼¼
Ľæèõé Żƃţk4ŁƅƊŻļŔŪŻŠ
ŖśƅĽæèöé NØ¶ÚĽæè÷é }L¾¤ĽæèïîéŔŪŻŠŖśƅŁÌ¼¼
2016年4月14日 計算科学技術 特論ＢƔƽǉơǏƦǇǍƁćƁõħÁóĨrprj3:制限補間
rprj3:制限補間
rprj3:制限補間
callcallrprj3(r(ir(k)),m1(k),m2(k),m3(k),r(ir(j)),m1(j),m2(j),m3(j),k)
rprj3(r(ir(k)),m1(k),m2(k),m3(k),r(ir(j)),m1(j),m2(j),m3(j),k)call
rprj3(r(ir(k)),m1(k),m2(k),m3(k),r(ir(j)),m1(j),m2(j),m3(j),k)
subroutine
rprj3(
r,m1k,m2k,m3k,s,m1j,m2j,m3j,k )))subroutine
rprj3(
r,m1k,m2k,m3k,s,m1j,m2j,m3j,ksubroutine
rprj3(
r,m1k,m2k,m3k,s,m1j,m2j,m3j,kèïé ĖĕĖĐñŒÆuŁ¨t%Ü¶ÚĽ$mæèðé ŹœŖƈŜƄŪůħōşƊŤŜƄŪůŅŁ
mi(1,k),mi(2,k),mi(3,k)
lt=lt_default=9
lt=lt_default=9
lt=lt_default=9¶ÚŒÄįĶædo k = lt,1,-1
do k = lt,1,-1 èñé ĒïĐëĒðĐëĒñĐłĒïëĒðëĒñŀ¨2æ
do kdo= lt,1,-1
ax = 1,3

mi(1,k),mi(2,k),mi(3,k)
mi(1,k),mi(2,k),mi(3,k)

kk

j

j

do ax = 1,3mi(ax,k)・・
do ax ==1,3
mi(ax,k) = ・・mi(ax,k)==・・・・
mip(ax,k)
mip(ax,k) = ・・
mip(ax,k) = ・・
enddo
enddoenddo
enddo
enddo
enddo

k

èóé ĴŁ ĝďēĘčĖĕèNØ¶ÚéëĖčėďČè}L¾¤ƍëĕėďēĚƌÌ¼¼éĽÄæ

j

setup

m1,m2,m3はプロセス分散されている

setup
setup

m1,m2,m3はプロセス分散されている
m1,m2,m3はプロセス分散されている

2016年4月14日 計算科学技術 特論Ｂèôé ĖĕĖĐñŁƅƊŻxÑÆuæèõé ĒñĐëĒðĐëĒïĐŁƒÖƅƊŻxÑ

ƔƽǉơǏƦǇǍƁćƁõħÁóĨèïé ĕėďēĚŁƅƊŻxÑÆuæèðé ēñëēðëēïŁƒÖƅƊŻxÑæèñé ēïëēðëēñłĒïëĒðëĒñŀ¨2

2016年4月14日 計算科学技術 特論Ｂèïé ĖčėďČŁƅƊŻxÑÆuæèðé ēñëēðëēïŁƒÖƅƊŻxÑæèñé ēïëēðëēñłĒïëĒðëĒñŀ¨2ƔƽǉơǏƦǇǍƁćƁõħÁóĨèïé ďēĘčĖĕŁƅƊŻxÑÆuæèðé ĒĒñëĒĒðëĒĒïŁƒÖƅƊŻxÑæèñé ĒĒïëĒĒðëĒĒñłĒïëĒðëĒñŀ¨2èïé ·ƓŠźƅƊũƈĽŊ×łĒïëĒðëĒñŁ?ĩĮŀAįĻģŏƏæèðé ĒïëĒðëĒñŁ!&łľĤĿĹĻģŏħƖæ

2016年4月14日 計算科学技術 特論ＢƯǏƫ*1Ɓõèïé ĒïŁF½ƉDªƉ.ŀĺģĻÆņŏèïé ėčĘęĕŠźƅƊũƈļÔ#ƕĒďĝħō
ĮŐĻģŏèïé ėčĘęĕŁÃQÓŀŢƀƈŻıŏ

2016年4月14日 計算科学技術 特論ＢƯǏƫ*1Ɓõèïé ėčĘęĕŁÔ#ƕĒďŒÆņĶ¨tƎŻƇťţ!&ĮŐĻģŏ
Ĩ$m

2016年4月14日 計算科学技術 特論ＢƨơǏǈƹǉƮƕƁõèïé ƓŻƇťţŁDƏŗŕƊśţŝƊƄƈŜD4532
+"6)*(!"%
 *!(*&' 6&('",(*66 *!(*&' 6
6666
66666666*( ++6
6666
6666666666666%)+ +666666+ *+66660+, &+666666666%%
6666
6666666666666666  66666  66666666666666666666666%%666666666666666666  666666  666666666666666666666* +"6
66666666666666666
666666 66666666666666666 6666"', *)666666666666666666  666666  666666666666666666666)+"'.6
66666666666666666 666666 66666666666666666 6666*)*# 6

·ŁčđĉĕėoÚæ
ļïõėčċ

BL L I B
IF L BPBI

6)*(!"%
1KKGF
F I
KBL L I B
IF LMŻƇťţŁƇƊůæ
Ŗƈŵƃƈţłæ
įĻģĿģæŸƊśW¬Ƒç
4G KMBA M++6
:59
:59
% 418
:7
:7 % 418
66666666*(6666
)
( ()
.
/./
- ( .
1KKGF
F I
6666666666666%)+ +666666",+6666666660, 666666666%%66666666 6666666  6666  666 0, ( / ( (/
( ()
*
/
- ( .
L BMM
6666
(( /. (( (/.
* . ( ()
- (/*
L BMM
(
66666666666666666
66666666666666666
666666666
6666666666
6666666666666%%6
* ( . 6666666( )*( )-* .) */-*- ) . 6666666666
L BMM
6666
( )
(
)(*/
( *
* . /)(/- )())
L BMM)
66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666&)"(&&*'$
66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666&)"(&&+"1
:B
EL ODEKO:B
EL ODEKO
66666666666666666  666666666
666666666666666666666666666666666666666666666 6666&)""* .
4G KMBA M
EFK66666666
62%
% 418
7:3
66666666666666666 666666666    666666666 666666666 6666666666
6666666666
6666666666 6666&)"+ ')( 666666666666666666666666666666666666666666666666666666666666666666666666666666&)"!"'%"1))/.
( )(*. -/*1KKGF
F I
66666666666666666

66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666&)""'",
..
( ).(*. -/)
L BMM
66666666666666666. 66666666666666666666666
666666666
6666666666666666666666666666666666666666&)"/",
(. 6666666
(-(   66666666666666666666666666666666666666666666666666666666666666&)"%%**. - L BMM(
66666666666666666
666666- * . ) ( - (*. -/.
L BMM
66666666666666666
( ). 66666666666666666666666666( -*()*. . /
L666666666666
BMM) 6666666666666666666666666666666666666666&)"**" *666666666666666666666666666666 666666666666 666666666666 6666666666666666666666666666666666666666&)"+,6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666&)"* - 
2016年4月14日
計算科学技術 特論Ｂ

6666666666666%)+ +666666",+6666666660, 666666666%%66666666 6666666  6666  666 0, 
6666
666666666666666666666666666666666666666666
666666666
6666666666 6666666666666666666 6666* +"6ƨơǏǈƹǉƮƕƁõèïé ñðŻƇťţŁDƏŗŕƊśţŝƊƄƈŜD

4532
+"6)*(!"%
 *!(*&' 6&('",(*66 *!(*&' 6
6666
66666666*( ++6
6666

·ŁčđĉĕėoÚæ
ļòîėčċ

6666666666666%)+ +666666+ *+66660+, &+666666666%%
6666
6666666666666666 66666  6666666 6666666666666666%%66666666666666666 66666  66666666666666666 6666* +"6
66666666666666666 666666  66666666666666666 6666"', *)66666666666666666  666666 66666666666666666 6666)+"'.6
66666666666666666   66666666666666666666666 6666*)*# 6

BL
LI B
IF L BPBI
6)*(!"%

66666666*(1KKGF
F I ++6
KBL L I B
IF LM
6666

ŻƇťţŁƇƊůæ
Ŗƈŵƃƈţłæ
4G KMBA M
:59
:59
% 418
:7
:7 % 418
6666666666666%)++666666",+6666666660,
666666666%%66666666
6666666  6666 
666 0, įĻģĿģæ
6666
)/
)
*
.)
**
().
(
(*/
)
((1KKGF
F
I
ŸƊśW¬Ƒç
66666666666666666
6666666 66666666666666666
66666666
666666666 666666666
6666666666666%%66666)/ ) *( /* (( (* *(- (-(.
L BMM
66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666&)"(&&*'$)/ ) ( /(( (-/*/ (- ( L BMM
66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666&)"(&&+"1)/ ) *( / . (( (.
*./- (L BMM.
66666666666666666666666660   666666666 666666666666666666666666666666666666666666666 6666&)""* .
66666666666666666
666666666    666666666 666666666  666666666 666666666 6666666666 6666&)"+ '
66666666666666666 666666666666666666666666666666666666666666666666666666666666666666666666666666&)"!"'%"1 :BEL 666666666666666666666666666666666666666666666666666666666666666666666666666666&)""'",
ODEKO:B
EL ODEKO
66666666666666666
4G KMBA M
EFK 62%66666666666666666666666
% 418
7:3
66666666666666666666666666 6666666666666666666666666666666666666666&)"/",
66666666666666666 6666666 666666   66666666666666666666666666666666666666666666666666666666666666&)"%%* - 
)/
)
*
(
.
(
(
)*
*/
)
/(
1KKGF
F I
66666666666666666 66666666666666666666666666 666666666666
6666666666666666666666666666666666666666&)"**" *666666666666666666666666666666666666666666
666666666666
6666666666666666666666666666666666666666&)"+,)/ ) *. --)( ( .
*/ )) )
L BMM
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666&)"*- )/ ) .
-)( ./*/ ) *L BMM)/ ) *.
**( .
*/ ) L BMM.
6666666666666%)+ +666666",+6666666660,
666666666%%66666666 6666666  6666  666 0, 0
2016年4月14日
計算科学技術 特論Ｂ6666
66666666666666666  6666666666666666666666666 666666666 6666666666 6666666666 666666666 6666* +"6
6666
66666666666666666 66666666   666666666  666666666666666666666666666666666666666666666  6666&)""* .
66666666666666666
666666666 666666666  666666666  6666666666 6666666666 6666666666  6666&)"+ '
66666666666666666 66666666666666666666666  666666666  6666666666666666666666666666666666666666&)"/",ƨơǏǈƹǉƮƕƁõ

6666666666666%)+ +666666",+6666666660, 666666666%%66666666 6666666 6666 666 0, ŗŕƊśţŝƊƄƈŜļƓŻƇťţħōñðŻƇťţļļïõėčċ
ħōòîėčċŅE²oÚĨ<?Ə§ðíóŁ<?Əæ·ƓŠźƅƊũƈŊ3yŁ4ƏæįħįŸƊśW¬łĞƑƋļ=őōĲƏæ
ƐŻƇťţŁ¤×Ĩ3İĿōE²oÚĨNńŏ
Ŋ±ĸŏłĲƖæ

ļŸƊśW¬

ÆuŁ¨tŗŕƊśţŝƊƅDļĢĹĶĨñðŻƇťţļłŁŖŧƆƊšƂƈ7iĨðíóŀÀDĮŐĻģĶ Ĩ$mƏæţŝƊƃŷƄŬŕĽįĻł¯@ļĢŏĨ!ħĹĶƏæ

ŇĶƇƊůŖƈŵƃƈţŊ¯@ļĢŏĭĽĨ!ħĹĶƏæ
#)Ł»ļł6ãĿįƏ
2016年4月14日 計算科学技術 特論Ｂ



#W!sè¨téE²oÚæ æƉţŝƊƃ G
ŷƄŬŕ

¤ƉÏ
¸¡Ŏ

řƊæ
Ųƅ

C#

¯@

%Ü¶Ú

Ăŀ

Ĝ

¯@

NØ¶Ú C# ĂŀĜ¯@}L¾¤ C# ĂŀĜ¯@¦n¼ C#Ĝ

2016年4月14日 計算科学技術 特論Ｂ

Ăŀ



)

(

źƇŪśA

źƇŪśB
B

A

źƇŪśC

źƇŪśD
D

C

2016年4月14日 計算科学技術 特論Ｂ

¤ƉÏ
W



1000Proc.

)

(
ÞdÏ

?8Ï

ÏoÚŁÁ¤ŻƇťţ1

8000Proc.
ÞdÏ

?8Ï

ƇƊůŖƈŵƃƈţ
ŁÁ¤

2016年4月14日 計算科学技術 特論ＢŻƇťţ1 ,uÝƁĦ
ǀưǊƴƭƟ

2016年4月14日 計算科学技術 特論Ｂ,uÝƁǀưǊƴƭƟ
ŇļįĶÆuŒElıŏĭĽŀŌŎźƇŪśŀ#W¬Ł6ãĨĢŏ Ĩ¸ĮŐŏƏæ
ĴŐōŒ!sıŏĽķģĶģŁƔŀ!äĮŐŏĽ«ĥŏƏ
1ŔŻƄŝƊšƂƈĽŴƊůŗŘŔŁ#MŁŽţżŪũæ
èŔŻƄŝƊšƂƈŁ#MÊé

2

á#ÓŁ}A3?8ÏŀĦīŏ?ĩĿÏŠŖŤĞÏ7iŁ

4ŹƅųƊůŀĦīŏ?8ÏŁ5ÞdÏŀĦīŏ?ĩĿÏŠŖŤĞÏ7iŁ

6ƇƊůŖƈŵƃƈţŁ

2016年4月14日 計算科学技術 特論Ｂ

51ƔƽǉơǏƦǇǍžƶǏƱƗƘƔƁǂƨǁƭƬ
§bĐƒũË9µíÎƁPBƒÜŪƏǓĦ
ĚXƁƙƴǊƞǏƷǍƱ,ƁƇ]æŲƐżŨƏž\Ħ9Xƀ`ųTƁĚXįžÜŪƏžƙƴǊƞǏƷǍƱ
ƁƂǒūūƌŶ9XǚŀŔǖžſƏǓĦ
ŀĴĮĭĭĭĭſƍƙƴǊƞǏƷǍƱƂįĭĭĭĭÄiŽŧƏǓĦ
űƁPBǒVŽƊįĭĭĭĭ,ƆŽųŬ.ĊųſŨǓĦ
ąƁRVƋíÎƁÐiƒÜŪƏž»,Žĕ¹žſƏǓĦ
§ÌŶƁƁ*1ƒÔƇBƑŵŸ,6ŭtèžſƏǓĦ
òÒƂǘI½Ɓ÷ÛŽ]ƒÂŴǓ

2016年4月14日 計算科学技術 特論Ｂ52

! 584:)8<@<?0&^nelR#!
! 584:)8<@<?0&^nelR#!

Ĝ,ČƁ¢Y'2)MDN
Level3 HWK^nelQ('2)MDNR$BLASHWK^nelQ(
BLAS Level3
K(7=:>9/)021[ilhZa+pS]k`dK(7=:>9/)021[ilhZa+pS]k`dlRfmc
Ë9µƔƽǉơǏƦǇǍƁ(µƼǌƭƟĳƵǍǌǏƛǊĞƁíÎČ*ƒƀÂŴǓĦ
,ŽƨưǌǍƠƨơǏǊŽ­\ǓĦR
"OCVpS$ S$R "OCVpŴŽƀűƁ,iŽƨơǏǊųżŨſŨǓ9JƂƿǏƧƀÂŴǓ













































































6;.




6;.




14 [s]

1

12

AB 1

10

1

8




6




4




2


0

2016年4月14日 計算科学技術 特論Ｂ









16

53

QDoXJEQKP%SQDoXJEQKP%SINDVF
$ $
VpTOofmc
*q.-,---Ĝ,ČƁ¢Y
VpTOofmc
*q.-,---
+TOR +TOR
IE TOF(TUoa_njgkb\FTOF(TUoa_njgkb\FIKp)Ë9µíÎƁƔƽǉŽƙƴǊƞǏƷǍƱ,ƒ¸ųżŨƏPBƁĜ,Čŭ¢ź
.3
HPCS2012
żŨƏǓ
.3
HPCS2012

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

2016年4月14日 計算科学技術 特論Ｂ

54VNąƀūŰƏVŮſąƤƖƩǎąI
Efficiency of Mapping to the Tofu network - Gram-Schmidt Optimal Mapping ! avoid some conflict among sub-communicatorsąƂǋƖƮǍƦǏŭHĢƀſƏPBžƷǍƱ
selected Tofu specific communication
algorithmgŭHĢƀſƏPBŭŧƏǓĦ
••••120.0##
100.0##

Time (sec.)

80.0##

MPI_Bcast

60.0##

ƆŴŬǛĦċſǈƖƼǈǉžċ6ŲƐżŨſŨǈƖƼ
ǈǉŽƂuÝeŭº·ŴƏPBŭŧƏǓĦ
aŲſƯǏƫƒġÙƀVNąųżŨƆŵƓŬǛ

MPI_Allreduce

40.0##
20.0##
0.0##

Communication Wati/OrbitalƆžƉƏűžŭ)ƏąƂƆžƉżIƒ¬ƍŴ ŽǋƖƮǍƦǏƴƭƟƒì«ŴƏűžŭŽ
3.726
ŮƆŴǓĦ
3.957
VNąǈƖƼǈǉŽ>ÝſąžCſ
32.111ƒė}ąŽÞųżŨƏƌũſPBŭŧƏǓĦ
uÝƁàŨVNąǈƖƼǈǉƁ¸ƒ~W
ųƆŴǓ

1D

Optimal 3D

12.9298.295

Communication Grobal/Orbital

17.118Communication Global/Space33.565Computation

32.050!FFTA#

2016年4月14日 計算科学技術 特論Ｂ! "AƵǏƱŽƾƟưǊƯǏƫƒÖGųƨƛǈǏƒ

SiNW 19,848 atoms¤ƉǒƨƛǈǏƒƵǏƱđŽŅŌŌŐŉňŒŇŉŴƐƃ
Grids: 320x320x120àŨƁƀǒ#ƵǏƱŽdVſƾƟưǊƒŅŌŌŐŉňŒŇŉ
Orbitals:
41,472ųżŨƆŵƓŬǛĦ
Total
process number: 12,288
űƁPBƂǒƌŰŨſƷǍƱgƒ«úųżŨƏ
" Grid space: 2,048(32x32x2)
űžƀſƏǓĦ
" Orbital: 6• Torus
Mapping :32x32x12ċ6ŲƐŸVNąƁǈƖƼǈǉƒźżŨ

55ƻǊƵǏƱƀūŰƏVNąƁº·$8)<7=A#
A 
FFTJCNWRV@((.203/)&*,+LTVSKP'YB# A # A !>6HYFFTBXFFTWJ7=7HYĺĺŃƒƻǊƵǏƱŽ] ŴƏ ƂuÝƒã
-1(





 

 

ųů36ŲŵƏǓĦ
18 [s]
45Ë9µƔƽǉơǏƦǇǍƁĺĺŃƒEƈ(16µƼǌƭƟƁƒcKƀÂŴǓĦ
,ŽƨưǌǍƠƨơǏǊŽ­\ǓĦ
14ŴŽƀűƁ,iŽƨơǏǊųżŨſŨǓĦ

















12

10
 ,ÿƁĂ2ƀƌƎĺĺŃƒƻǊƵǏƱŽſ

ůČƁƵǏƱƀĕƏűžŭ)ƏPBŭ8 ŧƏǓĦ
òÒƂǘI½Ɓ÷ÛŽôŴƏǓĦ6
 ķĻ¦Ɓ&ÆíÎƁƌũƀƻǊƵǏƱŽV
4Nąƒ] ŴƏtèŭŧƏíÎƂ¬ƍŴűžŭŽŮſŨǓĦ
2ŶƁPBƂǒĤĆſƶǏƱƗƘƔƔƦƨư0Ýƒ¸ŴƏÌƁ`(ƒžƏǓ


16

32



 @BXA
89;;DXMUOQ
!878X% @?H@<I !8:HY
2016年4月14日 計算科学技術 特論Ｂ
56ė}ąƀūŰƏVŮſąƤƖƩǎąI
ė}ąŭƴƭƟƀſƏPBǒƔǊƣǉƩǃƒé¾Ŵ Žė}ąƒƋƉżųƆũűžŭ)ƏPBŭŧƏǓĦ
ŪƃķĻ¦0(µƁǌǏƛǈƖƩ6ÌƁPBǓĦ
Ą7Éſ,6ŭąuÝƁv6ƒyůPBŭŧƏǓĦ
űƐƍƁòÒƂİI½Ɓ÷ÛŽôŴƏǓĦ

2016年4月14日 計算科学技術 特論Ｂ

D*/

57

ǌǏƱƖǍƷǈǍƨƁº·2"-14"#%+;7IUY8ǌǏƱƖǍƷǈǍƨƁº·ƂáŦſ9JŭŧƏǓĦ
^ËƂÐXƁíÎŽđºbƀƌƎÐXƁƷǈǍƨŭSƑƏƌũſPBǓĦ
.` ._ .^ ._ .N C T M
4¼ùâ*ƒ=Ə¦ÌáŦſx¦ŭÀÇŲƐżŨƏǓĦ
NICAM 2# 20,&0[gl07 rl00agl14 rl07\ONCDKŶƁƦƨƮǃƁT
ŭ9JžſƏPBƊŧƏǓĦ
XS02$1=Z[phystep,dynstep\NCTM53P òÒƂǗI½Ĕƀ÷ÛŴƏǓĦ
DVLZ;.1F@9ƁƂ(µƼǌƭƟ£ƀƨơǏǈƹǉƮƕƒ­\ųŸǓ

5

20

80

320

1280

5120

20480

? ^.`-1 NICAM phystep 2#

81920

20NCTM2016年4月14日 計算科学技術 特論Ｂ

58
XS,&0 gl14[81920 (2'\ rd_driver !)02$1DVLZ
20 QRH6

gl7agl13 ZNC rd_driver !)02$1DVLZG<W


•

#
• 

!4.8/7

40+1-6-/P#• ;FK>O@IN5#•  592"5/75:-6-/P

• 

3#

• )*&#(':4"5/755:-6-/P#• 5GCLDB<#• 5GCLDB<2016年4月14日 計算科学技術 特論Ｂ

40+1-:-6-/P

59