fortran66のブログ

fortran について書きます。

【乞食速報】Springer & APRESS サイバー週間特価 799円(税込み)

Spriner 電子本 $7

Springer とその傘下の Apress のコンピュータ関係電子本が $7 という今までに無いような安値でセール。 ああ $10, $15 で買った本たちが恨めしそうに眺めているよ!

サイバーウィーク!コンピュータサイエンス 分野の全イーブックが799円!

CYBER WEEK SALE All Apress & Springer IT eBooks only $7 through Dec 3, 2019 with code CYBERWEEK19

サイバー!!

f:id:fortran66:20191125214405j:plain
でじこ
f:id:fortran66:20191125214534j:plain
CYBRTRCK

CYBRTRCK 母音抜きの記法は FORTRAN 的で好ましいw

799円本 例

www.springer.com

www.springer.com

www.springer.com

www.springer.com

www.springer.com

www.springer.com

【寝言】太白星

宵の明星

先日の天皇陛下御即位のパレードを見た後、夕焼け空を眺めていたら金星がしばらくぶりに西空に帰ってきて、高度は低いものの明るく輝いていました。東天には満月前の月が輝き、紅葉も進んで綺麗で穏やかな秋の夕暮れでした。

大室家3

なもり先生の大室家3が面白かったですw みなみけ開発の三世代構造はいいですね。 51話が好き。 comic.pixiv.net

大室家 (3) 特装版 (百合姫コミックス)

大室家 (3) 特装版 (百合姫コミックス)

いったい長女のお相手は誰なのか?

富士通 ARM 富嶽 1Wあたりの性能は16.876GFLOPS

www.itmedia.co.jp

20MWなら実効 0.3ExaFlops?

興味深いのは Sprac 時代は全く相手にされていなかったのに、ARM になったらCRAYを通してアメリカのスパコンセンターから複数注文がきていて、イギリスでARMに入れ込んでいるところからも注文が入っているという所。 www.hpcwire.com

CRAYを買収したHPにXEROXが買収を提案しているので面白そう。マネーゲームで全資産切り売り希望wソフトバンク自転車操業失敗で ARM を農協へ売却も希望w

パソコンそのものが退潮気味ですが、Intel は CPU の安全性問題を抱えたまま、懲りもせずに GPU 加速器を出してきているし、NVIDIA は中国仮想通貨ブーム終焉で苦しいので、富士通にはこのスキを突いていって欲しい所です。

そもそも、ヘテロジーニャス構成はめんどくさいし、加えてパソコン退潮と AI ブームでの精度要らず時代を迎えているので、以前の様に COTS へのタダ乗りが出来なくなっているし、市場規模と金儲けの観点から倍精度などを切り捨てて、自動運転・ML 等セクシー分野に金を注ぎ込む方が合理的。

またぞろ日本有利時代に戻ってくるかも。NEC のベクトル加速器とダークホース PEZY もあるので、リソースを分散させすぎているアメリカより有利と信じてw ♪あの日揚がったZ旗を~


海の進軍

  あの日揚がった Z(ゼット)旗を
  父が仰いだ 波の上
  今日はその子が その孫が
  強く雄雄しい 血を継いで
  八重の潮路を 越へるのだ

Julia 上げ その他下げ記事

medium.com

【ニュース】llvm の flang 方針ビデオ

“An MLIR Dialect for High-Level Optimization of Fortran

fortran66.hatenablog.com

2019 LLVM Developers' Meeting - Bay Area の一環で、30分近く話してくれています。 いつもながら、このおじさんの詰まらなそうな話ぶりが味わい深い。


2019 LLVM Developers’ Meeting: E. Schweitz “An MLIR Dialect for High-Level Optimization of Fortran ”

MLIR の定義が書いていないのですが、"Multi-Level Intermediate Representation" のようです。

参考記事:

medium.com

https://llvm.org/devmtg/2019-04/slides/Keynote-ShpeismanLattner-MLIR.pdf

うむ分からん。

【乞食ニュース】Springer open access 無料本

Programming for Computations - Python

Python 3.6 ということで著者の一人の Python 2.7 本の一部改訂にもなっているようです。

link.springer.com

A Primer on Scientific Programming with Python (Texts in Computational Science and Engineering)

A Primer on Scientific Programming with Python (Texts in Computational Science and Engineering)

著者の他の無料本 www.simula.no

【メモ帳】群行列式

行列式 group determinant

Frobenius が群の指標の研究を始めたのは、Dedekind から群表の要素を  x_1 とか変数に置き換えて行列式を取ると、群の既約表現に対応する小行列の行列式の次元乗の積の形になるようだと手紙を受け取ってからとのことらしいです。

読んだだけではよく分からないので、計算機を使って二次と三次の対称群  S_2, S_3 で見てみたいと思います。

対称群

あみだくじに対応するもので、置換群とも言います。

S2

位数 2!=2 で、二個の元を持ちます。一つは単位元、もう一つは二個のものを交換する元です。

群表は

e (12)
e e (12)
(12) (12) e

となります。これを Dedekind に従って、e を x1, (12) を x2 に置き換えて

e (12)
e x1 x2
(12) x2 x1

のように書いて、変数の部分を行列と思って、行列式をとってみます。

Wolfram Language にて

S2={{x1, x2},{x2,x1}}
{{x1, x2}, {x2, x1}}
MatrixForm[S2]
Output
Det[S2]
Output
Factor[%]
Output

すると、行列式 (x1+x2), (x1-x2) の積にまとめられました。Dedekind を信じれば、二つの1次元表現に対応する行列式  (x1+x2) (x1-x2) が得られたことになります。

これは、e+(12) と e-(12) の対称表現と反対称表現にそれぞれ対応するものになっています。Young 図の記法で書けば [2], [11] に対応する規約表現に相当しています。

