SlideShare a Scribd company logo
温故知新・Fortran / @n_scattering   1




            温故知新・FORTRAN
            田名部 誠一
2012/9/15   @n_scattering
博士課程の研究テーマ、

    自己紹介                                 中性子散乱が由来です。

2
    た   な べ(ぶ)   せいいち

    田名部 誠一
    [Twitter] @n_scattering
    [facebook]
    http://www.facebook.com/seiichi.tanabetanabu

        東北人と関東人のハーフ
        日本の産業界・研究開発の黒子としてHPC
        (High-Performance Computing) などの技術者
        として従事
        非研究者博士(役に立っていない)

                        温故知新・Fortran / @n_scattering   2012/9/15
Agenda
3


    1.   はじめに
    2.   Fortranとは
    3.   Fortranの歴史
    4.   現在使用できるFortran処理系
    5.   Fortran入門
    6.   大規模科学技術計算への道




               温故知新・Fortran / @n_scattering   2012/9/15
はじめに
  3/31に開催された、第
  1回闇鍋プログラミング
  勉強会に参加。(@東京
  工科大学)
  今まで親しみのなかっ
  た言語について、数多
  くのトピック提供で、刺
  激を受けた。


             温故知新・Fortran /
2012/9/15                      4
               @n_scattering
はじめに
5


    学生だった頃、原子分子物理学(化学?)をテー
    マに研究を行いました。
     ちなみに、twitter nameは、「中性子散乱」をテーマに
     していたことに由来します。
    (実験ではなく)理論的研究でしたので、もっぱら
    計算機を回していました。
    そのときに使用していた言語がFortran (フォートラ
    ン)です。


            温故知新・Fortran / @n_scattering   2012/9/15
はじめに
6


    今は、研究とかプログラミン
    グから離れて久しいですが、
    HPC業界として、計算機を取
    り扱う仕事柄、たまにFortran
    を思い出す機会があります。
    そんなわけで、今回、Fortran
    の歴史を振り返りつつ、話を
    していこうと思います。



            温故知新・Fortran / @n_scattering   2012/9/15
計算科学とは
7




    自然界や人工の系についてのモデルを詳しく研
    究して、深く理解しようとする分野。
     解析的には答えられない
     (答えが数式では表現できない)
     人間が解くには複雑すぎて                                    θ
     どうしようもない                                            L

     こういった課題をコンピュータを                                         m
     使って解決する
    更に進展し、CAEなどに応用される

          温故知新・Fortran / @n_scattering   2012/9/15
計算科学とは
8


    コンピュータは
     高機能な電卓
     複雑なシステムを数値的に
     シミュレートする実験室
     人間の知能を拡大してくれる道具
    最大の力を発揮:3役割を同時に機能するとき

    計算科学で最も使われている言語がFortran

          温故知新・Fortran / @n_scattering   2012/9/15
Fortranとは
  1954年にIBMのジョン・
  バッカスのチームによっ
  て考案されたコンピュー
  タにおける史上初の
  高水準記述言語
  「FORTRAN」 の由来は
  「数式翻訳」→「formula
  translation」



                    温故知新・Fortran /
2012/9/15                             9
                      @n_scattering
Fortranとは
10


      FORTRAN/Fortranは科学技術計算に特化した手
      続き型プログラミング言語
      長い歴史に支えられ、多くの数学関数やサブルー
      チンをライブラリで持つ
      他の言語より高速 (←最適化しやすい)
      古くから、複素数も取り扱えた
      (複素数を当たり前のように使う、
      電気関係や量子力学関係のファンが多い)


             温故知新・Fortran / @n_scattering   2012/9/15
Fortranとは
11


      広く使われていたFORTRAN77では・・・
      数式を簡便に書ける
       ほぼ数学の数式通りに計算式を記述できる。もっともこの特徴
       は他に計算向きの高級言語がなかった時代の話であり、現代
       の水準では「プログラミング言語における標準数式表現の始
       祖」といった方が当たっている。

      出力が容易
       簡単に出力形式を定義できるFORMAT文や、実際の出力デバ
       イスを意識しないで済む入出力文がある
       (C言語の標準入出力と似た概念である)。


              温故知新・Fortran / @n_scattering   2012/9/15
Fortranとは
12


      スタック指向/構造化指向の言語ではない
       COMMON文、BLOCK DATA文やSAVE文など、データ
       を固定的に割り当てることを前提としている。
      固定形式の書式である
       記述方法がカラム位置で決まっている(一部の実装
       では拡張されている)
       かつて、穿孔カードを
       用いていた由来
       古くさい

              温故知新・Fortran / @n_scattering   2012/9/15
Fortranとは
13


      Fortran 90/95・・・では
       数値計算プログラムを簡単かつ簡潔に記述できる。
       プログラムの誤りを犯しにくい言語である。
       数値計算のための便利な道具があらかじめ用意され
       ている。 (言語仕様・ライブラリ)
       作成したプログラムを大規模高速演算に使用
       無料のコンパイラが公開されている。
       gFortran, g95, Intel Fortran Composer 等



                温故知新・Fortran / @n_scattering   2012/9/15
Fortranの歴史
14


     IBMのジョン・ワーナー・バッ
     カス (John Warner Backus,
     1924年12月3日 - 2007年3月17日)のチーム

     により
     IBM 704 メインフレームのた
     めのFORTRANの設計と開発
     (1954~)
     目的はミサイルの軌道計算
     のプログラムの簡略化
                温故知新・Fortran / @n_scattering   2012/9/15
Fortranの歴史
15


     1957   IBM704用FORTRAN
     1966   American Standards Association
        (現ANSI)による規格制定
            FORTRAN66
     1978   FORTRAN77

                 世代間の断絶(やや大げさ)
     1991      Fortran90
     95, 2003, 2008・・・今に至る

                 温故知新・Fortran / @n_scattering   2012/9/15
Fortranの歴史
16


     FORTRAN77が利用されてきた期間が長かった。
     (今もこよなく愛する人もいるくらい)

     Fortran90/95で大きく仕様が変更された。
     今現在も、メジャー/マイナーな仕様変更が地味
     に行われ、現実の処理系に反映されつつある。




            温故知新・Fortran / @n_scattering   2012/9/15
