fortran66のブログ

fortran について書きます。

スティーブン・バノン氏来日!

招いたのは東トルキスタンチベットなどの後援組織でしょうか。

www.sankei.com

http://www.sankei.com/images/news/171115/wor1711150029-p1.jpg

トランプ氏の“参謀”バノン氏「アジア歴訪は素晴らしかった」、「覇権広げる」と中国批判 東京で講演

 トランプ米大統領の有力側近で首席戦略官兼上級顧問を8月まで務めたスティーブン・バノン氏が来日し、15日に都内で講演した。14日に終了したトランプ氏初のアジア歴訪を「素晴らしかった」と絶賛する一方、経済力などを背景に対外拡張を図る中国を批判した。

 バノン氏は、トランプ氏を「世界で最も賢い交渉人の一人だ」と持ち上げ、今回のアジア歴訪中のトランプ氏の言動を絶賛。各国指導者と「強い人間関係を築いた」と強調した。緊張が増している北朝鮮問題については「バランスを取った対応をした」との見方を示した。

 バノン氏は中国について「人民元を米ドルに変わる基軸通貨にしようとしている」と指摘し、金融面で覇権を広げることが目的だと分析した。「(そうなれば)自由民主主義や自由経済などが敗北する」と警鐘を鳴らし、米国が「中国の台頭にどう対応するか」が重要な課題と指摘した。

 辞任後もトランプ氏と頻繁に連絡を取っているとされるバノン氏は、9月には訪中し、習近平国家主席の腹心である王岐山氏との「秘密会談」を英メディアに報じられるなど、“トランプ氏の密使”としての動向も注目されている。

 バノン氏は中国の人権問題などについて研究する「諸民族青年リーダー研修会」で講演した。(岡田美月)

メモ帳:最近の Fortran 記事 など

Happy 60th birthday, Fortran

珍しく、オープンソース系のサイトでの記事です。
大したことは書いてありませんw スヌーピー・カレンダーが出てきます。
opensource.com

Hybrid Fortran Pulls Legacy Codes into Acceleration Era

日本の論文が元ネタの記事です。Nvidia 利用
www.nextplatform.com

Can Vector Supercomputing Be Revived?

NEC SX Aurora 紹介記事です。SX シリーズ回顧も入ってます。
www.nextplatform.com

Flipping the Flops and Reading the Top500 Tea Leaves

Top 500 リストが中国のむちゃくちゃ登録のせいで歪んでいることを書いています。
一つの構成で測定がなされると、同じ構成の計算機は全部同じスペックで登録できるらしいです。

中国は政府の命令で、日本でいう楽天みたいな民間商業サイトまで動員かけられて linpack 測ってるという話が数年前ありましたが、まだやっているのかな?毛沢東の大躍進に倣ってどんどんやってくださいwww
www.hpcwire.com
 

Gustafson の面白記事

SC17 での Gustafson

Gustafson & Mullin の共著記事が結構面白かったです。
www.hpcwire.com

PFD版 Gustafson & Mullin
https://arxiv.org/ftp/arxiv/papers/1709/1709.09108.pdf

話題は昔ばなしから始まり、近頃流行りの AI テンソル計算、結合則を満たす厳密計算など話題を二転三転させながら、最後は IEEE754 の悪口で終わるワイドスクリーンバロック調で、読んで面白い記事でした。

八だよ、七だよ、六だよ、五
四だよ、三だよ、ニだよ、一
≪もっと引っぱる、≫いわくテンソル
≪もっと引っぱる、≫いわくテンソル
緊張、懸念、不和が来た

分解された男 (創元SF文庫)

分解された男 (創元SF文庫)


特に興味を引いたのは、「The Rise of the Installer Program」の段落で、従来のコンパイラ=リンカ=ローダー的な枠を崩して、コンパイラ(ないし「プリプロセッサ」)が中間言語を生成し、その後ハードウェアの構成に合わせたデータ構造を与える「インストーラ」が実行バイナリを構成するというアイデアです。

