fortran66のブログ

fortran について書きます。

【メモ帳】google の配列用言語 その他

DEX とかいう Haskell 風の言語

Haskell とか関数型言語だと、再帰の関係でシーケンシャルな順序集合を使いたがるので、配列というO(1)でランダムアクセス最適化可能な等質な構造の利点を生かせない気がするのですが、どうなんでしょう。

初代 FORTRAN コンパイラの開発が遅れたのは配列関係のインデックス操作の最適化に時間がかかったからでしたが。

また浮動小数点数FORTRANの実数型)だと結合則が成立しないので、桁落ちなどを考えると、単純な代数的等式変形も出来ず、最適化化や並列化には純粋性のない醜い規則が必要な気がします。

サンプル・プログラムのモンテカルロでの円周率計算やマンデルブロ集合のプログラムが見られます。

Googleの技術者、配列処理言語「Dex」を発表 - CIOニュース:CIO Magazine

元記事 www.infoworld.com

チュートリアル https://google-research.github.io/dex-lang/tutorial.html

アニメで見た! ILLIAC IV は三分割で多数決

Programming for Hybrid Multi/Manycore MPP Systems 1st Edition John Levesque, Aaron Vose

プレビューしてみたのですが、CRAY でスパコンプログラム最適化生活 50 年みたいなおじさんが面白エピソードを所々に書いています。

www.crcpress.com

§3.1 に 2001年宇宙の旅HAL9000 の元ネタと言われる(イリノイ州アーバナ・シャンペーンでつくられたとか記憶装置のイメージとか)、1960年代の夢の並列スパコン ILLIAC IV が、遅れに遅れて ’70年代に出来たもののあまりに不安定で、筐体の扉を閉めると暴走するとか、NASAでは 64 CPU 並列のところ、21 CPU づつ3分割して同じ計算を同時にやらせ、それぞれの結果を多数決でチェックしつつ利用していたとか(アニメで見たことある!)

西洋の帆船時代の格言に、「気圧計を持ってゆくなら一つか三つにしろ(二つだとどっちを信じるか迷うから)」というのがあったようですが、なかなか味わい深いw

Programming for Hybrid Multi/Manycore MPP Systems (Chapman & Hall/CRC Computational Science) (English Edition)

Programming for Hybrid Multi/Manycore MPP Systems (Chapman & Hall/CRC Computational Science) (English Edition)

amazon のプレヴューでは、§4.8 FORETRAN2003 AND INEFFICIENCIES というセクションで、Modern Fortran スタイルでの最適上の問題点が指摘されています。また C++ で可能な最適化された性能を出すことの困難性にもそちこちで触れられています。

なお ILLIAC IV の並列ソフト担当の David Kuck が OpenMP につながっています。