Fortranの歴史
17


     FORTRAN77とFortran90との比較
      フリーフォームソース入力と小文字のFortranキー
      ワード。プログラム本文を7桁目から書かなくても良く、
      80桁の制限も無い。
      変数の長さも32文字までOK
      配列演算(配列ごとにまとめて計算できる)
      Do While文の実装

      FORTRANからFortranへ

              温故知新・Fortran / @n_scattering   2012/9/15
現在使用できるFortran処理系
18


     今も生き続けるFortranの世界
     現在利用できる処理系                                          自宅でも
                                                       Fortran焼肉
      無償                                                が楽しめる
       Gfortran、G95
       Intel Fortran Composer (非商用利用に限り)
      有償                                  Linux版に限る

       Intel Visual Fortran
       PGI Fortran
       NAG Fortran ・・・etc.


                  温故知新・Fortran / @n_scattering   2012/9/15
Fortran入門
19


      近代的な高級言語は論理構造ブロックを持って
      いる
       書いてある順(linear)に実行する(上から下)
       N回の繰り返し(do~enddo)
       If-Then-Else
       (回数未定の繰り返し) (While)
      ただし、古くさい仕様もある。GOTOなど。



              温故知新・Fortran / @n_scattering   2012/9/15
Fortran入門
20



     逐次実行の例               Program area
                   c
     半径rを持つ円       c      area of circle, input r
                          implicit none
     の面積を求め        c
                          REAL*8 pi ,r, a
                          calculate pi
     る             c
                          pi=3.1415926535d0
                          read r from standard input (terminal)
                          write(*,*) 'Input Radius'
                          read(*,*) r
                   c      calculate area
                          a = pi * r**2
                   c      write area onto terminal screen
                          write (*,10) 'radius r=',r, 'a =',a
                       10 Format (a10, e20.10, a5, e22.12)
                          Stop 'area'
                          End




            温故知新・Fortran / @n_scattering   2012/9/15
Fortran入門
21


      N回の繰り返し



            do i = i1, i2
                (処理)
            end do



            温故知新・Fortran / @n_scattering   2012/9/15
Fortran入門
22



      繰り返し実行の例
           Program diff
           Implicit None
     c Declarations
     c h stepsize for approximation, xrange and xstepsize
     c
           Real*8 f, h, result(3), x, xmin, xmax, xstep
           Open(6, File='diff.dat', Status='Unknown')
           h     = 1.e-3
           xmin = 0.0
           xmax = 7.0
           xstep = 0.01
           Do 10 x=xmin, xmax, xstep
             result(1) = (f(x+h) - f(x))/h
             result(2) = (f(x+h/2) - f(x-h/2))/h
             result(3) = (8*(f(x+h/4)-f(x-h/4)) - (f(x+h/2)-f(x-h/2)))/(3*h)
             Write (6, 20) x, result(1), result(2), result(3)
        10 Continue


                         温故知新・Fortran / @n_scattering   2012/9/15
Fortran入門
23



       関数f(x)の数値微分(3パターン実施)
     ・・・続く

        10 Format(F5.3, TR4, F10.8, TR4, F10.8, TR4, F10.8)
           Close(6)
           Stop 'data saved in diff.dat'
           End
     c
     c the function we want to integrate
           Function f(x)
             Implicit none
             Real*8 f, x
             f = cos(x)                     微分する関数の定義
             Return
           End

                          温故知新・Fortran / @n_scattering   2012/9/15
Fortran入門
24


      result(1) = (f(x+h) - f(x))/h



      result(2) = (f(x+h/2) - f(x-h/2))/h



      result(3) = (8*(f(x+h/4)-f(x-h/4)) -
      (f(x+h/2)-f(x-h/2)))/(3*h)



                温故知新・Fortran / @n_scattering   2012/9/15
Fortran入門
25


      If-Then-Else
               if (条件1) then
                   (処理1)
               elseif (条件2) then
                   (処理2)
               else
                   (処理3)
               endif

                     温故知新・Fortran / @n_scattering   2012/9/15
Fortran入門
26

                          Program fizzbuzz

     条件分岐の例
                    C
                          implicit none
                          integer i,fb
     いわゆる「Fizz-           do i=1,30
                            fb=0
     Buzz」の簡単な              if(mod(i,3).eq.0) then
                              write(*,*) 'fizz'
     例                        fb=1
                            endif
                            if(mod(i,5).eq.0) then
                              write(*,*) 'buzz'
                              fb=1
                            endif
                            if (fb.eq.0) then
                              write(*,*) i
                            endif
                          enddo

                          Stop 'fizzbuzz'
                          End

             温故知新・Fortran / @n_scattering    2012/9/15
Fortran入門
27


      回数未定の繰り返し

           do while (条件1)
               (
               (処理1)
                   1)
           end do

      Fortran90で標準で実装されたので、FORTRAN77
      では実装されていない処理系がある。


             温故知新・Fortran / @n_scattering   2012/9/15
Fortran入門
28


      よく使われる数値演算ライブラリ
       BLAS (ベクトルと行列に関する基本線型代数操作)
       LAPACK (線型計算のための数値解析ソフトウェアライブラリ)
       FFTW (高速フーリエ変換のためのライブラリ)
       AMD ACML
      市販などのライブラリ
       Intel MKL
       などなど


                   温故知新・Fortran / @n_scattering   2012/9/15
大規模科学技術計算への道
29


     最近のマシン(単体ワークステーションなど)では、
     1台の計算機に複数のコア、複数のCPUが利用可
     能な場合が増えています。
     このような環境の場合には、OpenMPを使って、複
     数のコアを有効活用して並列処理することが可能
     です。
     OpenMPは、Fortran処理系に実装されています。



            温故知新・Fortran / @n_scattering   2012/9/15
大規模科学技術計算への道
30




         温故知新・Fortran / @n_scattering   2012/9/15
大規模科学技術計算への道
31


     CPUの各コアに、ジョブを分け与えて、「分担作
     業」で全体の計算時間を短縮する。
     計算時間が1/N(コア数)となってくれるのが理想だ
     が、一人でやる作業:
      各コアに平等にジョブを分ける作業
      各コアの作業が終わって、結果をまとめる作業
     があるため、単純には1/Nとはなってくれない。
     一人でやる作業をできるだけ少なくする匠の技


           温故知新・Fortran / @n_scattering   2012/9/15
