アプリ版:「スタンプのみでお礼する」機能のリリースについて

並列計算ライブラリのmpichのソースファイルをダウンロードして
コンフィグ、メイクしてインストールしました。
インストール先は/usr/local/mpichです。
ここからは一般ユーザで行いました。
もちろん.bashrcのPATH設定も行いました。
サンプルプログラム(cpi.c)があったのでコンパイルはmpicc -O -o cpi cpi.c
としておこないました。このプログラムはπの近似値を出力するらしい。
ところが、サンプルプログラムをコンパイルして実行ファイル(cpi)が生成される
ものの肝心の実行ができません。
ちなみに実行は以下の手順です。
$mpirun -np 1 cpi

この後C+zするまでとまったまんまです。
πの3.14もでてきません。
どのようなことが原因なんでしょうか?
よいご意見お待ちしております。

A 回答 (1件)

特殊な利用のために、答えを出してくれる人も少ないようです。


小生も、興味本位からダウンロードして、試してみました。

結論から言えば、パスが通っていません。

#または、$プロンプトで、
echo $PATHを実行して、/usr/local/mpich/binが含まれていることを確認してください。

Debian / gnu Linuxのログインシーケンスは分かりませんが、redHatの例では、ユーザホームの ".bash_profile"から、パスや、環境変数を読み込んでゆきますので、この、.bash_profileにパスを追加しました。

小生は、http://www.hpc.co.jp/Technical/MPI-TechNote-01.htm
サイトからのリンク先のftpサイトから、mpich-1.2.0.tar.gzをダウンロードして、インストールしました。好ましくないのですが'root'ユーザでテストしました。

手順は、# /usr/local/mpich-1.2.0 に展開して、
1../configure
2.make
3./usr/local/mpich-1.2.0/examples/basicで
 make cpi
4..bash_profileにパスを追加
5.ログアウトして、再度ログイン
6./usr/local/mpich-1.2.0/examples/basicで
  mpirun -np 1 cpi
で、瞬時にπの結果と誤差が、計算時間と共に表示されました。
  Time = 0.003583秒でした。

cpiのほかに、fpiなどのサンプルもありますがここまでにしておきます。

ディストリビューションにより異なりますが、一般的なログインシーケンスを以下にまとめました。

bash が対話的なログインシェルとして起動されるか、 --login オプション付きの非対話的シェルとして起動されると、 /etc/profile ファイルが存在すれば、 bash はまずここからコマンドを読み込んで実行します。このファイルを読んだ後、 bash は ~/.bash_profile, ~/.bash_login, ~/.profile をこの順番で探します。 bash は、この中で最初に見つかり、かつ読み込みが可能であるファイルからコマンドを読み込んで実行します。

では、ご健闘を祈ります

hogehoge ojin

参考URL:http://www.hpc.co.jp/Technical/MPI-TechNote-01.htm
    • good
    • 0
この回答へのお礼

いやーありがとうございました。
ローカルユーザのホームディレクトリの.bash_profileに
export PATH="/usr/local/mpich-1.2.1/bin:$PATH"
としてsource ~/.bash_profile
を実行しecho $PATH
としたら一番先頭に認識されていました。
最初は
export PATH="$PATH:/usr/local/mpich-1.2.1/bin"
というようにしていたので
認識されるのですが一番最後に付加されるというかたちでした。
ご指摘の通りbashの特性が原因でしたね。
いやー勉強になりました。
本当にありがとうございました(^o^)/

お礼日時:2001/07/27 12:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!