fortran66のブログ

fortran について書きます。

【メモ帳】LLVM 新Fortran コンパイラ f18 無理やりインストール

LLVM f18

LLVM の言語の中にはすでに flang という Fortran コンパイラがあるのですが、フロントエンドが NVidia/PGI の提供になっています。

これを C++17 のようなモダン C++ で新たに書き直そうとしているのが f18 です。

以前、試してみた時はうまく動かなかったのですが、最近 WSL/Ubuntu18.04 で一応コンパイル&実行できたのでメモっておきます。
fortran66.hatenablog.com

github.com

f18 のページにビルド&インストールの手引きがあるのですが、その通りにやってもビルドはされますが、インストールがされません。今回これを手作業で1個1個それらしきものをコピーして、何とか行くようになりました。

まず llvm 環境一式が必要なのですが、適宜用意してくださいw 並列実行でもコンパイルに半日くらいかかるので寝る前に始めるとよいかと思います。

写し

llvm をデフォでインストールすると /usr/local 以下にファイルがはいります。指示に従ってその場所を環境変数に入れておきます。入れなくても次の cmake のところでで何とかなります。

cd f18
mkdir build
cd build 

export LLVM=/usr/local

cmake -DLLVM_DIR=$LLVM -DCMAKE_INSTALL_PREFIX=/usr/local/bin -DCMAKE_BUILD_TYPE=Release  ..

make -j 8 

これで build は出来ます。しかし sudo make install しても「指示分からじ」と言われて窮します。そこで、これでいいのか分かりませんが、手動でファイルをコピーしてゆくことにします。遊び環境で試してください。

sudo cp include/flang/Config/ /usr/local/include/flang/Config/

sudo cp lib/FIR/libFortranFIR.a /usr/local/lib

sudo cp lib/common/libFortranCommon.a /usr/local/lib

sudo cp lib/evaluate/libFortranEvaluate.a /usr/local/lib

sudo cp lib/parser/libFortranParser.a /usr/local/lib

sudo cp lib/semantics/libFortranSemantics.a /usr/local/lib

sudo cp runtime/libFortranRuntime.a /usr/local/lib

sudo cp  tools/f18/f18 /usr/local/bin

sudo cp  tools/f18/f18-parse-demo /usr/local/bin


これで実行できます。ただしコンパイラドライバは、f18-parse-demo になっています。

program hello
    eps = epsilon(1.0)
    print *, eps
    print *, nearest(eps, +1.0)
    print *, nearest(eps, -1.0)
end program hello
f18-parse-demo eps.f90
./a.out

   1.19209290E-07
   1.19209304E-07
   1.19209282E-07

Modern Fortran Explained: Incorporating Fortran 2018 (Numerical Mathematics and Scientific Computation)

Modern Fortran Explained: Incorporating Fortran 2018 (Numerical Mathematics and Scientific Computation)

【ニュース】新刊など

Computational Quantum Mechanics

Kindle 対応?

Computational Quantum Mechanics (Undergraduate Lecture Notes in Physics)

Computational Quantum Mechanics (Undergraduate Lecture Notes in Physics)

www.springer.com
第一章が 浮動小数点等数値の話で、第二章が Fortran、第三章が Python で、ここまでで第一部の計算機の説明がおわり、以下具体的問題に移ります。

プレヴュー出来るところに、FortranPython それぞれの利点がまとめられています。

Fortran and Python. Feel free to learn either or both; throughout the book, examples are presented using both programming languages.

Fortran 90/95 is recommended for this book for the following reasons:
• Its history: designed specifically for scientific computation, Fortran is focused on array and matrix computations, and many highly optimised mathematical and scientific libraries are still written in Fortran.
• Its speed: as a result, array and matrix computations are much faster than other programming languages such as Java, MATLAB, and Mathematica, even faster than C in most situations.
• It can be easily parallelised for use in high-performance computing environments, an increasingly important resource in the twenty-first century.

While Fortran remains pervasive in scientific computation, the field is slowly moving towards more modern programming languages such as Python, which are being extensively developed with the scientific community in mind. This increase in popularity is well justified, as can be seen from the following:

• It is easy to learn: Python has a relatively simple syntax; as such, it is reasonably straightforward to read and learn.
• Its ecosystem: more and more scientific libraries are being written in Python, making for a rich ecosystem, even for niche fields. Some of these libraries are even written in Fortran, providing speeds in Python almost comparable to native Fortran.
• It makes problem-solving faster: Python does not need to be compiled and can be used in a web-based notebook interface.


そのうち始まる Springer 安売りで買ってみようかしらん。


Fortran 土木グラフィックス本?

Programming With Fortran Graphics And Engineering Application

タイトルと表紙絵が合っていないし、謎が多い本w

Concrete Mathematics: A Foundation for Computer Science

Concrete Mathematics: A Foundation for Computer Science

『漢字の字形-甲骨文字から篆書、楷書へ 』

みんな大好き落合淳思てんてーの新作。買いたい。

漢字の字形-甲骨文字から篆書、楷書へ (中公新書)

漢字の字形-甲骨文字から篆書、楷書へ (中公新書)

【寝言】小学生用プログラミングドリル その他

小学生用プログラミングドリル

nlab.itmedia.co.jp

FORTRAN 塗り絵

Fortran創始者 J. Backus は四色問題にも手を出していたので、塗り絵と Fortran は緊密な関係にあるのです。
archive.org

絵解き Fortran ~ Illustrating FORTRAN

books.google.co.jp

FORTRAN ゲーム