大規模科学技術計算への道
32


     PCサーバなどをネットワークなどで相互に接続し、
     PCクラスタを構築する場合もあります。
     複数の計算機を協調して動かすために、互いの
     計算機同士と通信しあう必要性があり、
     そのため、MPI (Message Passing Interface)が必要
     になります。
     MPIはMPICH2、OpenMPIなどがあり、処理系に応
     じて構築する必要があります。


               温故知新・Fortran / @n_scattering   2012/9/15
大規模科学技術計算への道
33




         温故知新・Fortran / @n_scattering   2012/9/15
大規模科学技術計算への道
34


     ネットワークに接続されている全マシンにあるCPU
     の各コアに、ジョブを分け与えて、「分担作業」で
     全体の計算時間を短縮する。
     計算時間が1/N(コア数)となってくれるのが理想だ
     が
      各コアに平等にジョブを分ける作業
      各コアの作業が終わって、結果をまとめる作業
      ノードをまたぐ際に、通信で時間が掛かる
     があるため、単純には1/Nとはなってくれない。

           温故知新・Fortran / @n_scattering   2012/9/15
まとめ
35


     1.   はじめに
     2.   Fortranとは
     3.   Fortranの歴史
     4.   現在使用できるFortran処理系
     5.   Fortran入門
     6.   大規模科学技術計算への道




                温故知新・Fortran / @n_scattering   2012/9/15
最後に (フォートランの歌)
36

     おおブレネリ あなたの言語はなに?
      私の言語はフォートランよ 数値計算が得意なのよ
        ヤーーッフォー フォートランランラン
            ヤッフォー フォートランランラン
            ヤッフォー フォートランランラン
            ヤッフォー フォートランランラン
        ヤーーッフォー フォートランランラン
            ヤッフォー フォートランランラン
            ヤッフォー フォートランランラン
            ヤッフォーフォー

                     (いろいろなところで語り継がれています。)


             温故知新・Fortran / @n_scattering   2012/9/15
参考文献
37


     Wikipedia 「FORTRAN」の項目
     小柳義夫 監訳 「計算物理学」(基礎編・応用編)
     朝倉書店(2001)
     原田賢一 著 「Fortran77 プログラミング」
     サイエンス社(1986)
     理化学研究所 「スカラー・チューニング講習会」、
     「並列プログラミング(MPI)講習会」テキスト
     http://accc.riken.jp/HPC/training/


             温故知新・Fortran / @n_scattering   2012/9/15

More Related Content

What's hot

第1回勉強会スライド
第1回勉強会スライド第1回勉強会スライド
第1回勉強会スライド
koturn 0;
 
一人でもNFC開発
一人でもNFC開発一人でもNFC開発
一人でもNFC開発
Hirokuma Ueno
 
第2回勉強会スライド
第2回勉強会スライド第2回勉強会スライド
第2回勉強会スライド
koturn 0;
 
katagaitaictf11_misc_ysk
katagaitaictf11_misc_yskkatagaitaictf11_misc_ysk
katagaitaictf11_misc_ysk
ysk256
 
About FeliCa Lite(日本語)
About FeliCa Lite(日本語)About FeliCa Lite(日本語)
About FeliCa Lite(日本語)Hirokuma Ueno
 
Better C#の脱却を目指して
Better C#の脱却を目指してBetter C#の脱却を目指して
Better C#の脱却を目指して
bleis tift
 
現実(えくせる)と戦う話
現実(えくせる)と戦う話現実(えくせる)と戦う話
現実(えくせる)と戦う話
bleis tift
 
Python physicalcomputing
Python physicalcomputingPython physicalcomputing
Python physicalcomputing
Noboru Irieda
 
言語処理系入門1
言語処理系入門1言語処理系入門1
言語処理系入門1
Kenta Hattori
 
NetBSD/i386 割り込みベクタテーブル
NetBSD/i386 割り込みベクタテーブルNetBSD/i386 割り込みベクタテーブル
NetBSD/i386 割り込みベクタテーブル
kusabanachi
 
月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)
Hirokuma Ueno
 
yieldとreturnの話
yieldとreturnの話yieldとreturnの話
yieldとreturnの話
bleis tift
 
Raspberry Jam #1 20121229
Raspberry Jam #1 20121229Raspberry Jam #1 20121229
Raspberry Jam #1 20121229
Hideki Aoshima
 
Fftw誰得ガイド
Fftw誰得ガイドFftw誰得ガイド
Fftw誰得ガイド
chunjp
 

What's hot (17)

第1回勉強会スライド
第1回勉強会スライド第1回勉強会スライド
第1回勉強会スライド
 
一人でもNFC開発
一人でもNFC開発一人でもNFC開発
一人でもNFC開発
 
第2回勉強会スライド
第2回勉強会スライド第2回勉強会スライド
第2回勉強会スライド
 
Inside winnyp
Inside winnypInside winnyp
Inside winnyp
 
katagaitaictf11_misc_ysk
katagaitaictf11_misc_yskkatagaitaictf11_misc_ysk
katagaitaictf11_misc_ysk
 
Ilerpg Study 004
Ilerpg Study 004Ilerpg Study 004
Ilerpg Study 004
 
About FeliCa Lite(日本語)
About FeliCa Lite(日本語)About FeliCa Lite(日本語)
About FeliCa Lite(日本語)
 
Better C#の脱却を目指して
Better C#の脱却を目指してBetter C#の脱却を目指して
Better C#の脱却を目指して
 
現実(えくせる)と戦う話
現実(えくせる)と戦う話現実(えくせる)と戦う話
現実(えくせる)と戦う話
 
Python physicalcomputing
Python physicalcomputingPython physicalcomputing
Python physicalcomputing
 
Ilerpg Study 006
Ilerpg Study 006Ilerpg Study 006
Ilerpg Study 006
 
言語処理系入門1
言語処理系入門1言語処理系入門1
言語処理系入門1
 
NetBSD/i386 割り込みベクタテーブル
NetBSD/i386 割り込みベクタテーブルNetBSD/i386 割り込みベクタテーブル
NetBSD/i386 割り込みベクタテーブル
 
月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)
 