JIT 的な発想ですが、加速器ハードウェアが多様化しつつある今、特定のハードウェア構成やネットワーク・トポロジーに最適化された個別のソース・プログラムを書かざるおえない現状への面白アイデア提起かと思いました。

The End of Error: Unum Computing (Chapman & Hall/CRC Computational Science)

The End of Error: Unum Computing (Chapman & Hall/CRC Computational Science)

この他に気に入った部分として、データの順序を考えないで無構造な集合としてデータを与えるプログラムモデルもあります。言語側がデータをハードウェア上に最適に配置するのとセットになっているアイデアです。

最近イテレータにとらわれ過ぎて、本来順序のない(並列処理が自明な)構造にまでわざわざ順序を導入し全順序集合にしたあとで、逐次処理を結合則を利用して並列化出来ると言ったりしていますが、どこか狂ってると思います。

*本文で引用されていた記事

John Gustafson The Vector Gravy Train
ベクトル機はぼったくり 
The Vector Gravy Train

英 coarray ビデオ講義

イギリスのビデオ講義集ですが、視聴回数が2年で10回程度のものが並んでいて悲しいですw イギリス人はラジオか電信で。 俺も見てないけどそのうち見る。

Anton Shterenlikht - Writing parallel programs with Fortran 2008 and 2015 coarrays


Anton Shterenlikht - Writing parallel programs with Fortran 2008 and 2015 coarrays

関連DOC
http://coarrays.sourceforge.net/doc.pdf

The Fortran coarrays course


ARCHER Webinar: eCSE 0505 Open source exascale multi-scale framework

Apery の定数 その2

加速

正攻法で和を取ると\zeta(3)=\sum_{n=1}^\infty {1\over n^3}は収束が遅いので、加速します。

\sum{1\over n(n+1)(n+2)}={1\over4}より、\zeta(3)-{1\over4}=\sum{3n+2\over n^3(n+1)(n+2)}という関係式を使うと、nの4乗に比例して項が小さくなるので、少し加速されます。

実行結果

1000項まで足してみました。項の大きさは n^4 の大きさになっていますが、和の収束は n^3 くらいになっているようです。

中央二項係数による方法はとても収束が早かったですが、それに比べるとゆっくりしてます。

 Apery's constant =   1.20205690216284
続行するには何かキーを押してください . . .

ζ(3) = 1.202056903159594285399738161511449990764986292

ソース・プログラム

    program Apery
      implicit none
      integer(selected_int_kind(10)) :: i, n = 1000
      real(kind(1.0d0)) :: s, t, u
      s = 0.25d0
      do i = 1, n
        s = s + (3 * i + 2) / real(i**3 * (i + 1) * (i + 2), kind(1.0d0)) 
      end do    
      print *, 'Apery''s constant =', s
    end program Apery

ARM Fortran 正式版出る!・・・ が、ページがバタ臭くてw

ARM が HPC 用コンパイラツール一式を正式出荷したようです。

www.hpcwire.com

ハイライト孫引き引用

  • Arm Fortran Compiler,released as a beta compiler in June 2017, is now a fully supported commercial Fortran compiler with Fortran 2003 and prior standards support.
  • Arm C/C++ Compileris an LLVM-based commercial compiler with support for C++ 14 standard and tuned for server and HPC workloads on a wide-range of Arm-based platforms.
  • The Arm Performance Librariesare processor-optimized math libraries with BLAS, LAPACK and FFT functionality for HPC applications on Arm-based hardware.
  • Arm Forge(formerly Allinea Forge) now comprises Arm DDT, the powerful scalable debugger, and Arm MAP, the parallel profiler for debugging, profiling, and optimizing applications.
  • Arm Performance Reports(formerly Allinea Performance Reports) is a non-intrusive performance tool that can analyze the applications running on your system to seek out inefficiencies and pinpoint exactly where to focus optimization work.

しか~し、ARM の当該 Fortran ページに行ってみると、写真多用のバタ臭い今風の Web ページで Fortran らしくなく、落ち着かないことこの上ない。眩暈がしてくるw

www.arm.com

作動システムに入ってはいないが Raspberry pi で 64bit 版 Linux 載せれば動くのか、動かぬのか。求人柱。

