LinuxWorld Expo/Tokyo 2000レポート――ワークショップ「IBM Netfinity ベース Linux クラスター・システムおよび高速サーバインターコネクトシステム構築事例」
2000年05月22日 00時00分更新
2000年5月11日、12日の2日間、「LinuxWorld Expo/Tokyo 2000」が東京ビッグサイト(東京国際展示場)で開催された。参加社は85社で、入場者数は2日間合計で2万4193名。1日目の11日、京都産業大学工学部 情報通信工学科教授 平石裕実氏により、「IBM Netfinity ベース Linux クラスター・システムおよび高速サーバインターコネクトシステム構築事例」と題されたワークショップがあった。
「Netfinity 3000」によるクラスタシステム
京都産業大学では、各教室あわせて508台の「Netfinity 3000」が配置され、PCの使用されない夜間に、クラスタシステムとして有効活用しているという。各「Netfinity 3000」のスペックはPentium II-400MHz、メモリ128MB、8GBのハードディスクとなっている。クラスタシステムのソフトウェアには「Beowulf」、Linuxディストリビューションは「TurboLinux 日本語版 3.0」、並列計算用のライブラリには、「PVM 3.4.3」、「LAM/MPI 6.3.2」を使用している。
今回は、このクラスタシステムを1台から500台まで台数を変化させ、処理効率などのベンチマークを取った結果が発表された。
クラスタシステムでベンチマークをとったタスクは、「10のn乗までに素数がいくつ存在するか」を求める計算。この計算を解く方法として、「割り算法」と「エラトステネス法」の2つがあり、「エラトステネス法」のほうが効率がよい。以下の表で、「割り算法」列と「エラトステネス法」列は、1台のPCで計算した場合にかかった時間。「クラスタ」列は、エラトステネス法を使った200台構成のクラスタで計算した時にかかった時間。
割り算法(1台) | エラトステネス法(1台) | エラトステネス法(200台クラスタ) | |
---|---|---|---|
10の9乗 | 4時間 | 3分 | 1秒 |
10の10乗 | 計測不可 | 3時間 | 100秒 |
10の11乗 | 計測不可 | 2日 | 766秒 |
このあと、クラスタの台数を変化させてベンチマークをとったところ、「10の9乗」では、30台ぐらいから、「10の10乗」、「10の11乗」ともに50台ぐらいから計算にかかる時間が一定となり、クラスタによる計算時間の短縮が頭打ちになるという結果が発表された。このことから、今回の素数計算では、50台以上のクラスタを組んでも性能向上は見込めないという結論を得たという。
cLANとVIAの高速性
cLANは1.25Gb/s(全2重時2.5Gb/s)のスループットでCPU間接続が可能な、PCIカードとハブのセットで、クラスタシステムの構築に用いられる。CPU間接続の標準インターフェイスであるVIA(Virtual Interface Architecture)を標準採用しているが、TCP/IPによる接続も可能。
ここでは、cLANとVIAの組み合わせが、「cLANとTCP/IP」、「cLANを使用しない100BASE-TXのクラスタシステム」に比べ、どの程度高速であるかを、クラスタシステム用の各種ライブラリを使用してテストした結果が紹介された。
クラスタシステムの構成だが、Pentium III-600MHz、メモリ768MBというスペックの「Netfinity 5600」がサーバマシンに、デュアルPentium III-500MHz、メモリ512MBというスペックの「Netfinity 4000R」12台がノードとして使われている。
ディストリビューションは「Red Hat Linux 日本語版 6.0」、並列計算用のライブラリには、米MPI Software Technology「MPI-PRO」(VIA対応のMPI)、「PVM 3.4.3」、「LAM/MPI 6.3.2」を使用している。
以下の表は、評価項目を、データサイズ、クラスタを接続する際のネットワーク、ライブラリを変えてベンチマークをとり、各項目の性能を1としたときに、cLANとVIAインターフェイス使用時は何倍になるのかを表わしたもの。
評価項目
- Send-Receive(1対1のデータの送受信)
- Broadcast(同一データを各マシンへ送信)
- Scatter(異なるデータを各マシンへ送信)
- Gather(各マシンからデータを収集)
- Reduction(各マシンからデータを収集し、演算)
サイズ | ネットワーク | Send-Receive | Broadcast | Scatter | Gather | Reduction |
---|---|---|---|---|---|---|
100KB | LAM/MPI(cLAN-TCP/IP) | 2.8 | 2.5 | 1.3 | 1.8 | 2.1 |
PVM(cLAN-TCP/IP) | 7.9 | 4.4 | 3.7 | 4.4 | 9.6 | |
LAM/MPI(100BASE-TX) | 7.3 | 14.5 | 3.8 | 5.0 | 4.8 | |
PVM(100BASE-TX) | 13.6 | 27.4 | 8.0 | 6.3 | 12.1 | |
1MB | LAM/MPI(cLAN-TCP/IP) | 36.4 | 13.9 | 2.4 | 3.4 | 18.8 |
PVM(cLAN-TCP/IP) | 10.6 | 6.4 | 5.2 | 5.8 | 9.6 | |
LAM/MPI(100BASE-TX) | 42.2 | 23.2 | 6.9 | 9.7 | 20.4 | |
PVM(100BASE-TX) | 18.4 | 43.0 | 9.1 | 8.8 | 12.7 | |
10MB | LAM/MPI(cLAN-TCP/IP) | 8.2 | 5.0 | 36.6 | 46.9 | 5.1 |
PVM(cLAN-TCP/IP) | 10.8 | 6.7 | 5.6 | 6.9 | 9.8 | |
LAM/MPI(100BASE-TX) | 12.1 | 16.7 | 39.4 | 51.5 | 6.3 | |
PVM(100BASE-TX) | 18.6 | 18.9 | 9.3 | 10.0 | 12.4 |
cLANとTCP/IP
さらに、cLANをVIAインターフェイスではなくTCP/IPで使用した際に、100BASE-TX(で構成されたクラスタ)に対してどの程度速くなるのか? に着目した表が示された。現在では、cLANを使用する際にはVIAではなくTCP/IPに対応したアプリケーションを使用することがまだまだ多く、cLANをTCP/IPで使用した場合の性能を知ることは重要だという。
サイズ | ネットワーク | Send-Receive | Broadcast | Scatter | Gather | Reduction |
---|---|---|---|---|---|---|
100KB | LAM/MPI | 2.6 | 5.8 | 2.9 | 2.7 | 2.3 |
PVM | 1.7 | 6.2 | 2.2 | 1.4 | 1.3 | |
1MB | LAM/MPI | 1.2 | 1.7 | 2.9 | 2.8 | 1.1 |
PVM | 1.7 | 6.8 | 1.7 | 1.5 | 1.3 | |
10MB | LAM/MPI | 1.5 | 3.3 | 1.1 | 1.1 | 1.2 |
PVM | 1.7 | 2.8 | 1.6 | 1.4 | 1.3 |
今回のベンチマークでは、以下のような結果が得られた。
- TCP/IP経由でcLANを利用する場合には、ネットワーク性能から期待されるような性能が出なかった。このことから、LinuxのTCPやUDPソケットのバッファサイズの調整といったチューニングが必要と思われる
- cLANによるクラスタ・システムでは、VIA用に開発された「MPI-PRO」を利用すれば、きちんとネットワーク性能に近いデータ転送速度が得られる