質問: cとfortranの計算速度はどちらが速いですか? マシンスペックは同じとして、osはunixであった場合、科学技術計算(微分方程式を解いたり、行列を対角化したり。。。)の計算速度はどちらが速いですか? 普通、科学計算というとfortranを使っていますが、これはライブラリの遺産が多いからだと思いますが、実際のところfortranとcではどちらが計算速度が速いのでしょうか。
回答: #5=#7=#8 です。 > cのループは再起呼び出しより速度が速く 末尾再帰の話はとりあえず忘れていただくとすると、 cに限らず、一般にプログラムはループで書けるならループで書いたほうが再帰呼び出しを使うより処理は速いですし、必要メモリ量も少なくてすみます。 > さらにfortranでは並列処理によって高速化が計られている ループが高速化されるというより、ベクトル演算が高速化されるといった方が正確かもしれません。 同じループでも、微分方程式を解くときの反復演算のように、r0からr1を求めて、r1からr2を求めて、、、を繰り返すようなループは、ベクトルプロセッサを使ったところで並列化は不可能です。 ベクトルプロセッサの強みは、ベクトルの各要素の計算を一度にやってしまえる点にあります。 v = abs(v) と書けば、vがベクトル長nのベクトルなら、n並列で絶対値の計算をしてくれるわけです。 これをc言語で、 for( i=0 ; i