yieldとreturnの話
yieldとreturnの話yieldとreturnの話
yieldとreturnの話
 
Raspberry Jam #1 20121229
Raspberry Jam #1 20121229Raspberry Jam #1 20121229
Raspberry Jam #1 20121229
 
Fftw誰得ガイド
Fftw誰得ガイドFftw誰得ガイド
Fftw誰得ガイド
 

Viewers also liked

ATLに見る魔術
ATLに見る魔術ATLに見る魔術
ATLに見る魔術egtra
 
関数型言語初心者がHaskellに挑戦してみた
関数型言語初心者がHaskellに挑戦してみた関数型言語初心者がHaskellに挑戦してみた
関数型言語初心者がHaskellに挑戦してみた
ikaro1192
 
ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会
Tatsuhiko Kubo
 
Barry Shaked - Navigating Through Challenging Times - Retalix Synergy 2008 Op...
Barry Shaked - Navigating Through Challenging Times - Retalix Synergy 2008 Op...Barry Shaked - Navigating Through Challenging Times - Retalix Synergy 2008 Op...
Barry Shaked - Navigating Through Challenging Times - Retalix Synergy 2008 Op...
Motti Gadish
 
Wicket with Spring Boot on Azure
Wicket with Spring Boot on AzureWicket with Spring Boot on Azure
Wicket with Spring Boot on Azure
Hiroto Yamakawa
 
Processing によるプログラミング入門 第1回
Processing によるプログラミング入門 第1回Processing によるプログラミング入門 第1回
Processing によるプログラミング入門 第1回
Ryo Suzuki
 
開発現場で使えるかもしれないGroovy
開発現場で使えるかもしれないGroovy開発現場で使えるかもしれないGroovy
開発現場で使えるかもしれないGroovy
zgmf_mbfp03
 
Unity × graphics × effects
Unity × graphics × effectsUnity × graphics × effects
Unity × graphics × effects
Hironori Sugino
 

Viewers also liked (9)

Collective Intelligence
Collective IntelligenceCollective Intelligence
Collective Intelligence
 
ATLに見る魔術
ATLに見る魔術ATLに見る魔術
ATLに見る魔術
 
関数型言語初心者がHaskellに挑戦してみた
関数型言語初心者がHaskellに挑戦してみた関数型言語初心者がHaskellに挑戦してみた
関数型言語初心者がHaskellに挑戦してみた
 
ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会
 
Barry Shaked - Navigating Through Challenging Times - Retalix Synergy 2008 Op...
Barry Shaked - Navigating Through Challenging Times - Retalix Synergy 2008 Op...Barry Shaked - Navigating Through Challenging Times - Retalix Synergy 2008 Op...
Barry Shaked - Navigating Through Challenging Times - Retalix Synergy 2008 Op...
 
Wicket with Spring Boot on Azure
Wicket with Spring Boot on AzureWicket with Spring Boot on Azure
Wicket with Spring Boot on Azure
 
Processing によるプログラミング入門 第1回
Processing によるプログラミング入門 第1回Processing によるプログラミング入門 第1回
Processing によるプログラミング入門 第1回
 
開発現場で使えるかもしれないGroovy
開発現場で使えるかもしれないGroovy開発現場で使えるかもしれないGroovy
開発現場で使えるかもしれないGroovy
 
Unity × graphics × effects
Unity × graphics × effectsUnity × graphics × effects
Unity × graphics × effects
 

Similar to Yaminabe fortran

Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門
Yoshitaka Seo
 
発表資料 Fortranを用いた高位合成技術FortRockの開発
発表資料 Fortranを用いた高位合成技術FortRockの開発発表資料 Fortranを用いた高位合成技術FortRockの開発
発表資料 Fortranを用いた高位合成技術FortRockの開発
貴大 山下
 
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりRubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつり
Yuya Rin
 
F#の基礎(?)
F#の基礎(?)F#の基礎(?)
F#の基礎(?)
bleis tift
 
dofilewrite and vn_write
dofilewrite and vn_writedofilewrite and vn_write
dofilewrite and vn_write
kusabanachi
 
関数型プログラミング入門 for Matlab ユーザー
関数型プログラミング入門 for Matlab ユーザー関数型プログラミング入門 for Matlab ユーザー
関数型プログラミング入門 for Matlab ユーザー
Ichiro Maruta
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0Kiwamu Okabe
 
解説?FSharp.Quotations.Compiler
解説?FSharp.Quotations.Compiler解説?FSharp.Quotations.Compiler
解説?FSharp.Quotations.Compiler
bleis tift
 
Kanazawa.js.Next
Kanazawa.js.NextKanazawa.js.Next
Kanazawa.js.Next
dynamis
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
Takaaki Suzuki
 
Rust Error Handling
Rust Error HandlingRust Error Handling
Rust Error Handling
ShunsukeNakamura17
 
会津合宿2015Day3:D問題
会津合宿2015Day3:D問題会津合宿2015Day3:D問題
ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。
Kazuki Onishi
 
ZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみるZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみるKoichi Suzuki
 
Reconf 201901
Reconf 201901Reconf 201901
Reconf 201901
Takefumi MIYOSHI
 
「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部
「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部
「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部
Kiyoshi Ogawa
 
.NET micro FrameWork for TOPPERS (.NET基礎)@基礎勉強会
.NET micro  FrameWork for TOPPERS  (.NET基礎)@基礎勉強会.NET micro  FrameWork for TOPPERS  (.NET基礎)@基礎勉強会
.NET micro FrameWork for TOPPERS (.NET基礎)@基礎勉強会Kiyoshi Ogawa
 
Stager
StagerStager
Stager
sounakano
 

Similar to Yaminabe fortran (20)

Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門
 
発表資料 Fortranを用いた高位合成技術FortRockの開発
発表資料 Fortranを用いた高位合成技術FortRockの開発発表資料 Fortranを用いた高位合成技術FortRockの開発
発表資料 Fortranを用いた高位合成技術FortRockの開発
 
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりRubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつり
 
F#の基礎(?)
F#の基礎(?)F#の基礎(?)
F#の基礎(?)
 
dofilewrite and vn_write
dofilewrite and vn_writedofilewrite and vn_write
dofilewrite and vn_write
 
C-langage
C-langageC-langage
C-langage
 
