CLion で OpenMPI プロジェクトを操作する方法
OpenMPI(英語) は、高性能並列コンピューティングをサポートするために設計された標準である メッセージパッシングインターフェース (MPI)(英語) ライブラリのオープンソース実装です。 OpenMPI は、いくつかの MPI プロジェクトのテクノロジーとリソースを組み合わせたものです。
このチュートリアルでは、CLion で OpenMPI プロジェクトの設定、ビルド、実行、デバッグの手順を案内します。 この手順は一般的なものであり、ソースに適用できます。 手順を説明するために、OpenMPI 関数を含む単純な C++ アプリケーションを使用します。 macOS で作業する場合の手順を記載しています。
0. 始める前に: システムに OpenMPI をインストールする
OpenMPI を ダウンロード(英語)して ビルドします(英語)。 エラーが発生した場合は、同じ公式 FAQ ページに記載されているトラブルシューティングのヒントを試してください。
簡単な確認として、コマンドラインから
mpiccを実行してください。システムがコマンドを認識するはずです。
1。 CLion で新しいプロジェクトを作成する
メインメニューから を選択するか、'ようこそ' 画面で 新規プロジェクト をクリックします。

左側のペインで、プロジェクトタイプ (この例では C++ 実行ファイル) を選択します。
プロジェクトの場所を指定し、言語標準を設定します。
作成 をクリックします。
CLion はスタブ CMake プロジェクトを生成する:

2。 ソースファイルを追加する
ソースファイルをプロジェクトフォルダーにコピーします。
この例では、ファイルは openmpi_test.cpp および openmpi_test.h です。 サンプルとして使用する場合、または独自のファイルを使用する場合は、以下のコードをコピーして貼り付けます。
#include <mpi.h> #include <cstdio> void print_processors() { // Initialize the MPI environment MPI_Init(nullptr, nullptr); // Get the number of processes int world_size; MPI_Comm_size(MPI_COMM_WORLD, &world_size); // Get the rank of the process int world_rank; MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); // Get the name of the processor char processor_name[MPI_MAX_PROCESSOR_NAME]; int name_len; MPI_Get_processor_name(processor_name, &name_len); // Print off a hello world message printf("Hello world from processor %s, rank %d out of %d processors\n", processor_name, world_rank, world_size); // Finalize the MPI environment. MPI_Finalize(); }#ifndef OPENMPI_TEST_OPENPMI_HELLO_H #define OPENMPI_TEST_OPENPMI_HELLO_H void print_processors(); #endif //OPENMPI_TEST_OPENPMI_HELLO_H#include "openmpi_test.h" int main() { print_processors(); return 0; }この時点では、新しいファイルはまだ CMake プロジェクト構造に追加されておらず、OpenMPI コードは IDE によって認識されません。

ファイルを CMake に追加します。
単一のファイルを追加するには、通知バーの CMake プロジェクトに追加 をクリックします。
複数のファイルを追加するには、プロジェクトツリーでファイルを選択し、コンテキストメニューから CMake プロジェクトに追加 を呼び出します。
ターゲットを選択すると、CLion がファイルを自動的に追加する:

3。 CMakeLists.txt を調整してプロジェクトをロードする
CMakeLists.txt ファイルを開き、次の変更を加えます。
add_executableの前に次の行を追加します。find_package(MPI REQUIRED)add_executableの後に次の行を追加します。target_link_libraries(<your_project_name> PRIVATE MPI::MPI_CXX)CMakeLists.txt コンテンツの例:
cmake_minimum_required(VERSION 3.25) project(openmpi_test) set(CMAKE_CXX_STANDARD 17) # Add MPI Package to Project find_package(MPI REQUIRED) add_executable(openmpi_test main.cpp openmpi_hello.cpp) # Link MPI libraries target_link_libraries(openmpi_test PRIVATE MPI::MPI_CXX)CMakeLists.txt に変更を加えると、CLion にプロジェクト構造の再ロードを提案するアイコンが表示されます。 それをクリックするか、ショートカットを押します:

CMake の再ロードとプロジェクトのビルドは正常に完了するはずです。

エラーがある場合は、 CMakeLists.txt と OpenMPI のインストールを再確認してください。
バイナリは cmake-build-debug フォルダー (または、変更した場合は別のビルド場所) で見つけることができます。

4。 プログラムを構築する
次のいずれかのオプションを使用します。
メインメニューから を呼び出します。
このアクションの詳細については、「ビルドアクション 」を参照してください。
CLion は、 CMakeLists.txt で検出された各ターゲットのために、タイプ CMake アプリケーション の構成を自動的に作成します。
設定を使用してターゲットをビルドするには、スイッチャーでターゲットを選択し、ハンマーアイコンをクリックするか、 Ctrl+F9 を押します。

5. (オプション) CMake プロファイルを構成する
CMake プロファイル設定では、ビルドオプション、環境変数、ビルドディレクトリ、その他のパラメーターを調整できます。
に進みます。
このダイアログでは、プロファイル設定を編集したり、プロファイルを作成 / 削除したりできます。 詳細については、 CMake プロファイルを参照してください。

プロジェクトのプロファイルは構成スイッチャーに一覧表示されます。 CMake 構成をビルドする前に、必要なプロファイルを選択してください。

5. アプリケーションの実行
OpenMPI プログラムは、特別なランチャー mpiexec、 mpirun 、または orterun (OpenMPI でシリアルジョブとパラレルジョブを実行する場合の同義語) で実行する必要があります。 必要なプログラム引数を使用してこれらを呼び出すには、CLion の シェルスクリプト 構成を使用します。
メインメニューで へ移動します。
をクリックし、 シェルスクリプト を選択します:

構成設定を調整します。
構成名を編集します。
実行: で、 スクリプトテキスト を選択します。
スクリプトテキスト で、プログラムを実行するコマンドを指定します。
この例では、
mpiexec -n 4 ./cmake-build-debug/openmpi_testです。

設定を保存し、スイッチャーで新しく作成した構成を選択し、
をクリックするか、 Shift+F10 を押します。

プログラムは正常に起動するはずです。 CLion は、 ターミナルエミュレータ ツールウィンドウに出力を表示する:

6。 プロセスにアタッチしてデバッグする
CLion で OpenMPI アプリケーションをデバッグするには、まずアプリケーションを起動し、実行中の各プロセスにデバッガーをアタッチする必要があります。
目的の行の横にある左側のガターをクリックして、コードに ブレークポイントを配置します。
各ブレークポイントの前に次のコードを追加します。
int i = 0; while (!i) sleep(5);sleep(5);行にブレークポイントを配置します。
または 構成を使用して再構築します。
デバッグ プロファイルが選択されていることを確認してください。
シェルスクリプト構成を実行します。 スイッチャーでそれを選択し、
をクリックするか、 Shift+F10 を押します。

Ctrl+Alt+F5 を押すか、メインメニューから を選択します。
表示されたダイアログで、アタッチするプロセスを検索し、 ... で取り付けます をクリックします。

デバッグツールウィンドウ の「変数」ペインで、
iを選択し、 F2 を押します。 ゼロ以外の値を設定します:
通常どおりデバッグを続行します。
デバッガーをアタッチした状態で、 さまざまな種類のブレークポイント、 ステップアクション、 メモリや 逆アセンブリビュー、 式の評価など、すべての CLion デバッグ機能を利用できます。

別のプロセスをデバッグするには、手順 6 ~ 9 を繰り返します。