数 値 計 算 と 性 能, 精 度 に 関 するまとめ.はじめに 数 値 計 算 の 性 能, 精 度 に 関 して 以 下 の 事 を まとめました ()SRのsmpとmpiの 効 果 を 対 称 行 列 の ノンゼロ 要 素 のみを 使 用 するCG 法 でその 性 能 を 検 証 しました ()ループ 積 分 を 用 いて,アクセラレータ 及 び サーバーの 性 能 を 比 較 しました ()サーバーにおいてRump s 例 題 でDD 形 式 と IEEE 形 式 の 性 能 を 比 較 しました (4)サーバーにおいて 次 元 ループ 積 分 で DD 形 式 とIEEE 形 式 の 性 能 を 比 較 しました 尚,チューニングの 方 法 や 精 度 に 関 する 注 意 事 項 は 適 宜 記 載 しています
SRでのsmpとmpiに 関 して SRでは coreに 関 して 組 の 乗 加 算 器 があり 一 般 的 にsimd 命 令 が 適 用 される 場 合 は smt=off, 適 用 されない 場 合 はsmt=onの 性 能 が よくなります ノードでの 実 行 では 以 下 の 様 に なります Simd 命 令 が 適 用 されない setenv HF_BINDPROC_STRIDE./cg_omp -F'prunst(threadnum(4),BIND())' Simd 命 令 が 適 用 される setenv HF_BINDPROC_STRIDE./cg_omp -F'prunst(threadnum(),BIND())' またSRの 構 成 では 最 大 8ノードで, ノードcoreのため,ノード 当 たりのコア 数 が ノード 数 より 多 いのでハイブリッド 並 列 の 効 果 に 特 徴 があります 参 考 までにBG/Lはノード core,bg/qはノードcoreとノード 数 が ノード 当 たりのコア 数 より 多 くなります
SR N ノードでのmpi 数 とsmp 数 Simd 命 令 が 適 用 されるのでmpi 数 *smp 数 = node = total_tasks = poe mpibind -thread -hpc./cg_mpi5 スレッド 数 cg法 int( / mpi数 ) mpi,スレッド.54秒 実 行 時 間 ( 秒 ) 8 4 4 5 8 注 mpi 数 = smp 並 列 実 行 時 間 ( 秒 ) mpi 数
,4,8ノードでの 性 能 SR cg法 N node,mpi,スレッド 54.4秒 case node,mpi,smp case node,4mpi,8smp case node,8mpi,4smp case4 node,mpi,smp case5 node,mpi,smp case 4node,4mpi,smp case 8node,8mpi,smp 8 4 実 行 時 間 ( 秒 ) case 4 5 実 行 時 間 ( 秒 )
SR 4ノード N= Mpi 数 *smp 数 =8 node =4 total_tasks = poe mpibind -thread 8 -hpc./cg_mpi5 5. 実 行 時 間 ( 秒 ). 5.. 55. 実 行 時 間 ( 秒 ) 5. 4 8 4 mpi 数
SR 8ノード N= Mpi 数 *smp 数 =5 node =8 total_tasks = poe mpibind -thread 8 -hpc./cg_mpi5 実 行 時 間 ( 秒 ).. 5. 4..... 8 4 実 行 時 間 ( 秒 ) mpi 数
.8.5.8 4.5. 8.4 サイズNに 対 する 反 復 回 数 サイスNが 大 きくなると 反 復 回 数 は 増 加 する サイズNが 大 きくなると 反 復 回 数 /Nは 小 さくなる 4 8 4 log( 反 復 回 数 ) log( 反 復 回 数 ).4...8..4.. 反 復 回 数 /N 反 復 回 数 /N
高 エネルギー 加 速 器 研 究 機 構 のSRの 構 成 はノードあたりcoreとなっていますが coreでメモリを 蜜 結 合 で 共 有 するのではなく, 4つの8coreで 蜜 結 合 が 疎 結 合 でメモリを 共 有 する 形 となっています このため ノードcoreではなく,4ノード8coreと 考 えた 方 が 良 くノードではsmp 並 列 より, 4mpi,8smpのハイブリッド 並 列 の 方 が 性 能 が でます 4ノード,8ノードの 場 合 も 同 様 に 8coreノード,ノード 考 えて 実 行 すると 効 果 がでます またsimd 命 令 が 適 用 できないプログラムでは Smt=onとして,smp/coreとして 実 行 する と 性 能 がでます
. ループ 積 分 を 用 いて,アクセラレータ 及 び サーバーの 性 能 比 較 次 のつのループ 積 分 を 用 いてアクセラレータ 及 びサーバーの 性 能 比 較 をしています 4 次 元 積 分 S S (s;m,m,m,m 4,m 5 ) y yz dudzdyd DC C ( y z u)( y z u) ( y)( z u) E ( y z u)( z)( y u) ( y) zu ( z u) y M m D se M s ym C zm um 4 ( ( :,,,,) y z u) m 解 析 近 似 解 :.8448 5
次 元 積 分 Laporta I I 4 5 4 4 5 C D d d 5 d 4 d d d C=(+++4+5)*(++++)-(++)** cc=*m+*m+*m+4*m4+5*m5+*m+*m D=-c*cc.+s*(**(4+5++)+*5*+*4*-*4*).+t**(-4*+5*).+p*(**(4+5++)+*4*(+)).+p*(**(4+5++)+**(4+5)).+p*(4*5*(++++)+4**(+)+*5*).+p4*(**(+++4+5)+4**(+)+*5*) m=.d, m=.d, m=.d,m4=.d m5=.d, m=.d, m=.d p=.d, p=.d, p=.d,p4=.d s =.d t =.d 解 析 近 似 解 =.8559858
55.58559584 8 44 D C... },,,,,,,,, ),,,,,,,, {( d C) i C(D I 9 9 9 8 9 8 9 9 8 9 8 8 49 8 49 8 589 49 589 589 49 589 49 8 589 49 8 589 49 589 8 9 9 8 8 49 589 49 589 49 8 k j i j,k,... i, 9 8 5 4 9 8 5 4 9 8 5 4 解 析 解 8 次 元 積 分 M44
8次 元 積 分 M 実 行 結 果 一 覧 表 44 N, 演 算 量 85.4GFLOP 実 行 時 間 ( 秒 ), 性 能 (GFLOPs) 一 覧 表 CPU smp 数 実 行 時 間 性 能 備 考 Pezy 89.55 4 HPC5 89.48 49 H 末 89.98 55 最 終 Phi5P 4.884 4 ーO E5-.54 4 ーO HD58.549 55 標 準 gmp 9.84 94 ーO. ーO g9mp.59 8 ーO 8.9444 95 ーO g9mp 4 4.898 ーO 4.994 5 ーO Pezy 5GFLOPs E5-.GHz Phi5P GFLOPs HD58 88GFLOPs 性 能 緒 元 一 覧 gmp g9mp g9mp E5-9(SB).9GHz E5-8W v.4ghz E5-8W v.ghz
アクセラレータによる 性 能 比 較 ループ 積 分 性 能 比 較 実 行 時 間 ( 秒 ) 一 覧 表 プログラム N 演 算 量 Pezy-SC Phi5P HD58 (GFLOP) 5GFLOPs GFLOPs 88GFLOPs s 5.99 4.99.4 s 4 594.5 94.459 5. laporta i 4 8.9889.888 4.48 laporta i 8 59 9.84595 55. 94.954 m44 85.98.884.549 m44.99 98..498 発 生 した 問 題 点.m44 HD58 N= でゼロ 割 発 生. m44 Pezy-SC 除 算 の 性 能 が 悪 い (<= 今 後 改 善 される 模 様 ) 対 策 HD58 N=,Pezy-SC では 除 算 が 遅 い が 結 果 は 正 しい 計 算 をしている 事 に 着 目 => 二 分 法 の 考 え 方 を 使 用 する
HD58のN=での 対 策 W M の 計 算 を 模 式 化 すると の 44 d CD CD 計 算 をしている 二 重 指 数 関 数 型 積 分 では CD では W CDとして, の 計 算 で 桁 落 ちなどに より ゼロ 割 が 発 生 する こ のため, を 定 め, なら となり, 8 CD より, 4 5 (log()) 影 響 がなく, 値 は として 計 算 する 最 終 次 元 での 式 は d e,, 5, W M 5 (log()) とすると,, W, W とすれば 倍 精 度 演 算 の 範 囲 では 最 終 結 果 に の 減 少 関 数 で W CD となっている で 桁 落 ちで となるので 二 分 法 で の 値 を 定 める 事 が 出 来 る (log()) 4.4. (log( ) 9 (log( )
Pezy-SCの 除 算 の 高 速 化 ( 今 後 はこの 修 正 が 必 要 なくなる) 現 時 点 ではPezy SCでは 単 精 度 の 高 速 に 実 行 されない ( このため. を 求 める h W となるh h.e; if (g else f Wh W に 対 し, を 求 める コーデイン グでは 4 W W *f *f *h; fの 精 度 不 足 分 はh W となるので分 法 で, 精 度 低 下 を 抑 える { rsqrt( ); ;h 4 h とする W なら ){ g;} } Wh 49 W,h.4 f,g, h : double しか となる 共 通 のh とすれば Wh に 反 映 させて 積 分 値 全 体 の 45 ) : float
M44 修 正 結 果 と 結 果 の 精 度 への 影 響 解 析 解 =55.58559584 HD58 N= 55.5855955 N= 55.585595 N=で 修 正 した 結 果 は 以 前 と 同 じ 精 度 Pezy-SC N= 55.585595 単 精 度 演 算 を 使 用 しても 必 要 な 精 度 を 保 っています
4. Rump s 例 題 を 用 いたサーバーでの DD 形 式 とIEEE 形 式 の 性 能 比 較 rump's例 題 とは, 四 則 演 算 からなる 簡 単 な 計 算 で, 有 効 ビット 数 がビット 以 上 を 要 求 する 計 算 のため, 精 度 性 能 の 検 証 に よく 使 用 されるもので す a f a a., b a b 5.5b (a より,f.5b b b a b a b 9. (a b b 49889 4 ) 5.5b 54 9 b 4 ) 5.5b.5b.895994 8
DD 形 式 変 数 の 値 を 複 数 個 の 倍 精 度 変 数 の 和 で 表 す 方 式 演 算 順 序 の 変 更 がないように 注 意 が 必 要 サーバー 系 では-fp-model preciseが 必 要 n 個 の 倍 精 度 変 数 の 和 をn 倍 精 度 という nが 大 きくなると, 演 算 量 は 乗 算 がnの 乗, 加 減 算 がnの 乗 で 増 える またnが 以 上 となると 除 算 で 途 中 の 結 果 で 絶 対 値 が 大 きい 順 に 並 べる 注 意 が 必 要 と なる IEEE 形 式 IEEE54-8での4 倍 精 度 の 仮 数 部 を 拡 張 する 符 号 部 ビット, 指 数 部 5ビット, 仮 数 部 *p-ビット をp 倍 精 度 という 演 算 がコール 形 式 となるためpが 小 さい 場 合 オーバーヘッドが 大 きくなる コーデイング では 乗 算 除 算 は 比 較 的 容 易 で 加 減 算 での 桁 落 ち 数 の 計 算 で 誤 りが 生 じ 易 い サーバー 系 では8ビットの 内 部 レジスタを 有 するものが 多 く 拡 張 倍 精 度 や 複 数 個 の 拡 張 倍 精 度 の 和 の 演 算 が 有 効 になる 特 にオプション-fp-model etended は 性 能 に 効 果 的 な 場 合 が 多 い
拡 張 倍 精 度 倍 精 度 8 倍 精 度 倍 精 度 倍 精 度 4 倍 精 度 倍 精 度 Rump s 例 題 N=5 E5-8W v.ghz 4smp 拡 張 倍 精 度 + 拡 張 倍 精 度 有 効 ビット 数 > 拡 張 倍 精 度 + 拡 張 倍 精 度 有 効 ビット 数 > 倍 精 度 から 倍 精 度 で 実 行 時 間 が 逆 転 実 行 時 間 ( 秒 ) 5.. 5.. 5. DD 形 式 IEEE 形 式.
拡 張 倍 精 度 倍 精 度 8 倍 精 度 倍 精 度 倍 精 度 4 倍 精 度 倍 精 度 Rump s 例 題 N=5 E5-8W v.4ghz smp 拡 張 倍 精 度 + 拡 張 倍 精 度 有 効 ビット 数 > 倍 精 度 から 倍 精 度 で 実 行 時 間 が 逆 転 実 行 時 間 ( 秒 ) 5. 45. 4. 5.. 5.. 5.. 5.. DD 形 式 IEEE 形 式
5. 次 元 ループ 積 分 でのサーバーでの DD 形 式 とIEEE 形 式 の 性 能 比 較 使 用 した 次 元 積 分 は 以 下 のinfra boと 言 わ れるものでこの 問 題 では 進 桁 正 しい 結 果 を 得 るには で 必 要 がある.8 8 のが 取 れる I(s) 解 析 近 似 解 相 対 誤 差 y s 5 z( y)m D (D ys tz( y z) ( ( y z)( y)m, t 5 dzdyd f,m s ln( ) m e ) s( t m f f ( t m e e 5,m e s ( t m ln( )ln ) m m f ) f f ( t m ln m m y) ).5, f f e ) 以 下
拡 張 倍 精 度 4 倍 精 度 倍 精 度 8 倍 精 度 倍 精 度 倍 精 度 Infra bo E5-9(SB).9GHz smp N=4 DD 形 式 4 倍 精 度 のみa,b,c X=a+b を=-c (a,b,c>) と 表 す コーデイング 倍 精 度 で 実 行 時 間 がほぼ 同 じ 実 行 時 間 ( 秒 ) 9 8 5 4 DD 形 式 IEEE 形 式
拡 張 倍 精 度 4 倍 精 度 倍 精 度 8 倍 精 度 倍 精 度 倍 精 度 Infra bo E5-8W v.4ghz smp N=4 DD 形 式 4 倍 精 度 のみa,b,c X=a+b を=-c (a,b,c>) と 表 す コーデイング 8 倍 精 度 から 倍 精 度 で 実 行 時 間 が 逆 転 実 行 時 間 ( 秒 ) 8 4 DD 形 式 IEEE 形 式
DD 形 式 4 倍 精 度 (a,b,c>) X=a+b do i=,n =-4+i t=*h y=pi*.5q*sinh(t) (i)=ep(y)/(ep(y)+ep(-y)) gw(i)=cosh(t)*pi/(ep(y)+ep(-y))** end do コーデイングでは 赤 字 の 行 変 更 するだけで 良 い X=-c do i=,n =-4+i t=*h y=pi*.5q*sinh(t) (i)=.q/(.q+ep(-.q*y)) gw(i)=cosh(t)*pi/(ep(y)+ep(-y))** end do