- 締切済み
Intel+WindowsPCの並列化処理
いまどきのPCですが、Core-i5, メモリ4G, 64ビットにintel Visual Fortran11.1.048をインストールし、コマンドプロンプトにコマンドを入力しながら利用しています。 このような状況でもCPUの分割による並列計算ができると思っています。 自分のプログラム(流体計算系)を以下のようにしてコンパイル、実行してみました。 ifort /Qparallel abc.f↓ abc.exe <ret>↓ 一応、トコトコと最後まで走っていきますが、コンパイラオプション /Qparallelをつけずにコンパイルした場合と速度はほぼ変わりません(同じと言ってもいいぐらい)。自分が何か間違っているか、並列処理では効率が上がりにくいつくりになっているのかわかりませんが。ただ、このコンパイラオプションは自動並列化で、ソースの作り方が少々悪くても対応するのではないかと思っています。 (悪いのは悪いのなりに、比率の比較はできるだろうと思うのですが) また、コンパイラオプションですが、いろんなサイトを見ると、-parallel となっている場合が多いですが、ifort -helpでオプションを調べると、/Qparallel と表示されます、これでいいでしょうか。 もう1つお願いなのですが、フォートランのプログラムで並列化オプションの有無ではっきりパフォーマンスの違いがわかる簡単なサンプルコードがないでしょうか。ラプラス方程式とかポアソンソルバーとか割とソース事態は短くて、並列効果が顕著なコードですが。ネットで見るとあることはありますが、C言語だったりします。 自分で作ると、あまり効果がわからないので、これぞ、並列効果というのがわかるとありがたいです。 また、それによって、自分の環境ががんばり次第で並列化で高速化できるという自信にもなります。 (今効果が出ないのは、ひょっとしたら並列環境のインストールにミスがあるのではないか、私が何か勘違いしているのではないかと疑いもあるからです。) 並列化の処理速度以外でこのコンパイラの動作に異常はないようです。 以上、よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
お礼
ありがとうございます。 ひとまず、複数のCPUで動作していることを確認しました。タスクマネージャのモニター(時系列グラフ)がCPU分が出て、並列オプションの有無でグラフの出方の違いを確認できました。ちょっと不思議だったのは、並列オプションをつけなくても2CPUが動作するということですが、オプションを着けると全部動作します。速度は変わりませんでした。ひょっとしたら、オプションをつけなくても適当に最適化されて2CPUで自然に走ってしまうのではないかということですが。オプションをつけると速度があがらなくても無理やり分割して並列計算をしてしまうのかも。 また、タスクマネージャがタスクバー(ウィンドウ下部バー)を右クリックして起動することも忘備録として書いておきます。