関数型プログラミング入門 for Matlab ユーザー
関数型プログラミング入門 for Matlab ユーザー関数型プログラミング入門 for Matlab ユーザー
関数型プログラミング入門 for Matlab ユーザー
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0
 
解説?FSharp.Quotations.Compiler
解説?FSharp.Quotations.Compiler解説?FSharp.Quotations.Compiler
解説?FSharp.Quotations.Compiler
 
Kanazawa.js.Next
Kanazawa.js.NextKanazawa.js.Next
Kanazawa.js.Next
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
 
Rust Error Handling
Rust Error HandlingRust Error Handling
Rust Error Handling
 
会津合宿2015Day3:D問題
会津合宿2015Day3:D問題会津合宿2015Day3:D問題
会津合宿2015Day3:D問題
 
ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。
 
ZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみるZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみる
 
Reconf 201901
Reconf 201901Reconf 201901
Reconf 201901
 
「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部
「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部
「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部
 
.NET micro FrameWork for TOPPERS (.NET基礎)@基礎勉強会
.NET micro  FrameWork for TOPPERS  (.NET基礎)@基礎勉強会.NET micro  FrameWork for TOPPERS  (.NET基礎)@基礎勉強会
.NET micro FrameWork for TOPPERS (.NET基礎)@基礎勉強会
 
Stager
StagerStager
Stager
 
CMSI計算科学技術特論A(3) OpenMPの基礎
CMSI計算科学技術特論A(3) OpenMPの基礎CMSI計算科学技術特論A(3) OpenMPの基礎
CMSI計算科学技術特論A(3) OpenMPの基礎
 

More from HPCシステムズ株式会社

20170604 Dentoo.Lt #17 飛び入り枠: 手話のすすめ
20170604 Dentoo.Lt #17 飛び入り枠: 手話のすすめ20170604 Dentoo.Lt #17 飛び入り枠: 手話のすすめ
20170604 Dentoo.Lt #17 飛び入り枠: 手話のすすめ
HPCシステムズ株式会社
 
20170604 Dentoo.Lt #17 静音ガジェットの検証試験
20170604 Dentoo.Lt #17 静音ガジェットの検証試験20170604 Dentoo.Lt #17 静音ガジェットの検証試験
20170604 Dentoo.Lt #17 静音ガジェットの検証試験
HPCシステムズ株式会社
 
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127
HPCシステムズ株式会社
 
HPCで使えそうなFPGA搭載AWS F1 インスタンス_20161218
HPCで使えそうなFPGA搭載AWS F1 インスタンス_20161218HPCで使えそうなFPGA搭載AWS F1 インスタンス_20161218
HPCで使えそうなFPGA搭載AWS F1 インスタンス_20161218
HPCシステムズ株式会社
 
自称IQ診断 --- いわゆる頭の体操
自称IQ診断 --- いわゆる頭の体操自称IQ診断 --- いわゆる頭の体操
自称IQ診断 --- いわゆる頭の体操
HPCシステムズ株式会社
 
20161120_HPCでFPGAを使ってみたい_fpgastartup
20161120_HPCでFPGAを使ってみたい_fpgastartup20161120_HPCでFPGAを使ってみたい_fpgastartup
20161120_HPCでFPGAを使ってみたい_fpgastartup
HPCシステムズ株式会社
 
40代になって無理できなくなったこと
40代になって無理できなくなったこと40代になって無理できなくなったこと
40代になって無理できなくなったこと
HPCシステムズ株式会社
 
Lt_5Sと5定のすすめ_20160129
Lt_5Sと5定のすすめ_20160129Lt_5Sと5定のすすめ_20160129
Lt_5Sと5定のすすめ_20160129
HPCシステムズ株式会社
 
劇場版「ガールズ&パンツァー」のすすめ
劇場版「ガールズ&パンツァー」のすすめ劇場版「ガールズ&パンツァー」のすすめ
劇場版「ガールズ&パンツァー」のすすめ
HPCシステムズ株式会社
 
Dentoo.LT12 並列処理・MPIの第一歩 20151025
Dentoo.LT12 並列処理・MPIの第一歩 20151025Dentoo.LT12 並列処理・MPIの第一歩 20151025
Dentoo.LT12 並列処理・MPIの第一歩 20151025
HPCシステムズ株式会社
 
JAWS-UG HPC #2 LT 並列処理・MPIの第一歩
JAWS-UG HPC #2 LT 並列処理・MPIの第一歩JAWS-UG HPC #2 LT 並列処理・MPIの第一歩
JAWS-UG HPC #2 LT 並列処理・MPIの第一歩
HPCシステムズ株式会社
 
Lt 鉄道の日 20151014
Lt 鉄道の日 20151014Lt 鉄道の日 20151014
Lt 鉄道の日 20151014
HPCシステムズ株式会社
 
LT KYT危険予知トレーニング 20150820
LT KYT危険予知トレーニング 20150820LT KYT危険予知トレーニング 20150820
LT KYT危険予知トレーニング 20150820
HPCシステムズ株式会社
 
Lt東北巡礼入門 20150630
Lt東北巡礼入門 20150630Lt東北巡礼入門 20150630
Lt東北巡礼入門 20150630
HPCシステムズ株式会社
 
物理学から見た健康診断Lt20150515
物理学から見た健康診断Lt20150515物理学から見た健康診断Lt20150515
物理学から見た健康診断Lt20150515
HPCシステムズ株式会社
 
Ingressを用いたエンジニアの健康管理
Ingressを用いたエンジニアの健康管理Ingressを用いたエンジニアの健康管理
Ingressを用いたエンジニアの健康管理
HPCシステムズ株式会社
 
世界自閉症啓発デーに寄せて20150402LT
世界自閉症啓発デーに寄せて20150402LT世界自閉症啓発デーに寄せて20150402LT
世界自閉症啓発デーに寄せて20150402LT
HPCシステムズ株式会社
 
自宅ラック勉強会20150328 LT自己紹介「自宅ラックと私」
自宅ラック勉強会20150328 LT自己紹介「自宅ラックと私」自宅ラック勉強会20150328 LT自己紹介「自宅ラックと私」
自宅ラック勉強会20150328 LT自己紹介「自宅ラックと私」
HPCシステムズ株式会社
 
