• 検索結果がありません。

x86_64 Dual-core CPUを用いたPC clusterの性能評価

N/A
N/A
Protected

Academic year: 2021

シェア "x86_64 Dual-core CPUを用いたPC clusterの性能評価"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)2006−ARC−167(13) 2006−HPC−105(13) − 2006/2/27. 社団法人 情報処理学会 研究報告 IPSJ SIG Technical Report. x86 64 Dual-core CPU を用いた PC cluster の性能評価 幸谷智紀∗ 大規模な科学技術計算を実行するための計算機環境は,さまざまな所で求められる ようになってきている。特に大学研究室レベルにおいては,教育用にも使用できる 高性能かつ汎用的なコンシューマ向け PC を組み合わせたコモディティPC cluster が多く利用されている。2005 年には現行の x86 32 CPU と互換性を持ち,なおか つ 64bit 環境を提供できる Dual-Core CPU が AMD 及び Intel から登場し,コモディ ティPC cluster でもより大規模な並列計算が実行できるようになりつつある。しか し,IEEE754 倍精度・多倍長数値計算及びその並列化に関する,これらの CPU 性 能を調査した文献はまだ少ない。本稿では,コンシューマ向け PC に向けの x86 64 Dua-core CPU である Intel Pentium D 820 と AMD Athlon64 X2 3800+の数値計算性 能及びネットワーク性能について調査した結果について述べる。. Performance Evaluation of PC clusters using x86 64 Dual-core CPUs Tomonori Kouya∗ Computer environments for large-scale scientific computation are necessary in many research or educational institutions. In particular, so-called “commodity PC clusters” that are constructed with consumer PCs are widely used in university laboratories. This is because these PC clusters are useful for both research and educational purposes. In 2005, Intel and AMD Corp. released two x86 64 dual-core CPUs; that are compatible with the current x86 32 CPUs and can provide a 64bit environment. Although this will drive an expandsion in the capabilities of the large-scale parallel computations in these laboratories, not many publications exist on the performance evaluation of IEEE754 double precision, multiple precision numerical computation and network of these new CPUs. In this paper, we describe the results of these performance evaluations of the Pentium D 820 and the AMD Athlon64 X2 3800+; x86 64 dual-core CPUs with regard to consumer PCs.. 初めに 大規模な科学技術計算を実行するための計算機環 境は,さまざまな所で求められるようになってきて いるが,専用ラックに収まった形態のサーバマシン は並列及び分散処理専用であり,購入においても保 守においてもコンシューマ向け PC cluster に比べる とコストが高くつく。大学研究室レベルにおいては, 多少性能においては劣っていても,教育用にも使用 できる汎用的なコンシューマ向け PC を組み合わせ たコモディティPC cluster を使用せざるを得ない場 合が多い。これであれば,面倒な作業を厭わなけれ ば高額な保守費用を負担せず,パーツ単位の交換と ソフトウェアのアップデートを自分で行うことで維 持することが可能となる。 2005 年には現行の x86 32 CPU と互換性を持ち, なおかつ 64bit 環境を提供できる Dual-Core CPU が AMD 及び Intel から登場し,コモディティPC cluster でもより大規模な並列計算が実行できるようになり つつある。しかし,IEEE754 倍精度・多倍長数値計 算及びその並列化に関するこれらの CPU 性能を調 査した文献はまだ少ない。今回我々は,コンシュー マ向け PC 用の x86 64 Dua-core CPU である Intel Pentium D 820 と AMD Athlon64 X2 3800+を搭載し たマシンを 2 台揃え,これらの数値計算性能及び. 1.. ネットワーク性能について調査した。本稿ではその 結果について述べる。 実験環境について 使用する 64bit 環境とその略称を表 1 に示す。また 比較のために表 2 に示す 32bit 環境も適宜使用する。. 2.. 表 1: x86 64 Computation Environments. Abbreviation. PentiumD. Athlon64X2. ∗ 静岡理工科大学   ∗ Shizuoka Institute of Science and Technology. CPU/OS/Compiler/Mother Board Intel Pentium D 820 (2.8GHz/Dual-core/L2 2x1MB) Fedora Core 4 x86 64 (Kernel Ver.2.6.14-1) gcc 4.0.2 (w/o any options) ASUS P5WD2 Premium(955X) AMD Athlon64 X2 3800+ (2.0GHz/Dual-core/AMD64/L2 512KB) Fedora Core 4 x86 64 (Kernel Ver.2.6.14-1) gcc 4.0.2 ASUS A8N-SLI Deluxe(nForce4). 多倍長浮動小数点ライブラリは MPFR/GMP を使 −73−.

