fortran66のブログ

fortran について書きます。

【メモ帳】Cray Chapel が Hewlett Packard Chapel に?

Cray Chapel が Hewlett Packard Chapel に?

だんだん日暮れも早くなってきて、そろそろチャペルの更新時期かとのぞきに行ったところ、HP による Cray 買収の影響で、Brad Chamberlain のスライドが Hewlett Packard 印に変わっていました。買収の影響で今後の開発がどうなるのか興味深いところです。

Chapel が Julia ほど話題にならないのはなぜなのでしょうか?クラスターのサイズが飽和して PGAS どころか MPI も話題にならなくなって、話題が GPU をはじめとする細粒度の方角に移ったせいでしょうか。

chapel-lang.org

https://chapel-lang.org/presentations/Chamberlain-PACT2020-final.pdf

【メモ帳】flang 11 を試すつもりが 12 に   その他

flang f18

llvm 11 を試すつもりで llvm 11 一式のバイナリを落としてきましたが、flang が入っておらず、仕方が無いのでソースから build しようと思ったら llvm がらみのあれこれが足りぬと叱られるので、llvm 一式ソースから作るかと指示通りに git clone してコンパイルしてみたら、もう llvm 12 系統に入れ替わっていて flang 12 が出来てしまいましたw 出鼻をくじかれてやる気なくした!

github.com

https://llvm.org/docs/GettingStarted.html#checkout

なお f18 などは文法チェックの上、入力を大文字の Fortran プログラムに直して画面に吐き出してくれるます。大きいことはいいことだ!

文法対応状況

付属の test 集を実行させると、まだエラーが少し出るようです。

私が試したところ Fortran 2018 の import, none は対応しているようですが、Fortran 2008 の pointer function はまだ未対応のようです。左辺に関数は来ないという単なる文法エラーを出します。まだこの二つしか見ていません。Finalizer や parameterized derived type もどうなのか知りたいところです。

まだ intel の方が文法対応状況が良い気がします。そのインテルコンパイラllvm 化していますが・・・

import, none は OK

Enter Fortran source
Use EOF character (^D) to end file
implicit none
integer :: i = 1

block
   import, none
   integer :: i = 2
   print *, i
end block

end
Parse tree comprises 120 objects and occupies 10033 total bytes.
 IMPLICIT NONE
 INTEGER :: i = 1_4
 BLOCK
  IMPORT, NONE
  INTEGER :: i = 2_4
  PRINT *, i
 END BLOCK
END PROGRAM
Enter Fortran source
Use EOF character (^D) to end file
implicit none
integer :: i = 1

block
   import, none
   print *, i
end block

end
Parse tree comprises 92 objects and occupies 7857 total bytes.
standard input:6:13: error: No explicit type declared for 'i'
     print *, i
              ^
f18: semantic errors in -

pointer function は NG

変数っぽく扱える pointer function - fortran66のブログ

    module m_sub
      implicit none
    contains
      function storage(key) result(loc)
        integer, intent(in) :: key
        integer, pointer :: loc
        integer, target :: m(100) = 0
        loc => m(key)
      end function storage
    end module m_sub

    program Console2
      use m_sub
      implicit none
      integer :: i
      do i = 1, 10
        storage(i) = i**2
      end do
      do i = 1, 10
        print *, storage(i)
      end do
    end program Console2
Parse tree comprises 403 objects and occupies 32812 total bytes.
standard input:17:9: error: Left-hand side of assignment is not modifiable
          storage(i) = i**2
          ^^^^^^^^^^
standard input:17:9: Expression is not a variable
          storage(i) = i**2
          ^^^^^^^^^^
f18: semantic errors in -

ポインター関数の使用例 fortran66.hatenablog.com

Modern Fortran: Building efficient parallel applications

Modern Fortran: Building efficient parallel applications

  • 作者:Curcic, Milan
  • 発売日: 2020/11/24
  • メディア: ペーパーバック

【ニュース】flang 11.0 出るが、まだフロントエンドのみ

ララベル速報

www.phoronix.com

www.reddit.com

j0mpz 1 day ago Is this still only the frontend (parser), or is LLVM code generation already available?

zolamusic 1 day ago Only the frontend in this time. They call the gfortran by default.

【メモ帳】julia windows 10 MKL build 法

Windows 10 でインストーラで julia をインストールすると、書きこみに制限があるディレクトリに置かれて、MKL 版をコンパイルしようとすると下記の I/O エラーが出て行き詰ります。管理者で実行してもうまくゆきません。

ERROR: LoadError: IOError: unlink: permission denied (EACCES)

これを避けるには、C:\Users\ユーザー名\AppData\Local\Programs\Julia 1.5.2\lib\julia\sys.dll を、例えば D: などに移動させてこれをシステムファイルとすることとして、コマンドラインで指示して julia を立ち上げて実行すれば何とかなります。