Arm Fortran Compiler supports:

  • Fortran 2003 and prior standards
  • Partial support for Fortran 2008
  • OpenMP 3.1
  • 64-bit Arm platforms including Cavium ThunderX2 and Qualcomm Centriq.
  • Full support for SVE, an Arm architecture extension suited for HPC
  • Leading Linux distributions including Red Hat 7.3+, SLES 12+ and Ubuntu 16.04+

ζ(3) アペリーの定数

中央二項係数でアペリーの定数

中央二項係数の逆数和(その6)
より、
ζ(3)=Σ1/n^3=5/2Σ(-1)^(n-1)/n^3(2n,n)
を用いて、ζ(3)アペリーの定数を計算してみます。

実行結果

 Central Binomial Coefficients 2mCm
   1                                       2.
   2                                       6.
   3                                      20.
   4                                      70.
   5                                     252.
   6                                     924.
   7                                    3432.
   8                                   12870.
   9                                   48620.
  10                                  184756.
  11                                  705432.
  12                                 2704156.
  13                                10400600.
  14                                40116600.
  15                               155117520.
  16                               601080390.
  17                              2333606220.
  18                              9075135300.
  19                             35345263800.
  20                            137846528820.
  21                            538257874440.
  22                           2104098963720.
  23                           8233430727600.
  24                          32247603683100.
  25                         126410606437752.
  26                         495918532948104.
  27                        1946939425648112.
  28                        7648690600760440.
  29                       30067266499541040.
  30                      118264581564861424.
  31                      465428353255261088.
  32                     1832624140942590534.
  33                     7219428434016265740.
  34                    28453041475240576740.
  35                   112186277816662845432.
  36                   442512540276836779204.
  37                  1746130564335626209832.
  38                  6892620648693261354600.
  39                 27217014869199032015600.
  40                107507208733336176461620.
  41                424784580848791721628840.
  42               1678910486211891090247320.
  43               6637553085023755473070800.
  44              26248505381684851188961800.
  45             103827421287553411369671120.
  46             410795449442059149332177040.
  47            1625701140345170250548615520.
  48            6435067013866298908421603100.
  49           25477612258980856902730428600.
  50          100891344545564193334812497256.
  51          399608854866744452032002440112.
  52         1583065848125949175357548128136.
  53         6272525058612251449529907677520.
  54        24857784491537440929618523018320.
  55        98527218530093856775578873054432.
  56       390590044887157789360330532465784.
  57      1548655265692941410446222812934512.
  58      6141219157058215937976400809912720.
  59     24356699707654619143838606602026720.
  60     96614908840363322603893139521372656.
 zeta(3) Apery's constant
 s = sum 1/((-1)**(i + 1) * 2iCi * i^2)
   1.20205690315959428539973816151145
続行するには何かキーを押してください . . .


最後の桁まであっています。
ζ(3) = 1.202056903159594285399738161511449990764986292
Apéry's constant - Wikipedia



ソース・プログラム

    program pascal 
      use, intrinsic :: iso_fortran_env
      implicit none
      integer, parameter :: kq = real128
      real(kq), parameter :: pi = 4.0_kq * atan(1.0_kq)
      real(kq), allocatable :: tri(:), xCy(:)
      integer(int64) :: i
      real(kq) :: s 
      xCy = [real(kq)::]
      tri = [1]
      do i = 1, 120
        tri = [tri, 0.0_kq] + [0.0_kq, tri]
        if (mod(i, 2_int64) == 0) xCy = [xCy, tri(i / 2 + 1)] ! 2mCm
      end do  
      !
      print *, 'Central Binomial Coefficients 2mCm'
      print '(i4, 1x, f40.0)', (i, xCy(i), i = 1, size(xCy))
 
      s = 0.0_kq
      do i = 1, size(xCy)
        s = s + (-1)**(i + 1) * 1.0_kq / (xCy(i) * i**3)   
      end do    
      s = s * 5 / 2.0_kq
      print *, 'zeta(3) Apery''s constant'
      print *, 's = sum 1/((-1)**(i + 1) * 2iCi * i^2)', s
    end program pascal