CentOS9上にOpenMPI(Python: mpi4py) + OpenMP(C言語: gcc)を動かしていきます。MPIでプロセスを生成して、その各プロセスでMP(C言語)を呼び出し、その中でスレッドを動かします。
1. 必要なモジュールのインストール(root権限で実施)
CentOS9にはPythonはインストール済み -> Python 3.9.19
(1) pipをインストール
$ sudo yum install python3-pip
(2) Python開発モジュールをインストール(これがないとmpi4pyがうまくインストールできなかった)
$ sudo yum install python3-devel
(3) gccをインストール
(4)OpenMPIをインストール+パスの追加$ sudo yum install gcc
$ sudo yum install openmpi
$ echo 'export PATH=/usr/lib64/openmpi/bin:$PATH' >> ~/.bashrc
$ echo 'export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
$ source ~/.bashrc
$ gcc -fopenmp -o omp_program omp_program.c
3. mpi4pyをインストール(ユーザ権限で実施)$ ./omp_program
$ pip3 install mpi4py
さくらサーバの場合警告が出たので、以下を設定してから実行export PSM3_ALLOW_LOC_ALIASES=1export PSM3_ENABLE_SYMMAP=0export PSM3_NIC=ens3export OMPI_MCA_mtl_ofi_provider_exclude="psm3"
4. MPをmpi4pyから呼び出して、プロセス2、スレッド4で動かすmpirun -np 4 python3 run_mpi.py
MPの動作確認gcc -fopenmp -o omp_program_with_rank omp_program_with_rank.c
./omp_program_with_rank 0
Rank 0, Hello from thread 0 out of 6 threads
Rank 0, Hello from thread 3 out of 6 threads
Rank 0, Hello from thread 1 out of 6 threads
Rank 0, Hello from thread 4 out of 6 threads
Rank 0, Hello from thread 2 out of 6 threads
Rank 0, Hello from thread 5 out of 6 threads
(2) [run_mpi_with_rank.py]の作成
実行mpirun -np 2 python3 run_mpi_with_rank.pyRunning on rank 0 out of 2 processorsRunning on rank 1 out of 2 processorsRank 0, Hello from thread 0 out of 4 threadsRank 0, Hello from thread 3 out of 4 threadsRank 0, Hello from thread 2 out of 4 threadsRank 0, Hello from thread 1 out of 4 threadsRank 1, Hello from thread 0 out of 4 threadsRank 1, Hello from thread 3 out of 4 threadsRank 1, Hello from thread 2 out of 4 threadsRank 1, Hello from thread 1 out of 4 threads
0 件のコメント:
コメントを投稿