なお julia の exe ファイルのパスに空白があって、引用符でくくっても許してくれないので、そのディレクトリまで下りてやる必要がありましたが、shell が悪いのかよく分かりません。また MKL 版には PyPlot でエラーが出る問題があるようです。

新たなシステムファイルは、元々の場所に作られるので、次回からは普通に julia を立ち上がれば MKL 版のシステムファイルが使われます。

以下のサイトを参考にして

MKL.jl

github.com

JuliaでMKLを使う方法

とても参考になりました。

JuliaでMKLを使う方法 · GitHub

メモ

C:\Users\ユーザー名\AppData\Local\Programs\Julia 1.5.2\lib\julia\sys.dll
cd C:\Users\ユーザー名\AppData\Local\Programs\Julia 1.5.2\bin>
julia.exe  --depwarn=yes --sysimage d:\sys.dll
ENV["USE_BLAS64"] = true

] add https://github.com/JuliaComputing/MKL.jl

build MKL

【メモ帳】LFortran 0.9  C++ の XEUS で Jupyter

lfortran

LFortran が pre-alpha ながら Ver 0.9 くらいになったようです。C++ による書き換えが進んでいて、jupyter 対応も c++ 独自カーネルの XEUS にかわっているようです。機能としては、まだ組み込み関数も配列も使えないので、なかなか意味のあるプログラムを作れません。

lfortran.org

build は llvm ですが llvm-10 ではコンパイルできませんでした。llvm-8 なら行けます。よく分かりません。 でもバイナリを conda でインストールもできます。

追記:

conda install lfortran jupyter

これで install すればいいようです。以下は読まずともよし。

ただ jupyter で kernel が起動できません。どうも kernel 設定が python 時代のままの設定ファイルになっているようです。

今の version では、lfortran はコマンドラインコンパイラとしての他に、lfortran kernel -f xxx.json で Jupyter モードになるようなので、適当に書き換えたところ動きました。正しいのかどうか、よく分かりません。

/home/hp8/miniconda3/envs/lf/share/jupyter/kernels/fortran/kernel.json

ファイルのある場所

jupyter kernelspec list
{
  "argv":
  [
    "/home/hp8/miniconda3/envs/lf/bin/lfortran", 
    "kernel", 
    "-f", 
    "{connection_file}"
  ], 
  "display_name": "Fortran (lfortran 0.9)",   
  "language": "fortran"
}

github.com

おにく じゃぽねすく! DVD付

おにく じゃぽねすく! DVD付

【寝言】スチーブン・バノン氏

無意識の解放!

 ブライトバートニュースのコアコンピタンス(他社にない自社の強み)は「ニュース」ではなく、「コメント欄」なのだとバノンは言う。「コメント欄」に人が集まり、コミュニティーを作る。そこから何かが起き、もう一人の自分たちがコミュニティーで活動する。この過程を経ることで、ブライトバートニュースは政治的な力を持つようになった。そこでは抑圧されていた「米国の無意識」が解放された。

この記事は色々面白い。引用されているものが秀逸。

ironna.jp

fortran66.hatenablog.com

禁断の惑星 (字幕版)

禁断の惑星 (字幕版)

  • 発売日: 2013/11/26
  • メディア: Prime Video

禁断の惑星 [DVD]

禁断の惑星 [DVD]

  • 発売日: 2013/09/04
  • メディア: DVD

【メモ帳】英計算機協会 Fortran 分科会合 その他

BCS 2020

毎年、面白い内容が多いですが、今年はどうでしょうか。コロナでオンライン会合だった模様です。

fortran.bcs.org スライドあり。


Fortran Joint meeting with Computational Physics Group of Institute of Physics

Introducing Fortran 95

Introducing Fortran 95

  • 作者:Chivers, Ian
  • 発売日: 2013/10/04
  • メディア: ペーパーバック
Introducing Fortran 90

Introducing Fortran 90

  • 作者:Chivers, Ian D.
  • 発売日: 2013/10/04
  • メディア: ペーパーバック

Manning の Modern Fortran 本入稿

最終版完成の模様です。

www.manning.com

Modern Fortran: Building efficient parallel applications

Modern Fortran: Building efficient parallel applications

  • 作者:Curcic, Milan
  • 発売日: 2020/11/24
  • メディア: ペーパーバック

【寝言】安倍前首相に関する foreignaffairs 記事

安倍前首相

www.foreignaffairs.com

www.foreignaffairsj.co.jp

日本語版の出鱈目な表題と要旨はどうにかならんのかw 朝日の出版で中国人が編集ではしょうがないか。

それにつけても後任の菅首相も有能すぐる。六本木は乃木坂のアカの伏魔殿を燻し始めてワロタw 妖魔共が慌てて騒ぎ始めたw 気を取られているうちに、対支重要案件を通してゆく気だろう。