(2) DGEMM --- ATLAS 3.7.11. 表 2: x86 32 Computation Environments Abbreviation CPU/OS/Compiler/Mother Board. Pentium4. 3 2.5. Intel Pentium 4 2.8cGHz Vine Linux 3.1 (Kernel Ver.2.4.27-0) gcc 3.4.3 (w/o any options) Xeon 3.0GHz (2 SMP) Redhat 8 (Kernel Ver.2.4.20-18) gcc 3.2. SP 2 LO FG1.5. Xeon Pentium4 PentiumD Athlon64X2. 1. 0.5 0 0. 500. 1000. 1500 2000 Dimension. 2500. 3000. DGEMM --- ATLAS 3.7.11. GFLOPS. Xeon. 3.5. 用した。GMP は全て Version 4.1.4 を使用し,MPFR は Pentium4 でのみ Version 2.1.1,他は全て Version 2.2.0 を使用した。. こうして生成された行列を用いて,. C = AB を計算し,その計算時間と FLOPS 数をカウントす る。なお,FLOPS 数は乗算のみ対象とした。通常, 行列積によるベンチマークでは加算も対象として いるため [4],ATLAS の Web ページにある timings データと比べ,本ベンチマーク結果の FLOPS 値は 1/2 倍未満に留まっている。. 3.1 ATLAS の正方行列積性能 ATLAS[4] は,その名前が示す通り,計算環境 に適した行列・ベクトル演算ルーチンを自動的に 生成し,高速な基本線型計算を可能にするライブ ラリである。今回は ATLAS Version 3.7.11 を使用 し,全ての環境においてソースからコンパイルし てインストールしたものを使用した。コンパイル に際して使用した arch 名は,Pentium4, Xeon が共 に Linux_P4SSE2,PentiumD が Linux_P4E64SSE3, Athlon64X2 が HAMMER64SSE3 である。使用したプ ログラムでは,Level-3 BLAS[5] の倍精度行列演算 DGEMM サブルーチンを ATLAS が提供する CBLAS インターフェースから呼び出して行列積 C = AB を 計算している。この結果を図 1 に示す。 非常に高速な計算を行うため,低次元 100 次元未 満の FLOPS 値が正確に求められておらず (図 1 上), この辺りのパフォーマンスは比較対象にならない。. 1500. 2000. 2500. Dimension. 3. Serial Computing の性能評価 n 次実正方行列 A, B はどちらも次のようにして生 成したものを使用した。 b = [b 1. rand() 関数を用いて A ai j ], b B = [b bi j ] を生 成する。 √ √ b B= 3b 2. A = 2 A, B. 2.5 2.4 2.3 2.2 2.1 2 1.9 1.8 1.7 1.6 1.5 1000. 図 1: DGEMM Performance of ATLAS 3.7.11. 1000 次元を超えたところを拡大してみると全体と してきれいな水平線が得られており (図 1 下),CPU 性能をよく引き出していることがわかる。この例で は PentiumD が最も高速であり,Xeon, Pentium4 が それに続いて健闘しており,Athlon64X2 が最も性 能が悪い。 3.2 BNCpack の正方行列積性能 BNCpack[6] は MPFR と GMP で提供される多倍 長浮動小数点演算機能を用いた数値計算ライブラリ である。ここでは BNCpack がサポートしている密 行列積関数 mul_dmatrix の性能評価を行う。行列 は ATLAS のベンチマークで使用した A, B を使用 する。 mul_dmatrix 関数は,単純な三重ループを使って 行列積を計算する。従って,ATLAS のような高性 能は期待できないが,最低のパフォーマンスを調べ る目的には都合が良い。その結果を図 2 に示す。 同 clock,同メーカにも関わらず,低次元の行列 積においては,Pentium4 が PentiumD より性能が良 い。しかし,高次元になるとその差は殆どなくなり, むしろ L2 cache size に勝る PentiumD の方が平均的 には良くなっている。Athlon64X2 は概して低レベ ルである。 3.3 MPFR/GMP の基本演算・初等関数性能 GMP[7] は ,多 倍 長 整 数 (mpz_t 型),有 理 数 (mpq_t 型),浮動小数点数 (mpf_t 型) の 3 種類の データ型とその基本演算を提供しているライブラリ である。これらの多倍長演算は全て自然数ライブラ リ (mpn) をベースとして組み上げられたもので,計 算環境ごとに異なる高速化技法 (SIMD 命令,各種. −74−.

(3) 2006 年 1 月上旬現在では,GMP は正式には x86 64 環境向けの高速化技法を行っていないが, 64bit 整数演算・bit 演算の速度が 32bit のそれに比 べてそれほど落ちていないのであれば,ある程度の 性能向上が見込める。 今回は,MPFR Project[8] の timings ページで提供 されている timings-mpfr.c を使用して,MPFR の基 本演算のうち乗算と除算の性能を測ってみる。実際 に行っている計算は √ √ x = 3 − 1, y = 5. mul_matrix --- BNCpack 60. Xeon Pentium4 PentiumD Athlon64X2. 50. SP40 OL30 F M20 10 0. 0. 500. 1000. 1500 2000 Dimension. 2500. mul_matrix --- BNCpack. 35 30 25 SP20 LOF M15 10 5 0 2000. 3000. Xeon Pentium4 PentiumD Athlon64X2. とし,乗算は. z := xy を,除算は 2100. 2200 2300 Dimension. 2400. z := x/y. 2500. である。その結果を図 4 に示す。. 図 2: MUL MAT Performance of BNCpack. 4.5. アセンブラルーチンの使用等) は全てこの自然数ラ イブラリに対して適用されている。自然数ライブラ リは整数及び bit 演算によって構築されており,浮 動小数点数命令は殆ど使用されていない。 この GMP の自然数ライブラリの高速性には定評 があり,幾つかの多倍長ライブラリにおいても利用 されている。MPFR[8] もその一つで,GMP に足り ない機能を補った多倍長浮動小数点 (mpfr_t 型) ラ イブラリである。従って,MPFR のパフォーマンス は GMP の自然数ライブラリのそれに依存して決定 されることになる。 MPFR,GMP とも,64bit 環境では仮数部や指数 部が 64bit(8 Byte) に拡張される (図 3)。そのため, 同じ精度・同じ演算でも,32bit 環境より 64bit 環境 の方がループの回数が減る。 Precision in bits. _mpfr_prec _mpfr_sign. Sign. _mpfr_exp. Exponent. *_mpfr_d. Pointer to mantissa. 0. 1. x86_32 enviroment Mantissa. 2. 3. 4) 4 m 3.5 tiun 3 eP 2.5 s.v 2 ( 1.5 tioa 1 R. Xeon PentiumD Athlon64X2. 0.5 0 8 12. 6 25. 2 4 2 8 6 6 4 8 51 102 204 409 819 638 276 553 1 3 6 bits of mantissa. 4.5. 4) 4 3.5 um tin 3 eP 2.5 .s 2 v( oti 1.5 aR 1 0.5. Xeon PentiumD Athlon64X2. 0. 8 12. 6 25. 4 8 6 2 2 4 8 6 51 102 204 409 819 638 276 553 1 3 6 bits of mantissa. 図 4: Performance of MP multiplication and division. 32bit 環境では Xeon, Pentium4 とも殆ど同じパ フォーマンスであるが,64bit 環境では PentiumD, Athlon64X2 とも性能向上が見られる。対 Pentium4 の比で見ると,Athlon64X2 は,乗算が約 2.5 倍から 4.5 倍,除算が 2 倍から 4 倍程度の性能向上,PentiumD は乗算が 1.2 倍から 3 倍,除算が 1.3 倍から 2.5 倍の性能向上となっている。整数演算とメモリ 転送能力 (後述) 能力に秀でた Athlon64X2 の方が, MPFR の多倍長計算では高いパフォーマンスを示し ている。. _mpfr_prec _mpfr_sign _mpfr_exp. x86_64 enviroment. *_mpfr_d. 0. 1. 4. GbE 性能評価 今 回 使 用 し た x86 64 環 境 で は ,PentiumD, Athlon64X2 どちらも Dual GbE(Gigabit Ethernet) の マザーボードを使用しており,どちらも Intel と Marvell の LAN controller を搭載したものとなって いる。Switch も含めた GbE 環境は次の通りである。. 図 3: Changes of mpfr t data size in 64bit enviroment. PentiumD. −75−.

(4) eth0 Intel PCI Express Gigabit LAN Controller. PentiumD. eth1 Marvell 88E8001 Gigabit LAN Controller. 14 12 10 sp 8 b G6 4 2 0 1.E+00. GbE Switch DELL PowerConnect 2716 Athlon64X2 eth0 NVIDIA nForce4 Gigabit LAN Controller eth1 Marvell 88E81001 Gigabit LAN Controller. NPtcp NPmpi. 1.E+02. GbE Switch Corega SW05GTV2. 1.E+04. 1.E+06. Bytes. 今回のベンチマークを行うに当たって Dual GbE の性能比較を行ったところ,Intel Controller の方がほ ぼ 90%のピーク性能を出しているのに対し,Marvell controller では 55%程度に留まった。よって,MPI で は Intel controller の方を使用している。 ベンチマークには全て NetPIPE 3.6.2[9] をソース からコンパイルしたものを使用している。. Athlon64X2 14 12 10. NPtcp NPmpi. sp8 bG 6 4 2. 4.1 memcpy 性能と node 内の TCP, MPI 性能 まず memcpy 関数の性能を図 5 に示す。. 0 1.E+00. 1.E+02 Bytes1.E+04. 1.E+06. PentiumD 100. 図 6: Performance of TCP and MPI in 1 node. NPmemcpy NPtcp NPmpi. 80. sp60 bG. 図 5 とは異なり,PentiumD における MPI 通信性 能が最も良く,約 14Gbps に達している。それに対 し,Athlon64X2 では約 9Gbps,Xeon では 4.3Gbps でしかない。Xeon が低性能なのは,rsh を利用した MPICH Ver.1.2.5 を使用していることも原因と考え られるが,同じ LAM 1.7.7 ベースの RPM パッケー ジを使っている PentiumD と Athlon64X2 の性能が, memcpy の性能と逆転している理由は現時点では不 明である。. 40 20 0 1.E+00. 1.E+02. 1.E+04 Bytes. 1.E+06. Athlon64X2 100. NPmemcpy NPtcp NPmpi. 80. psb60 G 40 20 0 1.E+00. 1.E+02. Bytes. 1.E+04. 1.E+06. 図 5: MEMCPY Performance 最高性能では,Athlon64X2 が 103Gbps,Xeon が 87Gbps,Pentium4 が 78Gbps と なって お り, Athlon64X2 が最も高性能である。PentiumD はこの 中でも最低で 58Gbps にしか達していない。普通に 考えれば,この結果は 1 node 内通信性能にもダイ レクトに反映される筈であるが,実際にはそうでは ない。 1 node 内における TCP 及び MPI 通信性能を計測 した結果を図 6 に示す。. 4.2 GbE 上の TCP, MPI 性能 我々が以前 Pentium4 で構築した PC cluster では, GbE の性能が十分発揮されていないことが問題点と して残っていた [3]。それに対して,SMP マシンで ある Xeon cluster はほぼ 90%の性能を発揮していた ため,この差はソフトウェアと CPU 性能によるも のと考えられていたが,それを裏付けるベンチマー ク結果を得ることが出来ずにいた。今回 PentiumD と Athlon64X2 cluster を接続する GbE 上において NetPIPE を実行し,ようやくそれを裏付けることが 出来た。その結果を図 7 に示す。 Pentium4 では,Windows 上で今回同様,MPICH2 を動作させることにより,TCP 及び MPI 性能を 100Mbps 程度高めることが出来ることは確認でき ているが,それでも Xeon SMP マシンには遠く及 ばなかった。しかし,PentiumD 及び Athlon64X2 で は,共に TCP では Xeon SMP 並みの性能を,MPI ではそれを越え,TCP 性能とほぼ同等の性能を得る ことが出来ている。. −76−.

(5) 1000 900 800 700 sp 600 b 500 M 400 300 200 100 0 1.E+00. 1000 900 800 700 sp600 bM500 400 300 200 100 0 1.E+00. 5.. PentiumD NPtcp NPmpi. 1.E+02. 1.E+04 Bytes. • 整数演算主体の多倍長浮動小数点計算なら Athlon64X2 が,PentiumD より優れている。ま た,bit 数が多くなれば 32bit 環境よりも 64bit 環境の方が 2 倍以上の性能を得られる。. 1.E+06. Athlon64X2 NPtcp NPmpi. 1.E+02. 1.E+04 Bytes. まとめ • IEEE754 浮動小数点演算であれば,ATLAS を 用いた場合も,単純なループ演算を使用した場 合も,PentiumD が Athlon64X2 より優れてい る。32bit プロセッサとの比較では,ATLAS を 用いたときのみ,PentiumD が Pentium4, Xeon を凌駕することが出来た。. • GbE を用いた場合,ネットワーク性能は CPU 能 力 に 依 存 し て 決 定 さ れ る た め ,Dual-core CPU は SMP と同等以上の性能が得られ,PentiumD,Athlon64X2 とも最高性能は 900Mbps に達している。但し,Fedora Core 4 を使用し た Athlon64X2 の GbE 通信は著しく不安定で ある。. 1.E+06. • 並列多倍長計算においては,Dual-core CPU は PentiumD も Athlon64X2 も,SMP 並みの並列 性能を発揮している。全体的には整数演算主体 の多倍長計算に分のある Athlon64X2 が有利と なる。. 図 7: Peformance of TCP and MPI on GbE. しかし,Athlon64X2 マシンではソフトウェアに よるものか,nForce4 チップセットによるものかは 判然としないが,通信自体が著しく不安定であるこ とが分かる。GbE Switch に問題があるのかと,PentiumD で使用していた DELL の Switch と交換して Athlon64X2 cluster で計測しなおしても,結果に変 化はなかった。. 4.3 MPIBNCpack の並列正方行列積性能 以上のベンチマーク結果を踏まえ,目的の並列多 倍長数値計算によるベンチマーク結果を見ることに する。図 8 に並列性能を,図 9 に Pentium4 を 1 と した時の性能向上比をグラフにして示す。 並列性能では,短い 128bit 計算では PentiumD, Athlon64X2 のどちらも Pentium4, Xeon に比べて劣 る。Node 内通信,GbE 通信とも Pentium4, Xeon よ り劣っている訳ではないにも関わらず差が出た理由 は不明である。Athlon64X2 が PentiumD に劣るの は,恐らく GbE 通信の不安定性によるものと思わ れる。 全体的なパフォーマンスを比較すると,bit 数の 多い計算では PentiumD,Athlon64X2 どちらも安定 して Pentium4 の 2 倍以上の性能になることが分か る。逆に bit 数も計算量も小さくなると,Pentium4 との差は縮まってしまう。 PentiumD と Athlon64X2 との比較においては,全 体的には乗算性能比と同様,整数演算性能に優る Athlon64X2 が優れている。しかし並列計算では通信 の不安定さのためか,その差を縮める結果となった。. 謝辞 cs-pccluster2 及び Pentium D cluster は静岡理工科 大学学内研究費の補助を受けて構築したものである。 VTPCC は名古屋大学情報科学研究科三井斌友研究 室所有のものを使用させて頂いた。関係者各位に感 謝する。 参考文献 [1] Tomonori Kouya, Performance Evaluation of Multiple Precision Numerical Computation using x86 64 Dualcore CPUs, FCS2005 Poster Session, 2005. [2] 幸谷智紀, Windows を用いた PC cluster 上における 並列多倍長数値計算ライブラリ MPIBNCpack の性 能評価, HPCS2005 ポスターセッション, 2005. [3] 幸谷智紀, PC cluster の性能評価 –メモリ及びネッ トワーク帯域計測編 –, http://na-inet.jp/na/ netpipebench.pdf [4] Automatically Tuned Linear Algebra Subroutines, http://math-atlas.sourceforge.net/ [5] Basic Linear Algebra Subprograms, http://www. netlib.org/blas/ [6] BNCpack, http://na-inet.jp/na/bnc/ [7] GMP, http://swox.com/gmp/ [8] MPFR, http://www.mpfr.org/ [9] NetPIPE, netpipe/. http://www.scl.ameslab.gov/. [10] LAM/MPI, http://www.lam-mpi.org/. −77−.

(6) _mpi_mul_matrix, 64x64, 128bits. _mpi_mul_matrix, 512x512, 128 bits. 5.5. 5.5. 5. 5. PentiumD. 4.5. 4.5. Athlon64x2. iot 4 aR pu 3.5 de 3 ep S2.5. iot 4 aR pu 3.5 ede 3 pS2.5. Pentium4 Xeon. 2. 2. 1.5. 1.5. PentiumD Athlon64x2 Pentium4 Xeon. 1. 1 1. 2. 1. 4. # of PEs. _mpi_mul_matrix, 64x64, 1024 bits. 5. iot 4 a R3.5 pu ede 3 pS2.5. 4. _mpi_mul_matrix, 512x512, 1024 bits. 5.5. 4.5. 2 # of PEs. 5.5 PentiumD. 5. Athlon64x2. 4.5. Pentium4. iot 4 aR pu3.5 ede 3 pS2.5. Xeon. 2. 2. 1.5. 1.5. 1. PentiumD Athlon64x2 Pentium4 Xeon. 1 1. 2. 4. 1. # of PEs. 2. 4. # of PEs. 図 8: Speedup Ratio of Parallelized MP MatMul. _mpi_mul_matrix, 64x64, 128bits. _mpi_mul_matrix, 512x512, 128bits 3.5. 3.5 PentiumD. 4) 3 m iut ne2.5 P sv o(ti 2 a R 1.5 upd ee S 1. PentiumD. 4) 3 m iut ne2.5 P sv o(ti 2 aR 1.5 upd ee S 1. Athlon64X2 Xeon. 0.5. Athlon64X2 Xeon. 0.5 1. 2. 4. 1. # of PEs. 2. 4. # of PEs. _mpi_mul_matrix, 512x512, 1024 bits. _mpi_mul_matrix, 64x64, 1024bits 3.5. 3.5 PentiumD. )4 3 m uti ne2.5 P vs (o 2 it aR pu1.5 ede S 1. PentiumD. )4 3 m uti ne2.5 P vs (o 2 it aR pu1.5 ede S 1. Athlon64X2 Xeon. 0.5. Athlon64X2 Xeon. 0.5 1. 2. 4. 1. # of PEs. 2 # of PEs. 図 9: Speedup Ratio (vs Pentium4). −78−. 4.

(7)

表 2: x86 32 Computation Environments Abbreviation CPU/OS/Compiler/Mother Board
図 2: MUL MAT Performance of BNCpack
図 6: Performance of TCP and MPI in 1 node
図 7: Peformance of TCP and MPI on GbE
+2

参照

関連したドキュメント

前章 / 節からの流れで、計算可能な関数のもつ性質を抽象的に捉えることから始めよう。話を 単純にするために、以下では次のような型のプログラム を考える。 は部分関数 (

テューリングは、数学者が紙と鉛筆を用いて計算を行う過程を極限まで抽象化することに よりテューリング機械の定義に到達した。

累積誤差の無い上限と 下限を設ける あいまいな変化点を除 外し、要求される平面 部分で管理を行う 出来形計測の評価範

Acute effects of static stretching on the hamstrings using shear elastic modulus determined by ultrasound shear wave elastography: Differences in flexibility between

定可能性は大前提とした上で、どの程度の時間で、どの程度のメモリを用いれば計

環境への影響を最小にし、持続可能な発展に貢

北区では、地域振興室管内のさまざまな団体がさらなる連携を深め、地域のき

本稿で取り上げる関西社会経済研究所の自治 体評価では、 以上のような観点を踏まえて評価 を試みている。 関西社会経済研究所は、 年