fortran66のブログ

fortran について書きます。

PathScale 社苦境へ

HPC wire によりますと、Fortran コンパイラメーカの PathScale 社がいよいよ苦境に陥って身売りに入った模様です。
www.hpcwire.com

かつて AMD が元気があったころに、AMD 向けの Fortran/C/C++ コンパイラを作るといって張り切っていましたが、その後 AMD の苦境とともに目立たなくなっておりました。

記事によると、その後 MIPS に向かい、Cray に拾われ、ARM にも手を出していたようです。

同じ x86 系の Fortran/C/C++ コンパイラメーカの PGI が、CUDA コンパイラの開発から、Nvidia に子会社化されたのと、運命が分かれました。

ARM で頑張れば一発逆転があるかもしれません。


maxloc, minloc の mask = .false. の時の挙動

いつの間にか、intel fortran での maxloc, minloc の mask 全部不成立時のデフォでの挙動が変わっていてちょっと焦りました。

intel fortran v.17 のヘルプより引用

If array has size zero, or every element of mask has the value .FALSE., the value of the result is controlled by compiler option assume [no]old_maxminloc, which can set the value of the result to either 1 or 0.

コンパイラ・オプションで/assume:noold_maxminlocとすると、以下のプログラムで 0 が返されます。

    program test
      implicit none
      integer :: ia(5), i
      do i = 1, 5
        ia(i) = i
      end do
      print *, maxloc(ia, mask = .false.)
    end program test


規格によると、Fortran2003 では 0 を返すことになっていますが、それ以前は処理系依存だった模様です。

しばらくぶりにリコンパイルして実行したら結果が変わったので困惑しました。

Damian Rouson による co-array に関する講演

Scientific Software Design: The Object-Oriented Way の著者 Damian Rouson の Fortran 2015 に関する講演が youtube にあっぷされていました。主に coarray の機能の内 Fortran 2015 で採用される予定のものについて解説しています。
insidehpc.com


Tutorial: Towards Exascale Computing with Fortran 2015

ロ氏は sourcery institute (魔法研究所)という厨二全開の名前のグループを率いて、open-coarray その他の開発、Fortan 啓蒙活動等を行っているようです。Unix 系の人々は昔から魔法使いとかが大好き過ぎてドン引きです。同サイトには、Fortran がらみのソフト一式を束ねた Virtual Box の Lightweigt UbuntuVM を配布しております。面白そうな試みなので、覗いてみてください。
www.sourceryinstitute.org

https://dl.dropboxusercontent.com/u/7038972/SourceryLubuntu/Overview.pdf

355/113 - π

円周率の近似分数に 22/7 がありますが、この値が円周率{\pi}に如何ほど近いのかは、積分によって評価できることが知られています。

{
\int_0^1{x^4(1-x)^4\over1+x^2}dx=22/7-\pi
}

これは分子を展開して地道に計算することで証明されます。

これを知れば、{355/113-\pi}も同様にして求められるのではないかと思うのが人情でしょう。私も昔、計算機の記号積分に冪を高めた式を入れて、式が出てこないかと試してみたりしましたが、単純には求まらない感じでした。

先日ネットをぶらぶらブラウジングしていると、{355/113-\pi}積分に出会いました。積分式だけは紙切れにメモしておいたのですが、元ページは失念してしまいました。ただググるwikipediaにより詳しい記事がありました。

円周率が22/7より小さいことの証明 - Wikipedia

式は結構ごてごてしていて、以下の通りです。
{\int_0^1{x^8(1-x)^8(25+816x^2)\over3164(1+x^2)}dx}

この積分は、被積分関数の端点での微分値が0なので台形公式でいい値が出そうな気がします。そこで台形積分で計算してみることにしました。

プログラム

面倒なので文関数などを使ってみました。解析解による近似の度合いの見積もりは引き算による桁落ちで精度が下がるので、倍々精度で計算しています。

    program pi_approx
      implicit none
      integer, parameter :: kd = kind(0.0q0)
      real(kd), parameter :: pi = 4 * atan(1.0_kd)
      integer, parameter :: n = 64 + 1
      real(kd) :: x(n), y(n), h, s, f
      integer :: i
      ! statement function
      f(x) = x**8 * (1 - x)**8 * (25 + 816 * x**2) / ( 3164 * (1 + x**2 ) )
      !
      h = (1.0_kd - 0.0_kd) / (n - 1)
      forall (i = 1:n) 
        x(i) = 0.0_kd + (i - 1) * h 
        y(i) = f(x(i))
      end forall
      ! Trapezoidal rule
      s =  sum(y) - (y(1) + y(n)) / 2
      s = s * h
      print *, s, 355.0_kd / 113.0_kd - pi
    end program pi_approx

実行結果

分割が少ない割に解析値と良い一致が出ています。

  2.667641890624304779248581088571583E-0007
  2.667641890624223123689328865557821E-0007

【悲報】マイロー・ヤノプルス氏転落!

ネトウヨ界のアイドル、マイロー・ヤノプルス氏が過去の発言をほじくられて転落の危機に陥ったようです。今回はサヨク側ではなく、保守本流共和党主流派などからの奇襲攻撃でずっこけたようです。

出版予定の本は出版社からキャンセル、保守派講演会からも講演キャンセル、さらにスティーブ・バノン氏のブライトバードニュースからも辞職を余儀なくされ、大転落の模様です。

www.newsweekjapan.jp

宮廷道化師のように言いにくいことを口に出すオモシロ存在でしたが、謎の一線を越えてしまったようです。

イギリスのホモ界&カソリック界の小児虐待のの闇は深いw

マイロー・ヤノプルスの興亡 
www.theguardian.com


ハイパフォーマンスフォートランの興亡
www.semanticscholar.org

スティーブ・バノンと終末論??(その2)

スティーブ・バノンと終末論に関して別の記事もあるようです。
blogos.com


溜池通信によるその要約

バノンは組合員労働者の家庭に生まれ、ハーバード大学を出て海軍に進み、ゴールドマンサックスを経て「エスタブリッシュメント」に成り上がった。
...
その結論部分を抜き出すと以下のようになる。
(1)グローバル資本主義への不信と一種の階級闘争史観
(2)グローバル化現象の中での国家主権回復への強いこだわり
(3)制度腐敗と戦争前夜を強く意識するキリスト教終末論に近い時代認識と文明衝突観

blogos.com

関係ないが、この図は良い。
http://static.blogos.com/media/img/16238/free_l.jpg



スティーブン・バノンの愛読書 : 地政学を英国で学んだ
この記事で引用されている以下の講演でも、ティーパーティー的な一般常識人の直観を肯定するところまではいいのですが、その子供達の世代に不幸な社会しか残せなかったことへの罪悪感的なものをのべ、すべてをひっくり返そう的なことを言っているのは如何なものかと。

動機が暗すぎて冗談が通じない感じで嫌ですねw サヨクちゃんたちとどっこいどっこいです。

www.youtube.com