質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MPI

MPIは、並列プログラミングを利用するための標準化規格、及び実装自体のことを指します。バイト列で構成されたメッセージとして、いくつかのCPUが情報を送受信することにより協調動作を可能にします。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2727閲覧

Fedora release 21、Anaconda3-5.1.0でのmpi4pyのエラー

yuki0000

総合スコア12

MPI

MPIは、並列プログラミングを利用するための標準化規格、及び実装自体のことを指します。バイト列で構成されたメッセージとして、いくつかのCPUが情報を送受信することにより協調動作を可能にします。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/03/06 06:39

編集2018/03/06 11:58

Fedora release 21
Anaconda3-5.1.0
にて
$pip install mpi4py
を実行し、無事インストールできました。

$conda list
とすると、
mpi4py 3.0.1a0 <pip>
と表示され、確かにAnacondaの中に入っています。
PATHも/home/username/anaconda3/binにしてあります。

しかし、mpi4pyを使用しようとすると、以下のようなエラーが出てしまいます。
これはどうすれば解決できるでしょうか?

試験コマンドはこのページを参考にしています。
https://mpi4py.scipy.org/docs/usrman/install.html

[username@host ~]$ mpiexec -np 5 python -m mpi4py.bench helloworld
/home/username/anaconda3/bin/python: No module named mpi4py.bench
/home/username/anaconda3/bin/python: No module named mpi4py.bench
/home/username/anaconda3/bin/python: No module named mpi4py.bench
/home/username/anaconda3/bin/python: No module named mpi4py.bench
/home/username/anaconda3/bin/python: No module named mpi4py.bench

===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= PID 28825 RUNNING AT host
= EXIT CODE: 1
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES

===================================================================================

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

pythonインタプリタでimport mpi4pyはできますか?


以下のコードがをbench.pyと名付けて、mpirun -n 4 python bench.py してみてください。

python

1import sys as _sys 2from mpi4py import MPI 3 4def helloworld(): 5 comm = MPI.COMM_WORLD 6 size = comm.Get_size() 7 rank = comm.Get_rank() 8 name = MPI.Get_processor_name() 9 message = ("Hello, World! I am process %*d of %d on %s.\n" 10 % (len(str(size - 1)), rank, size, name)) 11 comm.Barrier() 12 if rank > 0: 13 comm.Recv([None, 'B'], rank - 1) 14 if True: 15 _sys.stdout.write(message) 16 _sys.stdout.flush() 17 if rank < size - 1: 18 comm.Send([None, 'B'], rank + 1) 19 comm.Barrier() 20 21helloworld()

投稿2018/03/06 11:04

編集2018/03/06 12:09
mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mkgrei

2018/03/06 12:06

pip経由でインストールしていないのですが、おそらくbenchがありません。 ソースからインストールしないとないのかもしれません。 エラーは、 No module named mpi4py.bench です。
mkgrei

2018/03/06 12:14

import mpi4py print(mpi4py.__file__) 以上のコードでモジュールのありかが確かめられますので、bench.pyがあるかどうかを確認できます。
yuki0000

2018/03/06 12:28

ありがとうございます。 /usr/lib64/python2.7/site-packages/mpich/mpi4py/__init__.py と出ます。 このような確認方法があるとは知りませんでした。 /home/username/anaconda3/lib/python3.6/site-packages/mpi4py/__init__.py と出てほしいのですが、そうするにはどうすればいいでしょうか。
mkgrei

2018/03/06 13:20

https://docs.python.jp/3/tutorial/modules.html モジュールの読み込み時の検索順は、 1.入力されたスクリプトのあるディレクトリ (あるいはファイルが指定されなかったときはカレントディレクトリ)。 2.PYTHONPATH (ディレクトリ名のリスト。シェル変数の PATH と同じ構文)。 3.インストールごとのデフォルト。 です。 本来3番になるべきです。今はそうではないので、1か2に引っかかっていると思われます。 PYTHONPATHが設定されていたりするのでしょうか。 echo $PYTHONPATH で確認できます。
yuki0000

2018/03/07 05:03

echo $PYTHONPATH とすると /usr/lib64/python2.7/site-packages/mpich になってしまうので、 .bash_profileに export PYTHONPATH=/usr/local/anaconda3/lib/python3.6/site-packages:$PYTHONPATH と書くことで解決しました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問