fortran66のブログ

fortran について書きます。

NEC の 次期ス―パーコンピュータ SX-Aurora TSUBASA はキャプテン翼から

PCIe に差すボードの形で、完全に独立にジョブを投げる構成の模様です。最近ブームの AI も、線形代数の問題のようなので、なんとなく成功しそうな気がします。コンパイラは従来のまま Fortran、C、C++ で問題もなさそうです。

 TSUBASAは、「欧州から和名で、わかりやすい名前をつけてほしいというリクエストが挙がったことから、この名称をつけた。欧州では(サッカー漫画の)『キャプテン翼』が有名で、ツバサという名前に親しみがあることから、この名前を選んだ」(福田氏)という。

www.nikkei.com

 OSはLinuxが動作する。ユーザーから見れば、Linuxが動作する通常のx86サーバーとして使える。アプリケーションも、x86向けに書かれたコードがそのまま利用できる。付属している専用のコンパイラFortran、C、C++)を使って再コンパイルするだけで、ベクトルエンジン上で動作するアプリケーションが得られる。

it.impressbm.co.jp

自動ベクトル化・自動並列化機能を備えたコンパイラ

GNU互換環境を装備し、アプリケーションの実効性能を向上させる高度な自動ベク トル化・自動並列化機能を備えたFortran/C/C++コンパイラを提供します。また、システム構成に最適化されたMPIライブラリを提供します。

豊富な科学技術計算ライブラリ

業界標準BLASFFTLAPACK、ScaLAPACKを含む、最適化された科学技術計算ライブラリを提供します。

特長: SX-Aurora TSUBASA | NEC

デバッグの第二法則??

第一法則はなんじゃい?w

The second law of debugging - Loeser - 1976 - Software: Practice and Experience - Wiley Online Library

The second law of debugging
Authors
R. Loeser,
E. M. Gaposchkin


これによると、第二法則は以下のようです。

If you don't see the bug where you're looking,
then you're looking in the wrong place,

馬鹿々々しく見えますが、これは真実だと思います。
嫌な思い出の走馬灯がグルグル回り出しますw

デバッグの三法則

ググったところ、別の所でデバッグの三法則が与えられていて、ここでは上記の第二法則が第三法則になっています。
f:id:fortran66:20171027022254p:plain

books.google.co.jp

メモ帳:週末小ネタ集

"you cannot do all of these at the same time."

パッと見、良さげな約束をしてくれますが、同時には成り立たないのは基本w

The problem with Common Lisp

Now I think that one of the main reasons for this is that while you can write scientific code in CL that will be (1) fast, (2) portable, and (3) convenient, you cannot do all of these at the same time.

Switching from Common Lisp to Julia
Switching from Common Lisp to Julia

COMMON LISP から Julia というところも・・・味わいが


ネスカフェ プレジデントCM 1983年 60秒 コーダー伯爵

1984CM NESCAFE プレジデント プリンス・デ・ラ・トレムイ
味わいは深く濃く


ネスカフェ プレジデントCM 1980年 30秒 ロドルフ殿下
ロドルフ殿下は全てに最高のものを求めるw


Retire Fortran?

A debate: Retire FORTRAN?: Yes (1984)

James R. McGraw
Lawrence Livermore National Laboratory, Livermore, California
http://physicstoday.scitation.org/doi/abs/10.1063/1.2916244

A debate: Retire FORTRAN?: No (1984)

David J. Kuck
University of Illinois, Urbana–Champaign
Michael Wolfe
Kuck & Associates, Inc., Champaign, Illinois
http://physicstoday.scitation.org/doi/abs/10.1063/1.2973891

Retire Fortran? A debate rekindled (1991)

Retire Fortran? A debate rekindled

SisalというLLNL謹製の聞いたことがないPASCAL系の関数型言語FORTRANの比較をしてその並列化での優位を説いています。
Sisal Language Tutorial Table of Contents

sourceforgeに廃墟が・・・
sourceforge.net

結果はKuckのOpenMPFortranが残り、LLNLの並列言語は忘れ去られました。

映画「ドリーム」

FORTRAN と IBM7090 が出てくる映画ということで見てきました。卓上計算機で解いたオイラー法に負けます。

三人の黒人女性がそれぞれ差別と偏見を乗り越えて NASA で活躍するという実話に基づく話です。教育テレビの道徳の時間に流れそうな全く興味のもてない筋書きですが我慢です。アメリカ映画らしく、途中で説教演説も聞かされますが我慢です。

話の細部はボロボロで少女マンガレベルですが、娯楽度とテンポはプリプリちぃちゃんの方が優ります。


映画『ドリーム』予告 IBM編


追記:
www.ibm.com



Using OpenMP 新刊

Using OpenMP の新刊が出るようです。
元々はベンダー毎にばらばらだった並列化 FORTRAN 用のコンパイラ指示行を統一する規格でしたが、20年の時を経て謎の進化を遂げています。

Using OpenMP -- The Next Step: Affinity, Accelerators, Tasking, and SIMD (Scientific and Engineering Computation)

Using OpenMP -- The Next Step: Affinity, Accelerators, Tasking, and SIMD (Scientific and Engineering Computation)

Using OpenMP: Portable Shared Memory Parallel Programming (Scientific and Engineering Computation)