S3

次に調子に乗って三次の対称群でも試してみます。位数は 3!=6 で六次元の行列が出てくることになります。

追記:令和3年9月3日 ここでの群表の定義が普通と違っているので書き直します。結果は変わりません。

群表を書くと、

x1 x2 x3 x4 x5 x6
e (12) (23) (13) (123) (132)
e e (12) (23) (13) (123) (132)
(12) (12) e (123) (132) (23) (13)
(23) (23) (132) e (123) (13) (12)
(13) (13) (123) (132) e (12) (23)
(123) (123) (13) (12) (23) (132) e
(132) (132) (23) (13) (12) e (123)

Dedekind に従って置き換えて、

x1 x2 x3 x4 x5 x6
e (12) (23) (13) (123) (132)
e x1 x2 x3 x4 x6 x5
(12) x2 x2 x5 x6 x3 x4
(23) x3 x6 x1 x5 x4 x2
(13) x4 x5 x6 x1 x2 x3
(123) x5 x4 x2 x3 x6 x1
(132) x6 x3 x4 x2 x1 x5

これの変数部分を 6x6 の行列とみて行列式を計算してみます。

Wolfram Language にて

S3={{x1,x2,x3,x4,x5,x6},
    {x2,x1,x5,x6,x3,x4},
    {x3,x6,x1,x5,x4,x2},
    {x4,x5,x6,x1,x2,x3},
    {x5,x4,x2,x3,x6,x1},
    {x6,x3,x4,x2,x1,x5}}
{{x1, x2, x3, x4, x5, x6}, {x2, x1, x5, x6, x3, x4}, {x3, x6, x1, x5, x4, x2}, 
 
>   {x4, x5, x6, x1, x2, x3}, {x5, x4, x2, x3, x6, x1}, {x6, x3, x4, x2, x1, x5}}
MatrixForm[S3]
Output
Factor[Det[S3]]
Output

この結果をみると、三次の対称群は二つの1次元表現と一つの二次元表現に分かれるようです。一次元表現の方は、(x1+x2+x3+x4+x5+x6) すなわち (e+(12)+(23)+(13)+(123)+(132) ) の全対称表現 ( [3] ) と、 (x1+x5+x6-x2-x3-x4) すなわち (e+(123)+(132) - (12) - (23) - (13) ) の反対称表現 ([111]) に書けて、もっともな気がします。一方、二次元表現 ([21]) の方は行列式(x1^2 + x5^2 + x6^2 -x1x5 - x1x6 - x5x6)-(x2^2+x3^2+x4^2-x2x3-x2x4-x3x4) となって、素朴には元の2*2行列の形が思い浮かびません。Frobenius は、この辺から頑張って考えたのでしょうか?

以下の記事を見ると、Dedekind は一の三乗根をつかってもう少しきれいにまとめたようですが、あまり助けにはなりません。[追記] 元々 Dedekind は超複素数の様な体の拡大で行列式因数分解出来てそれによって一次元表現に還元できるのではないかという考えでいじくりまわしてうまくいかず、Frobenius に助けを求めたようです。

PDF 直リン The Origin of Representation Theory - UConn Math

Littlewood の本では The Frobenius Algebra の章でいきなり行列を書き下していますが(Frobenius Algebra の定義に従って我慢強く計算すればでます)、簡便な具体的求め方は The Symmetric Group の章で Young の対称子を利用した方法で示されています。

それによれば(記号や定義をここのものに直してやると、規格化因子も適当にいれて)

1/3( e+(12)-(23)-(132) ) 1/3( (13)-(23)+(123)-(132) )
1/3( (13)-(12)+(132)-(123) ) 1/3( e-(12)+(23)-(123) )
x1+x2-x3-x6 x4-x3+x5-x6
x4-x2+x6-x5 x1-x2+x3-x5

となって、この 2*2 行列の行列式を求めると、ここでの群行列式の結果を再現します。

Wolfram language にて

Q={{x1+x2-x3-x6,  x4-x3+x5-x6}, { x4-x2+x6-x5, x1-x2+x3-x5}}
Output
MatrixForm[Q]
Output
Factor[Det[Q]]
Output

寝言

Dedekind は巡回群などでも群行列式を計算したようですが、その式を見ると佐武一郎の「線形代数学」で見たことがあるような式だったので、本を引っ張り出してみると確かにあって、行列式の章で文脈も無くいきなり出てきて、ヘンテコな行列式を計算し始めてうんざりさせられるばかりだったのを思い出しました。今見ると群行列式と関係するとも書いてありましたw うへw

【メモ帳】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 につながっています。

【新刊】Fortran 2018 本 その他

Subrata Ray ”Fortran 2018 with Parallel Programming”

印度からの Fortran 本。以前、Fortran2003 本を書いていた方かと思います。

Fortran 2018 with Parallel Programming

Fortran 2018 with Parallel Programming

A Textbook on Fortran/2003

A Textbook on Fortran/2003

CRC press 直販で買えば二割引きです。もうすぐ来るサイバーマンデーで三割引き位になるかもしれません。 ついでに、なんとかイギリスポンド暴落で安くしてほしいもの。頑張れボリス・ジョンソン!君の尊敬するチャーチルは、戦時中に自分の炭鉱で金儲けをするため炭鉱夫動員法を提出して、総スカンを食らったぞ!

www.crcpress.com

二日月

今日は西の空に細い月が出ていましたが、月齢2くらいだったようです。月齢3以下の月を見たのはしばらくぶりの様な。近頃、あんまり夕焼け空を見ていないのかも。

FortranTCP/IP いじり

Manning 本の最新章に出ています。

github.com

www.manning.com