[論文レビュー] Parallelize Bubble and Merge Sort Algorithms Using Message Passing Interface (MPI)
この論文では、マルチコアシステムにおけるソートのパフォーマンスを向上させるために、メッセージパッシングインターフェース(MPI)を用いたバブルソートおよびマージソートの並列実装を提案している。入力データを単語の長さに基づいてサブアレイに分割し、Intel i7-3610QM(8コア)を用いたMPIを活用することで、2つのデータ構造—文字列のベクタと3次元配列—を評価した。その結果、3次元配列アプローチがメモリアクセスのオーバーヘッドを低減するため、より優れたパフォーマンスを示した。
Sorting has been a profound area for the algorithmic researchers and many resources are invested to suggest more works for sorting algorithms. For this purpose, many existing sorting algorithms were observed in terms of the efficiency of the algorithmic complexity. In this paper we implemented the bubble and merge sort algorithms using Message Passing Interface (MPI) approach. The proposed work tested on two standard datasets (text file) with different size. The main idea of the proposed algorithm is distributing the elements of the input datasets into many additional temporary sub-arrays according to a number of characters in each word. The sizes of each of these sub-arrays are decided depending on a number of elements with the same number of characters in the input array. We implemented MPI using Intel core i7-3610QM ,(8 CPUs),using two approaches (vectors of string and array 3D) . Finally, we get the data structure effects on the performance of the algorithm for that we choice the second approach.
研究の動機と目的
- マルチコアアーキテクチャ上でMPIを用いた並列化により、ソート効率を向上させること。
- 並列環境におけるデータ構造設計(文字列のベクタ対3次元配列)がソートパフォーマンスに与える影響を調査すること。
- さまざまなサイズの標準データセットを用いた、並列化されたバブルソートおよびマージソートのスケーラビリティとパフォーマンスを評価すること。
- 単語の長さの特徴に基づいて、入力データをプロセス間で最適に分散する方法を特定すること。
提案手法
- 各単語の文字数に基づいて入力データセットをサブアレイに分割し、プロセス間でのワークロードをバランスさせる。
- Intel i7-3610QMプロセッサの8コア上で実行されるプロセス間のデータ配布と通信をMPIを用いて制御する。
- メモリアクセスパターンとパフォーマンスの比較のため、文字列のベクタと3次元配列の2つのデータ構造を実装する。
- バブルソートおよびマージソートアルゴリズムをMPIを用いて独立して並列化し、各サブアレイで局所的にソートを実行した後、マージソートでは最終的なマージ処理を行う。
- さまざまなサイズの標準テキストファイルを用いて、両方のデータ構造における実行時間とパフォーマンスを測定・比較する。
- 実行時間とメモリアクセス効率に基づいて、より優れたアプローチを最終的に決定する。
実験結果
リサーチクエスチョン
- RQ1単語の長さによるデータ分割は、MPIを用いた並列ソートにおける負荷バランスにどのように影響するか?
- RQ2MPIにおける分散データの格納とソートに、文字列のベクタと3次元配列のどちらがパフォーマンスに優れているか?
- RQ3マルチコアシステム上でMPIを介して並列化された場合、バブルソートとマージソートはどのようにスケーリングするか?
- RQ4並列ソートにおける通信およびメモリオーバーヘッドを最小限に抑えるために、データ構造設計はどのような役割を果たすか?
主な発見
- 3次元配列データ構造が、メモリローカリティの向上とアクセスオーバーヘッドの低減により、文字列のベクタを上回るパフォーマンスを示した。
- 大規模なデータセットでは、並列化されたマージソートが並列化されたバブルソートよりもスケーラビリティが高く、実行時間が短かった。
- 単語の長さに基づくデータ分割により、プロセス間でのワークロードが効果的にバランスされ、全体の効率が向上した。
- MPIベースの実装により、マルチコアシステム上でのソート時間を有意に短縮でき、大容量入力データに対して明確なパフォーマンス向上が得られた。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。