• 締切済み

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% (7995/17090)
回答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

  • FORTRANとC++の連動について

    私は,Fortranを用いて解析の業務をしている,プログラム初心者です。 購入したのは,Intel Visual Fortran8.0(VF)ですが,Windows環境でコンパイルリンクするには,Microsoft Visual C++ .NET 2003(VC++)が必要ということで,こちらも購入しました。 普段は,Fortranのコンソールで ifort **.f といったコマンドでコンパイルリンクし,実行しているだけです。 これからは,VC++の方に移行していきたいと考えていますが,しばらくはFortranで作成したサブルーチンを有効活用したと考えています。 そこで,VC++ベースのメインプログラムからFortranのサブルーチンを呼び出すプログラムの作成方法,コンパイルリンク方法をご教授ください。よろしくお願いします。 (1)ソースにどう記述するか? void CMyDlg::OnBnClickedOk() { ここで,FORTRANのサブルーチンを呼び出したい。     Fortranなら call subroutine( a, b ) } (2)コンパイルするときは, Visual Studio開発環境で,コンパイル→実行で良いのか? それとも,あらかじめVC++とVFで.objファイルを作成する必要があるのか?

  • Visual studio.NETとは何者?

    Windows上で科学技術系のプログラム作っています。 Visual studio.NETというものがあり、何か科学技術系の開発ソフトをインストールすると、これが入っていることが前提であるとか、ソフトをインストール中にVisual Studio.NETのダウンロード・インストールを促されたりとかすることがあります。 わたしは、コマンドプロンプトを叩いてコマンドでソフトを操作したりするので、特にVisual Studioなるものを使っているという感じがしません。 これはいったい何をやっているのでしょうか。また、Visual Studio.NETは有償版・無償版(確かエキスプレスエディション?)などあります。開発環境のセットアップなのでしょうか。環境設定だったらコマンドプロンプトのところでもできそうです。コンパイル・リンクするときに必要なファイルをかき集めたりするのでしょうか。 実際にVisual Studio.NETを要求されたものは以下のようです。 コンパイラ intel fortran 並列環境 mpich 科学技術データ視覚化ソフト micro AVSの機能の一部を使うとき これ以外にもありそうです。

  • デバッグしますか?というエラーメッセージ

    Microsoft Visual Studio 2005を入れてからなんですが、 他のプログラムを利用しているときたまに、 「ハンドルされていないWIN32の例外が発生しました」とメッセージが出て、 「利用可能なデバッガ」とでてそこの選択欄に「Microsoft Visual Studio 2005」 があります。 「選択したデバッガをデバッグしますか?」という項目で「はい」を選ぶと Microsoft Visual Studio 2005が立ち上がり、「いいえ」を選ぶと そのプログラムが強制終了します。 これは、なんでしょうか??困っています。

  • FORTRAN95を使用したいのですが・・・

    以下のサイトからフリーソフトであるFORTRAN95をダウンロードして使用したいと思っています。 http://www.silverfrost.com/11/ftn95/ftn95_fortran_95_for_windows.asp ですが、それには.NETを使用しているという条件が必要らしく、いろいろ探してみた結果、Visual Basic 2005 Express Edition のダウンロード版が無償でダウンロードできるらしいのです。 http://www.microsoft.com/japan/msdn/vstudio/express/ ですが、このVisual Basic 2005 Express Edition のダウンロード版でFORTRAN95を使用できるのかがよくわかりません。 このダウンロード版はNET Frameworkには対応しているようなので問題ないとは思うのですが、Visual Basic 2005 Express Edition のサイトにはFORTRAN95について記載されていません。 私自身がど素人であることも判断ができない要因の一つです。 Visual Basic 2005 Express Edition の無償版でFORTRAN95を使用することは可能なのでしょうか? また、使用できない場合、無償で使用できる同様のフリーソフトなどは ありますでしょうか? FORTRANやプログラミングに詳しい方、お知恵を貸してください。 よろしくお願い致します。

  • CとFORTRANのリンクについて

    C/C++(MAIN)とFORTRAN(SUB)のリンク時エラーの対応策をご教授願いたい 環境(WIN2000/Visual Studio .NET 2003統合環境/IntelFortran9.0/にて FORTRAN(SUB)をLIBとして、C/C++プロジェクトにてリンクしようとして 参照エラーが多発する  ▼問題のリンクエラーメッセージ--------------------------------- error LNK2019: 未解決の外部シンボル _for_emit_diagnostic が関数 _input で参照されました。 同上 _for_open が関数 _input で参照されました。 同上 _f_ldnint_val が関数 _ransu で参照されました。 その他、同上エラーが多発 -------------------------------------------------------------- 多分、FORTRAN側のライブラリ関係が、Cリンカーに設定できていないのでは と推測し検討中だが、手がかりがつかめない状態です 何かヒントでもあれば幸いです。

  • Fortranについて,fatal error LNK1181

    Fortranをインストールしてプログラムをコンパイルしようとすると,以下のエラーが出ます. LINK : fatal error LNK1181: cannot open input file "C:\DOCUME~1\dfor.lib" 正常に作動させるにはどうしたらいいでしょうか.何か足らないものがあるのでしょうか.以下のフォルダに, インストールCDに入っているLIBファイルをすべてコピペしてみたのですが,変わりなしです. C:\Program Files\Microsoft Visual Studio\DF98\LIB OSはXP,今回インストールをしたFortran及びプログラム作成をしたFortranは,共にVisual Fortran 6.0です.何か打開策があれば助言お願いします.

  • 64ビット コマンドライン Cプログラミング

    私の環境は以下のとおりです CPU x6800 メモリ 8GB Vista 64 sp1 Visual studio 2005 やりたいことは、コマンドプロンプト[ > ] で 大きな配列 char dem[1000][1000][2000] を使うCプログラムを作成し使用すること。 質問したいことは、 コマンドラインの環境設定(PATH: bin lib include) コンパイラ リンカ の/オプション はどのように設定したらよいのでしょうか。 現状は work.c のコンパイル+リンク で work.exe はエラーなく成功するのですが 実行すると、{ work.exeは有効な win32 アプリケーションではありません。} というエラーが出て実行できません。 配列の要素を2000->1000にすればもちろんエラーは出ません。 なおこのときのコマンドプロンプトは  Visual Studio 2005 x64 Win64 コマンド プロンプト PATH は次のようになっています。 PATH=C:\Program Files (x86)\Microsoft Visual Studio 8\VC\BIN\amd64;  C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\bin\win64\amd64;  C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\bin;  C:\Windows\Microsoft.NET\Framework64\v2.0.50727;  C:\Program Files (x86)\Microsoft Visual Studio 8\VC\VCPackages;  C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE;  C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools;  C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools\bin;  C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\bin;  C:\Windows\system32;C:\Windows;  C:\Windows\System32\Wbem;  C:\Windows\System32\WindowsPowerShell\v1.0\ 先達のご教示をお願いいたします。

  • 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言語だったりします。 自分で作ると、あまり効果がわからないので、これぞ、並列効果というのがわかるとありがたいです。 また、それによって、自分の環境ががんばり次第で並列化で高速化できるという自信にもなります。 (今効果が出ないのは、ひょっとしたら並列環境のインストールにミスがあるのではないか、私が何か勘違いしているのではないかと疑いもあるからです。) 並列化の処理速度以外でこのコンパイラの動作に異常はないようです。 以上、よろしくお願いします。

  • Javaのコンパイラ!!

    いま、C++言語の学習中です。 次はJavaかなぁと思っている今日この頃。。。 Javaのプログラムはコマンドプロンプトでコンパイルできるのは経験済みです(超初歩ですが・・『こんにちは』と表示させたりです) コマンドプロンプトはちょっと使い勝手が悪いので・・ コマンドプロンプト以外でJavaをコンパイルするフリーソフトはありますか?? できれば、使い方が載っているホームページがある方がよいのですが。。 Visual studio でもいいのですが英語版で・・・使いにくいかなぁと思っており、Javaでアプリを作成するくらいまでには成長したいとはおもっています。 C/C++ のコンパイラはCygwin とか Visual C++ を使っています。

    • ベストアンサー
    • Java
  • visual studio と developer studio の違い

    fortran90 のプログラムをコンパイル+実行したいのですが、 Microsoft developer studio というソフトの使い方がいまいち分かりません。 そこでyahooでMicrosoft developer studio で検索したところ、Microsoft visual studio というものがヒットしました。 見てみると両方とも無限大?みたいなマークで似ているのですが、何が違うのですか?教えてください。 また、Microsoft developer studio の使い方で良いページがあれば、教えていただけると嬉しいです。 コンパイルしたいfortran90のプログラムはモジュールを用いています。

専門家に質問してみよう