Using OpenMP: Portable Shared Memory Parallel Programming (Scientific and Engineering Computation)

f:id:fortran66:20171015004714j:plain

1982 年の FORTRAN 誕生 25周年記念の集まりの記事

Annals of the History of Computing
Issue 1 • Jan.-March 1984

FORTRAN 誕生 25周年記念特集
IEEE Xplore: Annals of the History of Computing - ( Volume 6 Issue 1 )

このビデオが作られた会のようです。


The Beginnings of FORTRAN (Complete)

全部見たわけではありませんが、色々面白い逸話が紹介されています。

バッカスFORTRAN コンパイラは予定をズルズル遅れて、完成前は IBM 内部でも「できっこない」的な雰囲気だったのに、ひとたび出来上がって好評だと、手のひら返しとか。

FORTRAN コンパイラチームのメンバーの思い出で、本人はいつも遅刻ギリギリに来ていたが、他のメンバーは朝相当早くから揃っていて仕事がはかどっていた。不思議に思っていたら、ビルの向かいのアパートに住んでいる寝間着を着ないで寝ている若い女を見るためだった。その後、仕事場が引っ越してデパートの更衣室が見えるようになって、日がな窓の外を見る奴らばかりで、仕事がはかどらなくなった。最終的に、眺めの悪いところに引っ越すことになって、なんとかプロジェクトが完成したとか。

IBMコンサルタントしていたフォン・ノイマンは、FORTRAN 開発提案に反対しなかったが無関心だった。当時すでに病気が進行していたからかもしれないとか。

当時の人々が、コンピュータ言語というものに懐疑的であった具体的なエピソードなども出ています。ベテランはアセンブラ固執しがちだったが、新参が続々 FORTRAN を使って普及とか。

f:id:fortran66:20171010222618p:plain


McCracken が FORTRAN 本を出版する頃の思い出もあります。

Guide to Fortran Programming

Guide to Fortran Programming

FORTRAN 〓@77E1 入門 (1969年)

FORTRAN 〓@77E1 入門 (1969年)

メモ帳:Modern Fortran の構造について

Fortran の構造

Fortran の分類

Fortran は、約 60 年間に渡って変化・発展してきたプログラム言語で、言語内容からみて FORTRAN I から FORTRAN77 までの 古典 FORTRAN (Classical FORTRAN) と、Fortran90 以降の現代 Fortran (Modern Fortran) に大きく分けられる。

古典 FORTRAN から受け継がれてきたもの

Fortran 言語には、最初期の FORTRAN I/II の頃から現在に至るまで、受け継がれてきた根幹部分がある。その中で

  1. 代入
  2. 配列
  3. SUBROUTINE / FUNCTION の別

が主要と思われる。

型とは二進列を整数や実数などの代数系で演算するためのパラメータ、代入は不可逆な過程で履歴を伴う作用、配列は記憶領域上で等質・連続な抽象データ構造、SUBROUTINE および FUNCTION は処理の抽象化の仕組みで戻り値・副作用の有無の別による。

現代 Fortran で加わったもの

Fortran の現代化改修には、二つの主要部分がある。

  1. 構造化プログラミング [ i) 抽象データ構造 (オブジェクト指向を含む) ii) 制御構造 ]
  2. 並列処理 [ i) 全配列操作 ii) coarray ]

構造化プログラミングは、N. Wirth 流のミニマリズムに則っており、オブジェクト指向関連の用語も Wirth に従っており、継承は拡張 (extention)、メソッドは派生型束縛手続き[?](type bound procedure) と呼ばれている。また例外構文・ジェネリックプログラミングも Wirth に従って、冗長機能として排されている。これは同じく Wirth に則った Google の GO 言語でも同様である。

現代 Fortran には、これらの他に

3. 浮動小数点数関係 [ i) 一般のフォーマット用 ii) IEEE754 用 ]
4. C 言語との相互運用 [ i) 古典 FORTRAN 水準 ii) 現代 Fortran 水準]

等の機能も付け加えられているが、付随的な部分とみなしてよいと思う。

構造化プログラミング

利用者定義派生型、モジュール、派生型束縛手続き[?]
ALGOL, PASCAL, MODULE-2, Oberon-2 (block, type, module, OO)
SUBROUTINE / FUNCTION, recursion
array

抽象データ構造

制御構造

(つづく)


並列化

対象ハードウェアの抽象化・アレイプロセッサ・パイプライン処理・メモリー共有型・分散型
implicit な(自動)並列化、explicit な並列化、コメント指示行、並列用構文
array

全配列操作

coarray

(つづく)


Modern Fortran Explained (Numerical Mathematics and Scientific Computation)

Modern Fortran Explained (Numerical Mathematics and Scientific Computation)

Classical Fortran: Programming for Engineering and Scientific Applications, Second Edition

Classical Fortran: Programming for Engineering and Scientific Applications, Second Edition

メモ帳: N. Wirth の Modula-2 の function

N. Wirth の Programming in Modula-2 1988年版はフォントが小さいので、function の章が 2 ページに収まって、Springer の preview で 全部読めるw

Programming in Modula-2 | Niklaus Wirth | Springer

  • 関数の副作用について

f:id:fortran66:20171005232214p:plain

  • まとめ

f:id:fortran66:20171005232326p:plain
3.副作用について
4.命名法について

Programming in Modula-2

Programming in Modula-2