FORTRAN

大学のときにほぼ自由に触れるマシーンとして
SR8000 http://www.kek.jp/kids/closeup/qcd/
というのがあった。

私の大学のSR8000は4ノード32GFlopsという構成だったが、
無料で投入できるジョブは1ノード8GFlopsまでだった。


で、少し試してみたわけですが、最大8GFlopsのところ、
私がC言語でマーク出来たのは精精2GFlopsでした。。。
最大値の1/4しか出せなかった。。。

一般的なC言語(C87だったかな?)はポインターの重なりがどーのこーのとかいって、
明示的にプラグマ命令を埋め込まない限り、全然要素並列化してくれませんでした。

新しいC言語(C98だったかな?)には、それを解決するような機能(restrictだったかな?)
が盛り込まれていたような気がするが、残念ながらもうスーパーコンピューターを使う機会は無いだろう、
というわけでよく覚えていない。


私はFortranは全然分からないわけですが、
そんな私が書いたコードでもFortranなら勝手に並列化してくれて、
苦労して書いたのコードを上回る2.5GFlopsくらいを出せました。

流石Fortran?と言えるのか?微妙。。。