• 締切済み

intelのfortran, Cのコンパイラ

intelのfortran, CのコンパイラのWindows版についてお尋ねします。 コマンドラインで実行しており、そのような使い方で何も困らないのですが、Microsoft Visual studioを使うことも推奨されるようなのです。デバッガはその方が良さそうですが。 そこでお尋ねします。 1.今一度、用途は何でしょうか。 2.Microsoft visual studioは有償のものでないとダメでしょうか。一度、販売店に聞いたら無償のもの(express)は利用できないということでした。腑に落ちないので両者の方の意見を聞きたいのですが。 3.ずっとコマンドラインで使っていましたが、後からvisual studioをインストールしても問題ないでしょうか。 4.ウィンドウズ上で並列処理(CPUを分割して並列処理する)のに必須でしょうか。mpich2を利用するためにvisual studioの環境を利用するという人がいましたが。Linux版はもちろん関係ないわけですが、並列環境を整えることは可能です。考え方がだいぶ違うわけですがどのように考えるのでしょうか。(質問が漠然としています)。 以上、よろしくお願いします。

みんなの回答

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.4

ANo.2&3です。 OpenMPはMultiProcessing、OpenMPIはMessage Passing Interfaceですから全然別物です。 前者は共有メモリモデルなのでSMP環境でないと使えないですが、後者はメモリを共有しない通信モデルなので別のマシンだろうと同一マシンの別プロセスだろうとお構いなく使えます。 単一マシンでもマルチプロセッサならちゃんと設定すれば効果は出ると思います。 グリッドの設定は自分のマシンの分だけ記載すれば良いのではないかと思いますが。

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.3

ANo.2です。 Visual Fortranは付属のMicrosoft Visual Studio 2010 Shellがあるのでコマンドライン利用にはVisual Studioを入れる必要はないですね。ただこのShellはFortran専用なのでComposer XE等でC++のコンパイルをするときには別途Visual Studioが必要なようです。 /Qparallelとmpich2については並列化のレベルが異なります。 /Qparallelはコンパイラによる自動並列化で、普通にシーケンシャルに書かれているソースプログラムに対して独立性の高いループなどをコンパイラが自動的に抽出して並列化します。使うのに手間はかかりませんが、元のプログラムに分かりやすい並列性がないと大して速くなりません。 mpich2はMPI(メッセージ・パッシング・インタフェース)のライブラリで、MPIを使って並列化したプログラムを書くことで複数マシンの分散環境などで並列実行できるプログラムになります。並列化部分を明示する必要があるので手間はかかりますが並列性能は上げやすいです。 なおmpich2を使うのにVisual Studioが必要ということはないかと思いますが、ソースからビルドするのにC/C++が必要かもしれません。

skmsk19410
質問者

お礼

有難うございます。私が少し混乱していることがあるので、整理させて頂きたいと思います。 複数台のPCで並列計算を行うためのツール(メモリ分散型、グリッド):mpi, mpich2, LAM,OpenMPI 1台のPCで並列計算を行うためのツール(CPU分割、メモリ共有型): OpenMP (OpenMPIとOpenMPは名前がそっくりですが、中身は違うとのこと) インテルのコンパイラのオプション /Qparallel (←windows), -parallel (←Linux)はコンパイラにOpenMPのライブラリが既に含まれているので、自動化で実行するものであるということのようです。 このように解釈してくると、mpich2で1台のPCで並列計算(メモリ共有で)を行うというのは意味がおかしいのでしょうか。私の知り合いで1台のPC(WIndows)でmpich2を使って並列環境を整備したと言っています。できれば私もそうしたいと思っているのです。OSはLinuxかWindows(できればVSなしで)です。 Linuxの場合、mpich2をインストールすることは割と容易なのですが、設定を進めていくと、やはり別のマシン(グリッド)の設定に進んでいくことになります。だから途中でやめるのですが。 少し話がずれてきましたが、よろしくお願いします。

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.2

Intelコンパイラも色々ありますが、どれでしょ? 以下はインテル® Composer XEについて。 http://www.xlsoft.com/jp/products/intel/compilers/compiler_matrix.html 1. リンク環境のためらしいですが・・・。Visual Studioが入ってなくてもビルドできる? 2. GUIでコンパイルするには有償版が必要ですが、コマンドラインツールのみならExpress版でも良いようです。Excpress版はGUIのアドオンができませんからね。あとExpress版だと動作保障対象外かも。 3. 後から入れてダメならIntelコンパイラを再度インストールすれば良いかと。 4. コマンドラインでならライブラリ設定で済むのではないかと。

skmsk19410
質問者

お礼

有難うございます。 使用しているコンパイラはIntel(R) Visual Fortran(R) ..Version 11.1.048です。 Visual studioは仰々しいというか、ウィンドウ開いて、裏で難しいことやってそうですが、コマンドラインは昔ながらの環境設定という感じでギャップを感じています。ただ、前者はデバッグは得意なのだろうなという感じはあります。 並列処理ですが、コンパイラオプションで/Qparallelを指定するのと、mpich2の環境設定によるものとは違うのでしょうか。 /Qparallelを指定すると、タスクマネージャーで明らかに仕事が分割されていることが実感できます。それで本当に高速化されるかどうかは全く別の話ですが。とりあえず環境設定だけのことです。mpich2でやるともっと高速化するのかも知れませんが。

  • f272
  • ベストアンサー率46% (8467/18126)
回答No.1

1. MS VSを使う意味はデバグのためだけでしょうね。というかそれ以上のメリットは感じられない。 2. 昔に同じことを言われました。今のバージョンではどうなのかは知らない。試してみればいいんじゃないかな? 3. 問題ないが,ちゃんと環境が整えられるのかはわからない。問題があれば,もう一度intelコンパイラをインストールすればよい。 4. 並列処理にMS VSが必須かといえばそんなことはない。私の場合はexeを作るのにintelコンパイラwith MS VSを使って,実行時にのみmpich2を使った。

skmsk19410
質問者

お礼

有難うございました。 1つお尋ねするのですが、並列処理にmpich2をお使いになったとのことですが、コンパイラオプション /Qparallelを指定するとそれだけでOKなのではないでしょうか。 intel fortran ver.11.1.048というものです。

関連するQ&A