入力:理性 出力:喜び
憲法に「幸福の追求」が書いてあるアメリカらしいゲームw 18世紀的 The Age of Reason からの The Pursuit of Happiness!
Fortran Board Game

パリの可哀想な人達 The Poor People Of Paris

www.dailymail.co.uk

15:46~
youtu.be
21:40~
youtu.be

コンビニは持続不能

最近、コンビニに行くと急激に店員の人相が悪くなっていて、もう限界だなと分かる。

大分前から仕事の種類が増えすぎて、持続不能なのは明らかだったが、さらに重荷を載せ続けようとする馬鹿な本部は嗤うべきものがある。

経営者が無能過ぎるw 本部の連中の老親と子供をコンビニで働かせることを義務化すべきw あとジャスコ岡田屋社員は三食+おやつマックス・バリュを食うことを義務化すべし。

Newsweek が韓国上げw

ペンス演説以降、熱心に中国叩きをしてくれていた Newsweek でしたが、近頃奇妙に韓国擁護を繰り返しているので笑えます。

一方、♪ぶん ぶん ぶ~ん 文鮮明統一教会系の在韓白人が文大統領批判をし、統一教会系のワシントンポストも韓国批判を始めたので、高みの見物と行きたいところです。

原爆を欲しがる南北朝鮮は両方とも厳しい制裁を下すべきでしょう。朝鮮はドリトル先生に出てきた、胴体は一つ頭が二つあってお互いを罵り合ってる愚かな驢馬を連想させます。

f:id:fortran66:20190320021030j:plain
ドリトル先生アフリカ行き

【ニュース】Mozilla の Iodide を阻むは我らが Fortran!

The Iodide notebook

最近、Mozilla が Jupyter 類似の Notebook 形式のインタラクティブ文書化ツールを出すというニュースが流れてきました。
news.mynavi.jp

github.com


中々面白そうで、Jupyter と異なるのは、サーバーを置かずに端末側のブラウザの方で主に処理するというアプローチのようです。


Iodide and Pyodide: Bringing Data Science Computation to the Web Browser - Michael Droettboom

そのためには、ブラウザ側での高速動作が要求されますが、WebAssembly によってそれを解決しようということで、Python や numpy など C 言語で書かれたものは、すでに移植済みだそうです。

しかし、Scipy は Fortran を使っているので、移植できていないようです。LLVM Fortran なら WebAssembly が出せなくもないのですが、ランタイムなどが無いので実質動きませんw

R も Fortran を使っていて、こちらも Fortran が通せんぼしているようです。そういうわけで、解決策として MozillaFortran の WebAssembly 対応をさせようと考えているようです。

f:id:fortran66:20190320004403j:plain
Fortran
youtu.be

Fortran に奉仕して、花と散れ。
講演中で Fortran にブーイングしたものには、天罰が下って Fortnite で練習したネトゲ厨に撃たれて死ぬ!

f:id:fortran66:20090105142523j:plain
Max Klinger: First Future

【寝言】スティーブン・バノン氏来日!

バノン氏

APA が呼んでいるのかな?
ASA 朝日新聞が顔を真っ赤にして噛みついているのが草

www.yomiuri.co.jp

www.zakzak.co.jp

www.hokkaido-np.co.jp

www.asahi.com
news.tv-asahi.co.jp


バブル期のバノン氏

かんべえの不規則発言

○ところがバノン氏、こんなことを聞き捨てならないことを言っていたんだそうです。

「俺も昔は東京によく来たもんだ」

「その当時は映画の仕事で日商岩井に通っていた」

「え?赤坂のあのビルはなくなるのか?」

【ニュース】Intel Fortran v.19 update3 出た!

Intel® Parallel Studio XE Composer Edition for Fortran Windows* 2019

Version: Update 3 Eng/Jpn

Overview:

  • Added strict CNR mode in Intel® Math Kernel Library for bitwise reproducibility on certain functions and certain instruction sets.
  • Extended Roofline Compare feature in Intel® Advisor with automatic matching of dots between results.
  • Added ability to generate HTML-based rank-to-rank communication diagram by message volume in Application Performance Snapshot.

インテル® ソフトウェア・ツールにおける浮動小数点結果の再現性 不確実性の払拭

http://www.isus.jp/wp-content/uploads/pdf/TheParallelUniverse_Issue_34_02.pdf

少し前の記事ですが、ビットレベルでの結果の再現性を求めるとスピード 1/10 位まで落ちる場合もあると。

そもそも機械語レベルで積和計算がレジスタ上で連続して行われたら、IEEE754 に忠実な演算ごとの丸め処理が行われないので、IEEE754 計算上での再現性を出すには機械語レベルで相当のろいコードを出さねばならないでしょう。Intel CPU 間での再現性に限れば条件は緩和されそうですが。

そもそも浮動小数点数の計算では結合則が成り立たないのだから、原理的にほとんどの最適化は出来ないし、実数計算からズレた結果を再現性をもって計算しても、チェックという点では意味があっても、計算という点では意味がないと思います。相応の分散を持った答えを返す方が素直。

昔の帆船時代に、気圧計をもっていくなら1個か3個にしておけ、2個だとどっちを信じていいか分からないから、という言い伝えを思い出します。

Fortran ハンドブック

Fortran ハンドブック

C/C++、FortranプログラマーのためのインテルParallel Stud―Windows、LinuxおよびMac OS 10

C/C++、FortranプログラマーのためのインテルParallel Stud―Windows、LinuxおよびMac OS 10

Modern Fortran Explained: Incorporating Fortran 2018 (Numerical Mathematics and Scientific Computation)

Modern Fortran Explained: Incorporating Fortran 2018 (Numerical Mathematics and Scientific Computation)