[論文レビュー] Performance Comparison of MPICH and MPI4py on Raspberry Pi-3B Beowulf Cluster
本稿では、モンテカルロシミュレーションを用いてπを推定し、素数を生成する並列計算タスクにおいて、低価格のラズベリーパイ3Bベオウルフクラスタ上でMPICHとMPI4pyのパフォーマンスを評価している。並列処理を活用した場合、高価な6500コアのインテルi7プロセッサシステムを上回る性能を達成したことが示された。これは、HPC教育や実験に、一般のハードウェアを用いることでコスト効率が良いことを示している。
Moore's Law is running out. Instead of making powerful computer by increasing number of transistor now we are moving toward Parallelism. Beowulf cluster means cluster of any Commodity hardware. Our Cluster works exactly similar to current day's supercomputers. The motivation is to create a small sized, cheap device on which students and researchers can get hands on experience. There is a master node, which interacts with user and all other nodes are slave nodes. Load is equally divided among all nodes and they send their results to master. Master combines those results and show the final output to the user. For communication between nodes we have created a network over Ethernet. We are using MPI4py, which a Python based implantation of Message Passing Interface (MPI) and MPICH which also an open source implementation of MPI and allows us to code in C, C++ and Fortran. MPI is a standard for writing codes for such clusters. We have written parallel programs of Monte Carlo's Simulation for finding value of pi and prime number generator in Python and C++ making use of MPI4py and MPICH respectively. We have also written sequential programs applying same algorithms in Python. Then we compared the time it takes to run them on cluster in parallel and in sequential on a computer having 6500 core i7 Intel processor. It is found that making use of parallelism; we were able to outperform an expensive computer which costs much more than our cluster.
研究の動機と目的
- 低価格の一般品ハードウェアで構築されたベオウルフクラスタ上でMPICHとMPI4pyのパフォーマンスを評価すること。
- 学生や研究者にとって、並列計算の実践的経験を可能にするアクセスしやすく安価なプラットフォームを提供すること。
- クラスタ上と高価な商用プロセッサ上で、計算負荷の高いアルゴリズムの並列実装と逐次実装の実行時間を比較すること。
- 安価なハードウェア上で並列処理を適用することで、高価な単一システムの性能を上回ることを実証すること。
提案手法
- イーサーネット接続の8台のラズベリーパイ3Bノードを用いてベオウルフクラスタを構築し、1台をマスターノード、残りをスレーブノードとして指定した。
- モンテカルロシミュレーションによるπの推定と素数生成のため、PythonでMPI4pyを、C++でMPICHを用いた並列プログラムを実装した。
- パフォーマンスベンチマークのため、同じアルゴリズムの逐次版をPythonで開発した。
- クラスタ上および6500コアのインテルi7プロセッサ上で、並列実行と逐次実行の両方の実行時間を測定した。
- 標準的なMPI通信パターンを用いて、ノード間で作業を分散し、結果を集約した。
- 高価なCPU上の逐次実行を基準として、スループットと効率の観点からパフォーマンスを評価した。
実験結果
リサーチクエスチョン
- RQ1ラズベリーパイ3Bベオウルフクラスタ上で並列アプリケーションを実行する際、MPI4pyのパフォーマンスはMPICHと比べてどの程度か?
- RQ2低価格の一般品ハードウェアクラスタは、並列計算タスクにおいて、高価な商用プロセッサをどの程度上回るのか?
- RQ3ベオウルフクラスタ上で並列化を適用することで、強力な単一コアシステムの逐次実行に比べてどの程度のスループット向上が達成されたか?
- RQ4ラズベリーパイを基盤とするクラスタは、並列および分散コンピューティングの概念を教える教育的ツールとしてどれほど効果的か?
主な発見
- モンテカルロ法と素数生成アルゴリズムの並列実装において、ラズベリーパイ3Bベオウルフクラスタは6500コアのインテルi7プロセッサよりも優れたパフォーマンスを達成した。
- クラスタ上の並列実行は、高価なCPU上の逐次実行と比較して、計算時間を顕著に短縮した。これは顕著なスループット向上を示している。
- MPI4pyとMPICHの両方とも、効果的な負荷分散とノード間通信を可能にした。パフォーマンス結果から、実装方法の選択が全体の結果にほとんど影響しないことが示された。
- 本研究は、適切に並列化された一般品ハードウェアが、伝統的な高性能システムに比べてはるかに低いコストで競争力のあるパフォーマンスを提供できることを確認した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。