健康管理とIngress改
健康管理とIngress改健康管理とIngress改
健康管理とIngress改
HPCシステムズ株式会社
 
健康管理とINGRESS
健康管理とINGRESS健康管理とINGRESS
健康管理とINGRESS
HPCシステムズ株式会社
 

More from HPCシステムズ株式会社 (20)

20170604 Dentoo.Lt #17 飛び入り枠: 手話のすすめ
20170604 Dentoo.Lt #17 飛び入り枠: 手話のすすめ20170604 Dentoo.Lt #17 飛び入り枠: 手話のすすめ
20170604 Dentoo.Lt #17 飛び入り枠: 手話のすすめ
 
20170604 Dentoo.Lt #17 静音ガジェットの検証試験
20170604 Dentoo.Lt #17 静音ガジェットの検証試験20170604 Dentoo.Lt #17 静音ガジェットの検証試験
20170604 Dentoo.Lt #17 静音ガジェットの検証試験
 
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127
 
HPCで使えそうなFPGA搭載AWS F1 インスタンス_20161218
HPCで使えそうなFPGA搭載AWS F1 インスタンス_20161218HPCで使えそうなFPGA搭載AWS F1 インスタンス_20161218
HPCで使えそうなFPGA搭載AWS F1 インスタンス_20161218
 
自称IQ診断 --- いわゆる頭の体操
自称IQ診断 --- いわゆる頭の体操自称IQ診断 --- いわゆる頭の体操
自称IQ診断 --- いわゆる頭の体操
 
20161120_HPCでFPGAを使ってみたい_fpgastartup
20161120_HPCでFPGAを使ってみたい_fpgastartup20161120_HPCでFPGAを使ってみたい_fpgastartup
20161120_HPCでFPGAを使ってみたい_fpgastartup
 
40代になって無理できなくなったこと
40代になって無理できなくなったこと40代になって無理できなくなったこと
40代になって無理できなくなったこと
 
Lt_5Sと5定のすすめ_20160129
Lt_5Sと5定のすすめ_20160129Lt_5Sと5定のすすめ_20160129
Lt_5Sと5定のすすめ_20160129
 
劇場版「ガールズ&パンツァー」のすすめ
劇場版「ガールズ&パンツァー」のすすめ劇場版「ガールズ&パンツァー」のすすめ
劇場版「ガールズ&パンツァー」のすすめ
 
Dentoo.LT12 並列処理・MPIの第一歩 20151025
Dentoo.LT12 並列処理・MPIの第一歩 20151025Dentoo.LT12 並列処理・MPIの第一歩 20151025
Dentoo.LT12 並列処理・MPIの第一歩 20151025
 
JAWS-UG HPC #2 LT 並列処理・MPIの第一歩
JAWS-UG HPC #2 LT 並列処理・MPIの第一歩JAWS-UG HPC #2 LT 並列処理・MPIの第一歩
JAWS-UG HPC #2 LT 並列処理・MPIの第一歩
 
Lt 鉄道の日 20151014
Lt 鉄道の日 20151014Lt 鉄道の日 20151014
Lt 鉄道の日 20151014
 
LT KYT危険予知トレーニング 20150820
LT KYT危険予知トレーニング 20150820LT KYT危険予知トレーニング 20150820
LT KYT危険予知トレーニング 20150820
 
Lt東北巡礼入門 20150630
Lt東北巡礼入門 20150630Lt東北巡礼入門 20150630
Lt東北巡礼入門 20150630
 
物理学から見た健康診断Lt20150515
物理学から見た健康診断Lt20150515物理学から見た健康診断Lt20150515
物理学から見た健康診断Lt20150515
 
Ingressを用いたエンジニアの健康管理
Ingressを用いたエンジニアの健康管理Ingressを用いたエンジニアの健康管理
Ingressを用いたエンジニアの健康管理
 
世界自閉症啓発デーに寄せて20150402LT
世界自閉症啓発デーに寄せて20150402LT世界自閉症啓発デーに寄せて20150402LT
世界自閉症啓発デーに寄せて20150402LT
 
自宅ラック勉強会20150328 LT自己紹介「自宅ラックと私」
自宅ラック勉強会20150328 LT自己紹介「自宅ラックと私」自宅ラック勉強会20150328 LT自己紹介「自宅ラックと私」
自宅ラック勉強会20150328 LT自己紹介「自宅ラックと私」
 
健康管理とIngress改
健康管理とIngress改健康管理とIngress改
健康管理とIngress改
 
健康管理とINGRESS
健康管理とINGRESS健康管理とINGRESS
健康管理とINGRESS
 

Recently uploaded

CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
CRI Japan, Inc.
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 

Recently uploaded (15)

CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 

