プロが教える店舗&オフィスのセキュリティ対策術

ある友人からはCかC++しか対応していないと聞きましたが、他の人からはFortran77か90でも対応していると伺いました。

私自身は素人ですが、これからパラレルを意識してコーディングをするとした場合CとFortranどちらで始めたほうがよいのでしょうか?後者は過去のがあるので有利ですが、パラレル化出来なければ問題です。そうであれば最初からCで書き直したいと思っています。

アドバイス宜しくお願いします。

A 回答 (7件)

一口にパラレルコンピューティングと言っても、前者がOpenCLを指してて後者がOpenMPを指してるならどちらも間違ってはいないし


http://ja.wikipedia.org/wiki/%E5%88%86%E6%95%A3% …
↑言語的にどっちも適してないんじゃない、というのも正解になるし
他にはPerlにもParallel::MPIというMPIを利用するモジュールがあります
C#用にMPI.NETなんてのもあります

要件にあった一番やりやすいのでやればいいと思います
    • good
    • 0

聞いた話だと、Prolog、Haskell、Erlang辺りも「強い」って話ですけどね。



Prolog入門
http://bach.istc.kobe-u.ac.jp/prolog/intro/

Programming in Haskell
http://www.sampou.org/cgi-bin/haskell.cgi

Erlang World
http://erlangworld.web.fc2.com/

上に参考サイトを挙げておいたので、調べてみてください。
まあ、これが本当なら、「それなりに対応している言語が多い」って事なんでしょう。
    • good
    • 0

Fortran て、今でも生きていたんですね。



これから、やるかも、とのことで、びっくりしました。
自分がやったころは、「Basic Fortran」で
若干、混じりっけのあるような言語でした。

ちょうど
今で言う、パソコン(当時は、マイクロコンピューター)
の時代です。(歳がばれますね)
パラレル制御がどうか、と言われると
判断しかねますが、プログラムの基本を学ぶには
良い言語だと自分は判断します。

C言語系も、きらいではありません。
ただMSが、あまりにオブジェクト指向を前面に出しすぎて
なにもかもごちゃごちゃになって、
判断しかねる。との状況はあると思います。

自分も、いいかげん嫌になって、今現在は Python を模索しています。
これからは、マルチプラットホームで動作するかどうかが
決め手になると思います。
その上で、判断されたらいかがでしょうか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

確かにFortranというと驚く方もいます。目的は科学計算なので過去の蓄積があるので未だに健在なのです。Cはオブジェクト指向の概念が理解できていませんが、少しは使えますし、Windows主体の当ラボではいいかなと思っています。Pythonはコンピュータサイエンス専門の友人から薦められ少し知っていますが、ラボ内での汎用性の見地からFortranかCに絞っている次第です。

あと教えて頂きたいんですが、マルチプラットホームとは多OS上で動作可能という事でいいでしょうか?Fortran77かCであればマルチプラットフォーム対応しているんでしょうか?

お礼日時:2008/12/23 04:30

全く違う話かと思いますが


地球シミュレータ
http://ja.wikipedia.org/wiki/%E5%9C%B0%E7%90%83% …
では、
HPF(High Performance Fortran) を使っていますね。

個人レベルでは難しいと思いますが
こんなものも有るという事だけです。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

こんな大規模なものもあるんですね…。FortranとC/C++と記載があったのでまだfortranも現役だなと感じました(笑)。

お礼日時:2008/12/23 14:25

今、での


マルチプラットホームとは
普通には
UNIX,Linux,Mac,Windows
すべてで動作可能なPG(環境)
と、思っています。

多分、公、にもそう判断されているように思います。

Fortran と C が、どうかは
少々調べてみないと断言できないです。
知識不足で申し訳ありません。

その道で行こうと決心されているようですので
それで良いのではないですか。
    • good
    • 0
この回答へのお礼

再度回答ありがとうございました。

マルチプラットフォームとは、記載頂いた様な多岐なOSの事言うんですね。勉強になりました。

お礼日時:2008/12/23 14:30

もっと、応用を明記して、質問したほうがいいでしょう。



ナンバークランチャ的な応用なら、今でも、Fortranでしょ。
それとも,grid computingみたいなことを考えてるのでしょうか?

この回答への補足

素人で必要情報が不足していたかもしれません。

目的:大規模解析モデルの数値解析処理時間の短縮です。具体的にはFEMやMDモデル等の大規模行列演算、要素間情報取得、要素数値積分等の作業を並列化することです。

ナンバークランチャというのは勉強不足で分かりませんが、グリッドコンピューティングは考えておりません。

以上宜しくお願い致します。

補足日時:2008/12/23 17:12
    • good
    • 0

私はOpenMPとMPIしか知りません。


その上でコメントをさせてもらいます。

FortranでもCでも並列計算は行えます。
好きな方を使えば良いと思います。
Linuxであれば、Fortran、Cのいずれでも、フリーでintelのコンパイラ(非商用)やGCCのコンパイラをインストールして、OpenMPを使うことができます。

大規模な計算をするのであれば、よほどの理由が無い限りインタプリタ(PerlやPython)はやめてコンパイラ(Fortran,C)を使った方が、計算速度の観点から、良いと思います。

分野にも寄りますが、Fortranはまだまだ現役の言語です。
私のまわりにはMD法やFEM法などのコーディングをしている方がたくさんいますが、Cを使っている方の割合の方が少ないくらいです。

最後に、Fortranを使うのであれば、77より90でコーディングすることをお勧めします。Fortran90の方が多機能です。90でコーディングしても77で書かれたモジュールを利用することは可能です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

MPIは友人が授業を受講し少し聞いたのですが、OpenMPというのがあるのですね。フリーのコンパイラでも使えるのはありがたいです。調べています。

あとご指摘の取り大規模計算はコンパイラで行います。Fortran90はラボの設備としてあるか確認してみます。出来れば90にしたいと思います。

ありがとうございました。

お礼日時:2008/12/24 11:57

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