Yaminabe fortran

  • 1. 温故知新・Fortran / @n_scattering 1 温故知新・FORTRAN 田名部 誠一 2012/9/15 @n_scattering
  • 2. 博士課程の研究テーマ、 自己紹介 中性子散乱が由来です。 2 た な べ(ぶ) せいいち 田名部 誠一 [Twitter] @n_scattering [facebook] http://www.facebook.com/seiichi.tanabetanabu 東北人と関東人のハーフ 日本の産業界・研究開発の黒子としてHPC (High-Performance Computing) などの技術者 として従事 非研究者博士(役に立っていない) 温故知新・Fortran / @n_scattering 2012/9/15
  • 3. Agenda 3 1. はじめに 2. Fortranとは 3. Fortranの歴史 4. 現在使用できるFortran処理系 5. Fortran入門 6. 大規模科学技術計算への道 温故知新・Fortran / @n_scattering 2012/9/15
  • 4. はじめに 3/31に開催された、第 1回闇鍋プログラミング 勉強会に参加。(@東京 工科大学) 今まで親しみのなかっ た言語について、数多 くのトピック提供で、刺 激を受けた。 温故知新・Fortran / 2012/9/15 4 @n_scattering
  • 5. はじめに 5 学生だった頃、原子分子物理学(化学?)をテー マに研究を行いました。 ちなみに、twitter nameは、「中性子散乱」をテーマに していたことに由来します。 (実験ではなく)理論的研究でしたので、もっぱら 計算機を回していました。 そのときに使用していた言語がFortran (フォートラ ン)です。 温故知新・Fortran / @n_scattering 2012/9/15
  • 6. はじめに 6 今は、研究とかプログラミン グから離れて久しいですが、 HPC業界として、計算機を取 り扱う仕事柄、たまにFortran を思い出す機会があります。 そんなわけで、今回、Fortran の歴史を振り返りつつ、話を していこうと思います。 温故知新・Fortran / @n_scattering 2012/9/15
  • 7. 計算科学とは 7 自然界や人工の系についてのモデルを詳しく研 究して、深く理解しようとする分野。 解析的には答えられない (答えが数式では表現できない) 人間が解くには複雑すぎて θ どうしようもない L こういった課題をコンピュータを m 使って解決する 更に進展し、CAEなどに応用される 温故知新・Fortran / @n_scattering 2012/9/15
  • 8. 計算科学とは 8 コンピュータは 高機能な電卓 複雑なシステムを数値的に シミュレートする実験室 人間の知能を拡大してくれる道具 最大の力を発揮:3役割を同時に機能するとき 計算科学で最も使われている言語がFortran 温故知新・Fortran / @n_scattering 2012/9/15
  • 9. Fortranとは 1954年にIBMのジョン・ バッカスのチームによっ て考案されたコンピュー タにおける史上初の 高水準記述言語 「FORTRAN」 の由来は 「数式翻訳」→「formula translation」 温故知新・Fortran / 2012/9/15 9 @n_scattering
  • 10. Fortranとは 10 FORTRAN/Fortranは科学技術計算に特化した手 続き型プログラミング言語 長い歴史に支えられ、多くの数学関数やサブルー チンをライブラリで持つ 他の言語より高速 (←最適化しやすい) 古くから、複素数も取り扱えた (複素数を当たり前のように使う、 電気関係や量子力学関係のファンが多い) 温故知新・Fortran / @n_scattering 2012/9/15
  • 11. Fortranとは 11 広く使われていたFORTRAN77では・・・ 数式を簡便に書ける ほぼ数学の数式通りに計算式を記述できる。もっともこの特徴 は他に計算向きの高級言語がなかった時代の話であり、現代 の水準では「プログラミング言語における標準数式表現の始 祖」といった方が当たっている。 出力が容易 簡単に出力形式を定義できるFORMAT文や、実際の出力デバ イスを意識しないで済む入出力文がある (C言語の標準入出力と似た概念である)。 温故知新・Fortran / @n_scattering 2012/9/15
  • 12. Fortranとは 12 スタック指向/構造化指向の言語ではない COMMON文、BLOCK DATA文やSAVE文など、データ を固定的に割り当てることを前提としている。 固定形式の書式である 記述方法がカラム位置で決まっている(一部の実装 では拡張されている) かつて、穿孔カードを 用いていた由来 古くさい 温故知新・Fortran / @n_scattering 2012/9/15
  • 13. Fortranとは 13 Fortran 90/95・・・では 数値計算プログラムを簡単かつ簡潔に記述できる。 プログラムの誤りを犯しにくい言語である。 数値計算のための便利な道具があらかじめ用意され ている。 (言語仕様・ライブラリ) 作成したプログラムを大規模高速演算に使用 無料のコンパイラが公開されている。 gFortran, g95, Intel Fortran Composer 等 温故知新・Fortran / @n_scattering 2012/9/15
  • 14. Fortranの歴史 14 IBMのジョン・ワーナー・バッ カス (John Warner Backus, 1924年12月3日 - 2007年3月17日)のチーム により IBM 704 メインフレームのた めのFORTRANの設計と開発 (1954~) 目的はミサイルの軌道計算 のプログラムの簡略化 温故知新・Fortran / @n_scattering 2012/9/15
  • 15. Fortranの歴史 15 1957 IBM704用FORTRAN 1966 American Standards Association (現ANSI)による規格制定 FORTRAN66 1978 FORTRAN77 世代間の断絶(やや大げさ) 1991 Fortran90 95, 2003, 2008・・・今に至る 温故知新・Fortran / @n_scattering 2012/9/15
  • 16. Fortranの歴史 16 FORTRAN77が利用されてきた期間が長かった。 (今もこよなく愛する人もいるくらい) Fortran90/95で大きく仕様が変更された。 今現在も、メジャー/マイナーな仕様変更が地味 に行われ、現実の処理系に反映されつつある。 温故知新・Fortran / @n_scattering 2012/9/15
  • 17. Fortranの歴史 17 FORTRAN77とFortran90との比較 フリーフォームソース入力と小文字のFortranキー ワード。プログラム本文を7桁目から書かなくても良く、 80桁の制限も無い。 変数の長さも32文字までOK 配列演算(配列ごとにまとめて計算できる) Do While文の実装 FORTRANからFortranへ 温故知新・Fortran / @n_scattering 2012/9/15
  • 18. 現在使用できるFortran処理系 18 今も生き続けるFortranの世界 現在利用できる処理系 自宅でも Fortran焼肉 無償 が楽しめる Gfortran、G95 Intel Fortran Composer (非商用利用に限り) 有償 Linux版に限る Intel Visual Fortran PGI Fortran NAG Fortran ・・・etc. 温故知新・Fortran / @n_scattering 2012/9/15
  • 19. Fortran入門 19 近代的な高級言語は論理構造ブロックを持って いる 書いてある順(linear)に実行する(上から下) N回の繰り返し(do~enddo) If-Then-Else (回数未定の繰り返し) (While) ただし、古くさい仕様もある。GOTOなど。 温故知新・Fortran / @n_scattering 2012/9/15
  • 20. Fortran入門 20 逐次実行の例 Program area c 半径rを持つ円 c area of circle, input r implicit none の面積を求め c REAL*8 pi ,r, a calculate pi る c pi=3.1415926535d0 read r from standard input (terminal) write(*,*) 'Input Radius' read(*,*) r c calculate area a = pi * r**2 c write area onto terminal screen write (*,10) 'radius r=',r, 'a =',a 10 Format (a10, e20.10, a5, e22.12) Stop 'area' End 温故知新・Fortran / @n_scattering 2012/9/15
  • 21. Fortran入門 21 N回の繰り返し do i = i1, i2 (処理) end do 温故知新・Fortran / @n_scattering 2012/9/15
  • 22. Fortran入門 22 繰り返し実行の例 Program diff Implicit None c Declarations c h stepsize for approximation, xrange and xstepsize c Real*8 f, h, result(3), x, xmin, xmax, xstep Open(6, File='diff.dat', Status='Unknown') h = 1.e-3 xmin = 0.0 xmax = 7.0 xstep = 0.01 Do 10 x=xmin, xmax, xstep result(1) = (f(x+h) - f(x))/h result(2) = (f(x+h/2) - f(x-h/2))/h result(3) = (8*(f(x+h/4)-f(x-h/4)) - (f(x+h/2)-f(x-h/2)))/(3*h) Write (6, 20) x, result(1), result(2), result(3) 10 Continue 温故知新・Fortran / @n_scattering 2012/9/15
  • 23. Fortran入門 23 関数f(x)の数値微分(3パターン実施) ・・・続く 10 Format(F5.3, TR4, F10.8, TR4, F10.8, TR4, F10.8) Close(6) Stop 'data saved in diff.dat' End c c the function we want to integrate Function f(x) Implicit none Real*8 f, x f = cos(x) 微分する関数の定義 Return End 温故知新・Fortran / @n_scattering 2012/9/15
  • 24. Fortran入門 24 result(1) = (f(x+h) - f(x))/h result(2) = (f(x+h/2) - f(x-h/2))/h result(3) = (8*(f(x+h/4)-f(x-h/4)) - (f(x+h/2)-f(x-h/2)))/(3*h) 温故知新・Fortran / @n_scattering 2012/9/15
  • 25. Fortran入門 25 If-Then-Else if (条件1) then (処理1) elseif (条件2) then (処理2) else (処理3) endif 温故知新・Fortran / @n_scattering 2012/9/15
  • 26. Fortran入門 26 Program fizzbuzz 条件分岐の例 C implicit none integer i,fb いわゆる「Fizz- do i=1,30 fb=0 Buzz」の簡単な if(mod(i,3).eq.0) then write(*,*) 'fizz' 例 fb=1 endif if(mod(i,5).eq.0) then write(*,*) 'buzz' fb=1 endif if (fb.eq.0) then write(*,*) i endif enddo Stop 'fizzbuzz' End 温故知新・Fortran / @n_scattering 2012/9/15
  • 27. Fortran入門 27 回数未定の繰り返し do while (条件1) ( (処理1) 1) end do Fortran90で標準で実装されたので、FORTRAN77 では実装されていない処理系がある。 温故知新・Fortran / @n_scattering 2012/9/15
  • 28. Fortran入門 28 よく使われる数値演算ライブラリ BLAS (ベクトルと行列に関する基本線型代数操作) LAPACK (線型計算のための数値解析ソフトウェアライブラリ) FFTW (高速フーリエ変換のためのライブラリ) AMD ACML 市販などのライブラリ Intel MKL などなど 温故知新・Fortran / @n_scattering 2012/9/15
  • 29. 大規模科学技術計算への道 29 最近のマシン(単体ワークステーションなど)では、 1台の計算機に複数のコア、複数のCPUが利用可 能な場合が増えています。 このような環境の場合には、OpenMPを使って、複 数のコアを有効活用して並列処理することが可能 です。 OpenMPは、Fortran処理系に実装されています。 温故知新・Fortran / @n_scattering 2012/9/15
  • 30. 大規模科学技術計算への道 30 温故知新・Fortran / @n_scattering 2012/9/15
  • 31. 大規模科学技術計算への道 31 CPUの各コアに、ジョブを分け与えて、「分担作 業」で全体の計算時間を短縮する。 計算時間が1/N(コア数)となってくれるのが理想だ が、一人でやる作業: 各コアに平等にジョブを分ける作業 各コアの作業が終わって、結果をまとめる作業 があるため、単純には1/Nとはなってくれない。 一人でやる作業をできるだけ少なくする匠の技 温故知新・Fortran / @n_scattering 2012/9/15
  • 32. 大規模科学技術計算への道 32 PCサーバなどをネットワークなどで相互に接続し、 PCクラスタを構築する場合もあります。 複数の計算機を協調して動かすために、互いの 計算機同士と通信しあう必要性があり、 そのため、MPI (Message Passing Interface)が必要 になります。 MPIはMPICH2、OpenMPIなどがあり、処理系に応 じて構築する必要があります。 温故知新・Fortran / @n_scattering 2012/9/15
  • 33. 大規模科学技術計算への道 33 温故知新・Fortran / @n_scattering 2012/9/15
  • 34. 大規模科学技術計算への道 34 ネットワークに接続されている全マシンにあるCPU の各コアに、ジョブを分け与えて、「分担作業」で 全体の計算時間を短縮する。 計算時間が1/N(コア数)となってくれるのが理想だ が 各コアに平等にジョブを分ける作業 各コアの作業が終わって、結果をまとめる作業 ノードをまたぐ際に、通信で時間が掛かる があるため、単純には1/Nとはなってくれない。 温故知新・Fortran / @n_scattering 2012/9/15
  • 35. まとめ 35 1. はじめに 2. Fortranとは 3. Fortranの歴史 4. 現在使用できるFortran処理系 5. Fortran入門 6. 大規模科学技術計算への道 温故知新・Fortran / @n_scattering 2012/9/15
  • 36. 最後に (フォートランの歌) 36 おおブレネリ あなたの言語はなに? 私の言語はフォートランよ 数値計算が得意なのよ ヤーーッフォー フォートランランラン ヤッフォー フォートランランラン ヤッフォー フォートランランラン ヤッフォー フォートランランラン ヤーーッフォー フォートランランラン ヤッフォー フォートランランラン ヤッフォー フォートランランラン ヤッフォーフォー (いろいろなところで語り継がれています。) 温故知新・Fortran / @n_scattering 2012/9/15
  • 37. 参考文献 37 Wikipedia 「FORTRAN」の項目 小柳義夫 監訳 「計算物理学」(基礎編・応用編) 朝倉書店(2001) 原田賢一 著 「Fortran77 プログラミング」 サイエンス社(1986) 理化学研究所 「スカラー・チューニング講習会」、 「並列プログラミング(MPI)講習会」テキスト http://accc.riken.jp/HPC/training/ 温故知新・Fortran / @n_scattering 2012/9/15