SlideShare a Scribd company logo
1 of 43
Download to read offline
Fortranが拓く世界、
VSCodeが架ける橋
出川智啓(モダンFortran勉強会)
内容
自己(とFortranの)紹介 (<10分)
Fortranが拓く世界 (<5分)
VSCodeが架ける橋 (<15分)
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 2
自己紹介
名前: 出川智啓(でがわ ともひろ)
所属: モダンFortran勉強会
経歴: 名古屋大学大学院情報科学研究科修了,博士(情報科学)
大学,高専での教育・開発を経て,製造業のIT子会社で熱流体
シミュレーションソフトウェア開発に従事.その傍ら,大学客員
教員として教育・研究に従事.
「ウケるかな?」という単純な理由でFortranによるオブジェク
ト指向プログラミングを始める.以来,物理シミュレーションプ
ログラムの効率的な学習・開発方法に興味を持つ.
専門: 流体工学,数値流体力学,混相流工学,HPC
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 3
モダンFortran勉強会の立ち位置
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 4
国内 国外
情報発信
ユーザ同士の交流
ツール開発
参加
情報収集
交流
普及・啓発
研究会開催
要望の具体化
情報発信
ユーザ同士の交流
要望の集約
Fortran標準化活動
JIS Fortran計画
Feature
List提出
用語策定・
翻訳
機能提案
運営協力
Fortran
規格策定
技術的議論
の中心
Fortranの
国際会議
参画
情報処理学会
情報規格調査会
SC22/
Fortran
WG 小委
員会
高性能
Fortran
推進協議
会
モダン
Fortran
勉強会
ISO/IEC
JTC1/SC22/
WG5
ANSI
X3J3
Fortran
Con
Fortran
-lang
Commun
ity
科学技術計算向けプログラミング言語FORTRANを祖先に持つ
プログラミング言語
具体的にはFortran 2003以降
◦ FORTRAN 77以前の機能も強力な後方互換により利用可能
FORTRAN
大量の方言(ベンダの独自実装)
モダンFortranとは*
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 5
I-IV 66 77
標準化 方言の統一
90 95 2003 2008 2018
モダンFortranのサブセット
Fortran
言語の現代化
他言語の機能の取り込み
モダンFortran
マルチパラダイム
並列処理機能の内包
*発表者の個人的な理解
202X
modernize
202Y
対象範囲
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 6
数値計算法の
開発
並列化手法
の開発
💻💻
📖📖
🖊🖊
開発した方法
の実証
大規模シミュレーション
Fortran Fortran+OpenMP
CUDA Fortran
OpenACC
Fortran+OpenMP, MPI
CUDA Fortran
OpenACC
Fortranの主戦場
*掲載許可取得済み
Fortranの利点
理工学者にとって理解・学習が容易
◦ プログラミングを手段として用いる人に好適
すべての計算機環境で利用可能
◦ PC,ワークステーション,クラスタ,スーパーコンピュータ
CPUからGPUまでワンストップで対応
◦ NVIDIA以外のコンパイラでもOpenACCをサポート*
◦ do concurrentをGPUにオフロード**
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 7
* https://gcc.gnu.org/onlinedocs/gfortran/OpenACC.html
** https://developer.nvidia.com/blog/accelerating-fortran-
do-concurrent-with-gpus-and-the-nvidia-hpc-sdk/
14 15 16 22 23 246 7 8-2 -1 0
配列添字は1から?
範囲無指定なら1始まり
範囲指定すれば整数型変数の取れる任意の範囲
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 329 10 11 17 18 19 25 26 27 33 34 35
is = (rank-1)*num_elem + 1
ie = (rank )*num_elem
allocate(f(is-3:ie+3))
rank=1 rank=2 rank=3 rank=4
Send(f(ie-2:ie ), rank+1)
Recv(f(ie+1:ie+3), rank+1)
Recv(f(is-3:is-1), rank+1)
Send(f(is :is+2), rank+1)
send recv sendrecv
袖領域が左右3要素ずつ
あることが明確
袖領域と隣のランクのメモリとの対応が明確
テストやってないんでしょ?
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 9
物理現象
概念的モデル
数学モデル
解析モデル
解析結果
不確かさを考慮
した解析結果
物理モデル
実験計画
実験結果
不確かさを考慮
した実験結果
物理的モデル化数学的モデル化
実装
実験
不確かさの
定量的評価
離散化して実装
解析
不確かさの
定量的評価
Validation
(予備計算)
Code Verification
Calculation
Verification
定量的比較
物理現象を忠実に
模擬しているか?
数学モデルに従って
正しく記述されているか?
(ここがテスト)
メッシュ作成やデータ入力,
結果表示が正しく
行われているか?
ASME V&V 10-2006
検証駆動開発の手順
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 10
非定常
1点 空間1次元 空間2次元時間
空間
時間積分
移流
方程式
拡散
方程式
移流
方程式
拡散
方程式
⑧ ⑨ ⑩ ⑪ ⑫
1階差分 1階差分 2階差分
x方向
1階差分
x方向
2階差分
y方向
1階差分
y方向
2階差分
定常
① ② ③ ④
⑤
⑥
⑦
Laplace
方程式
Poisson
方程式
Laplace
方程式
Poisson
方程式
⑬
⑭
⑮
⑯
(
空
間
平
衡
)
Navier-Stokes方程式
Taylor-
Green渦
Cavity
流れ
⑰ ⑱
Fortranが拓く世界
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 11
計算科学*(Computational Science & Engineering)
理論,実験と並ぶ第3の科学
◦ 計算機科学,応用数学,理工学から孤立せず,
つながりを強化
◦ 計算科学はデータ科学も包括
計算科学という概念の形成
◦ ハードウェアの進展
◦ 性能を引き出すソフトウェア技術の進展
◦ 科学技術計算のためのアルゴリズムの進展
FORTRANが駆動したと言っても過言ではない
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 12
計算機科学
=コンピュータの
高度利用
応用数学
=計算アル
ゴリズム
理工学
=現象への
適用
計算科学
*金田,笹井監修,超自由度系の新しい科学,共立出版,東京,2010.
良い道具は世界観を変える
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 13
🔬🔬🔭🔭
宇宙に対する考え方を変えた ミクロな世界に対する考え方を変えた
🔍🔍
遠くのものを拡大して観察 小さなものを拡大して観察
望遠鏡 顕微鏡計算科学
物理現象を再現して観察
変革や開拓を担う人を
育てることも必要
*望遠鏡,顕微鏡の例は,金田,笹井監修,超自由度系の新しい科学,
共立出版,東京,2010を参照
VSCodeが架ける橋
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 14
Fortranユーザが出会うギャップ
開発環境の構築
記述が冗長
リモートで実行
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 15
開発環境の構築
コンパイラ
◦ Absoft
◦ Cray
◦ Fujitsu
◦ GNU
◦ HP
◦ IBM
◦ Intel
◦ NAG
◦ Oracle
◦ PathScale
◦ PGI
◦ Flang
開発環境(エディタ)
◦ Absoft Pro Fortran
◦ Atom
◦ Code::Blocks
◦ emacs
◦ Eclipse
◦ FTranProjectBuilder
◦ Geany
◦ Kate
◦ PyCharm
◦ Simply Fortran
◦ Sublime Text 2
◦ Vim
◦ Visual Studio
◦ VS Code
◦ Zeus
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 16
所望の機能
◦ 構文強調
◦ 自動補完
◦ 自動フォーマット
◦ コードスニペット
◦ 定義・参照への移動
◦ 関数・構造体の一覧
◦ リファクタリング
◦ プロジェクト構成
◦ 任意コンパイラ対応
◦ ビルド・実行
◦ デバッグ
◦ バージョン管理
◦ ターミナル作業
◦ 遠隔での編集
× ×
VSCode
VSCode+拡張なら大半の機能を利用可能
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 17
◦ 遠隔での編集◦ プロジェクト構成
◦ ビルド・実行
◦ 自動フォーマット◦ デバッグ◦ 構文強調
◦ 自動補完
◦ 定義・参照へ移動
◦ 関数・構造体の一覧
◦ リファクタリング
◦ 構文強調
◦ 自動補完
◦ コードスニペット
◦ ターミナル作業
◦ 任意コンパイラ対応(+ tasks.json)
◦ バージョン管理
Modern
Fortran
FORTRAN
IntelliSense
Fortran
Breakpoint
Support
fprettify CMake Remote-SSH
+
tasks.json
CMakeがサポートしている場合 CMakeが未サポートの場合
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 18
Modern Fortran Docker
VSCode以外の要求ソフトウェア多過ぎ問題
◦ gfortran - Modern Fortran拡張に必要
◦ gdb - デバッグに必要
◦ Python - FORTRAN IntelliSense拡張, fprettify拡張に必要
◦ CMake - CMake拡張に必要
◦ make - CMakeの動作に必要
◦ その他 - Fortranコンパイラの要求するソフトウェア(VS等)
モダンFortran勉強会のメンバーがModern Fortran Dockerを作成中
◦ https://github.com/mmer547/docker/tree/master/fortran_container
◦ ゆくゆくはCMakeをfpm(Fortran Package Manager)に置き換え
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 19
Fortranユーザが出会うギャップ
開発環境の構築
記述が冗長
リモートで実行
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 20
記述が冗長
変数の型宣言
◦ 規格にない宣言方法が氾濫
◦ コンパイラ間の可搬性の担保
構文の記述
◦ 構文書式がxxx ~ end xxx
◦ 名前付き構文
お決まりの宣言
◦ 暗黙の型宣言の無効化
◦ 配列割り当ての検査,等
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 21
変数の型宣言
倍精度浮動小数点数aの型宣言
◦ double precision :: a
◦ real*8 :: a
◦ real(8) :: a
◦ real(selected_real_kind(p=15,r=307)) :: a
◦ real(real64) :: a
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 22
変数の型宣言
型名+種別(kind)で区別
◦ kind=バイト数とは規定されていない
◦ kind(), selected_int_kind(), selected_real_kind()で指定
◦ Fortran 20032008でkindとバイト数を対応付ける定数を導入
◦ 定数はiso_fortran_envモジュールで定義
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 23
integer(selected_int_kind(r=桁数)) :: an_integer_variable
integer(kind(9223372036854775807)) :: another_integer_variable
real(selected_real_kind(r=桁数,p=指数範囲)) :: a_real_variable
real(kind(0d0)) :: another_real_variable
use,intrinsic :: iso_fortran_env, only:int32, real64
integer(int32) :: a_32bit_integer_variable
real(real64) :: a_64bit_real_variable
構文の記述
Fortranの構文の基本
◦ [名前:] 構文名 [構文のオプション]
end 構文名 [名前]
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 24
program main
...
end program main
SOR_Convergence: do while(error >= Err_Tolerance)
...
end do SOR_Convergence
function do_something() result()
...
end function do_something
ユーザスニペット
任意のコード片を一発挿入可能
→ユーザスニペット→登録されている言語を選択
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 25
ユーザスニペット
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 26
"Using iso_fortran_env module": {
"prefix": "usf",
"body": [
"use,intrinsic :: iso_fortran_env"
],
"description": "Using iso_fortran_env module"
},
"Declaration of binary64": {
"prefix": "r8",
"body": [
"real(real64)"
],
"description": "Declaration of binary64"
},
ユーザスニペット
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 27
"main routine template": {
"prefix": "prog",
"body": ["program $1",
" use, intrinsic :: iso_fortran_env",
" implicit none",
" $0",
"end program $1"],
"description": "main routine template"
},
"allocation inspection": {
"prefix": "allocated?",
"body": "if(.not.allocated($1)) allocate($1($0))",
"description": "allocation inspection"
},
ユーザスニペット登録の効果
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 28
スニペット利用前 スニペット利用後
※"$1 = $1 * $0"で*=演算も模擬可能
Fortranユーザが出会うギャップ
開発環境の構築
記述が冗長
リモートで実行
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 29
リモートで実行
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 30
ssh
コンパイル
ジョブ投入
ローカル
ログインノード
ssh
コンパイル
実行
ビジュアル環境
ターミナル(全ての作業)
コンパイル
実行
*掲載許可取得済み
VSCode + Remote-SSH
VSCodeからssh経由で大型計算機に接続
設定・拡張・コードスニペットを同期でき,ローカルと同様
の操作が可能
ドラッグ&ドロップでファイル転送可能
※利用の際は管理者や計算機を管理している組織に確認のこと
◦ 利用を禁止しているところもある
◦ 負荷が高い,プロセス残留等
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 31
VSCode + Remote-SSH
接続先をユーザフォルダ¥.ssh¥configに記述
→Remote-SSH: Connect to Host...を選択
接続先を選択してログイン
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 32
VSCode + Remote-SSH
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 33
ログイン先
計算機の
フォルダ
ログイン先計算機の
ターミナル
ログイン先
計算機の
ファイル
リモートで実行
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 34
ビジュアル環境
+統合ターミナル(必要最低限のコマンド実行)
ssh
コンパイル
ジョブ投入
ローカル
ログインノード
ssh
コンパイル
実行
コンパイル
実行
*掲載許可取得済み
Fortranユーザが出会うギャップ
開発環境の構築
記述が冗長
リモートで実行
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 35
その他VSCodeの利点
クラシカルなコードと付き合いやすくなる
◦ 変数名の変更が容易
◦ FORTRANの変数名は大体6文字程度(当時の規格による制限)
◦ 暗黙の型宣言が利用されているので,更新忘れがあると致命的
◦ VSCodeならシンボル名の変更,全ての出現箇所を変更で手軽に変更
◦ フォルダを基準としたワークスペース管理
◦ かつては1ファイル1プログラム単位(メイン/サブルーチン,関数)が推奨
◦ プロジェクトにファイルを追加するのが面倒
◦ VSCodeならフォルダ単位で(サブフォルダも含めて)ワークスペースとして管理
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 36
その他VSCodeの利点
画像をコメントとして挿入できる
◦ 複雑なアルゴリズムや式を文字表現に変換することなく参照
◦ 科学技術計算では参考文献と対比可能
Microsoft製
◦ フリーソフトウェアの利用が禁止されていても,Microsoft製なら別扱い
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 37
マウスホバーで
画像がポップアップ
Image
preview
まとめ
VSCodeを活用し,Fortranの利便性の改善と開発環境の整備を
行った事例を報告
◦ 開発環境の構築 ← Modern Fortran等の拡張
◦ 記述が冗長 ← ユーザスニペット
◦ 大型計算機で実行 ← Remote-SSH拡張
◦ その他
VSCodeには,これからもプログラマにとって付き合いやすい
エディタであり続けてほしい
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 38
Fortran撲滅論
起源は1961年
We wish to obsolete FORTRAN and scrap it, not
perpetuate it.
R.W. Bemer
1990年代以前 FORTRANが挑戦を受ける
1990年代以降 Fortran撲滅論が当然という風潮
◦ 古いから滅ぼさなければならない
◦ 古い言語を使っている,知識を更新できない劣った人達と共に滅ぼす
べきだ
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 39
https://qiita.com/cure_honey/items/71a78657225573aad471
Fortran撲滅論
Fortran撲滅論は伝統芸能
◦ 特に後期撲滅論は,個別事例の一般化や論理的飛躍が見受けられる
言語に限らず,技術が使い続けられるには理由がある
◦ Fortranは理工学者にとって非常によい道具
◦ COBOLが置き換わらないのは,技術者が怠惰だからではない*
推し言語・推し技術のよいところを共有して,共に良くして
いきませんか?
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 40
*Bellotti, M., Is COBOL holding you hostage with Math?, https://medium.com/the-
technical-archaeologist/is-cobol-holding-you-hostage-with-math-5498c0eb428b.
accessed Nov. 18th, 2020.
質問
Q 今からFortranを学習するのは難しいですか?
A 難しくはありません.手続き型プログラミングであれば,学
習が容易な言語だと考えています.
しかし,オンライン・オフラインを問わず,参照できる情報
はあまり多くありません.
また,Fortranのオブジェクト指向プログラミングの機能は
かなりクセが強いので,オブジェクト指向プログラミングを
知っていても,苦戦する可能性があります.
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 41
質問
Q classic fortran向けのformatterエクステンションまたはプ
ログラムがあれば、ご教示いただけますでしょうか。
A classical FORTRANのformatterは,探してもなかなか見つ
けられず,これというものを紹介することができません.
Modern Fortran拡張は,固定形式にも対応しているので,
自動インデントなどは対応していると思われます.
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 42
質問
Q Fortran界隈の人は、Fortran以外にどんな拡張機能を使っ
ていますか?
A VimやEmascのキーバインドを模擬する拡張の他,Git Lens,
C/C++やPythonの拡張,Markdown Previewなども使われ
ています.
Modern Fortran拡張は,まれにビジー状態になる(Fortran
の既存キーワードを含む関数名を定義した場合など)事があ
るので,その際はModern Fortran拡張を無効化し,類似の
fortran拡張を用いる場合があります.
Nov. 21st, 2020 VS CODE CONFERENCE JAPAN 43

More Related Content

What's hot

GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE) GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
智啓 出川
 

What's hot (20)

研究室における研究・実装ノウハウの共有
研究室における研究・実装ノウハウの共有研究室における研究・実装ノウハウの共有
研究室における研究・実装ノウハウの共有
 
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
 
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks? 【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
 
最適化計算の概要まとめ
最適化計算の概要まとめ最適化計算の概要まとめ
最適化計算の概要まとめ
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE) GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
 
最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向
 
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
 
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tipscvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tips
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
 
卒論執筆・スライド作成のポイント
卒論執筆・スライド作成のポイント卒論執筆・スライド作成のポイント
卒論執筆・スライド作成のポイント
 
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
 
自然言語処理基礎の基礎
自然言語処理基礎の基礎自然言語処理基礎の基礎
自然言語処理基礎の基礎
 
「日本語LaTeX」が多すぎる件について
「日本語LaTeX」が多すぎる件について「日本語LaTeX」が多すぎる件について
「日本語LaTeX」が多すぎる件について
 
30分で分かる!OSの作り方
30分で分かる!OSの作り方30分で分かる!OSの作り方
30分で分かる!OSの作り方
 
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発
 
最適輸送入門
最適輸送入門最適輸送入門
最適輸送入門
 
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!
遺伝的アルゴリズム(Genetic Algorithm)を始めよう!遺伝的アルゴリズム(Genetic Algorithm)を始めよう!
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!
 

Similar to Fortranが拓く世界、VSCodeが架ける橋

BCL WhiteSalon "Convergence of Bio X Silicon X Robotics may bring us to the C...
BCL WhiteSalon "Convergence of Bio X Silicon X Robotics may bring us to the C...BCL WhiteSalon "Convergence of Bio X Silicon X Robotics may bring us to the C...
BCL WhiteSalon "Convergence of Bio X Silicon X Robotics may bring us to the C...
Gohsuke Takama
 
Rtm・ros相互運用プログラミング環境
Rtm・ros相互運用プログラミング環境Rtm・ros相互運用プログラミング環境
Rtm・ros相互運用プログラミング環境
openrtm
 
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
Hideki Takase
 

Similar to Fortranが拓く世界、VSCodeが架ける橋 (20)

2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF
 
世界最安値!? 鯖江産コンピューターIchigoJam 〜福井技術者の集い その2〜
世界最安値!? 鯖江産コンピューターIchigoJam 〜福井技術者の集い その2〜世界最安値!? 鯖江産コンピューターIchigoJam 〜福井技術者の集い その2〜
世界最安値!? 鯖江産コンピューターIchigoJam 〜福井技術者の集い その2〜
 
BCL WhiteSalon "Convergence of Bio X Silicon X Robotics may bring us to the C...
BCL WhiteSalon "Convergence of Bio X Silicon X Robotics may bring us to the C...BCL WhiteSalon "Convergence of Bio X Silicon X Robotics may bring us to the C...
BCL WhiteSalon "Convergence of Bio X Silicon X Robotics may bring us to the C...
 
Rtm・ros相互運用プログラミング環境
Rtm・ros相互運用プログラミング環境Rtm・ros相互運用プログラミング環境
Rtm・ros相互運用プログラミング環境
 
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
 
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
 
日本のメイカー活動とNT金沢
日本のメイカー活動とNT金沢日本のメイカー活動とNT金沢
日本のメイカー活動とNT金沢
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッションC# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
 
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
 
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdfソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdf
 
インタラクションデザインにおけるオープン化事例の検討
インタラクションデザインにおけるオープン化事例の検討インタラクションデザインにおけるオープン化事例の検討
インタラクションデザインにおけるオープン化事例の検討
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
 
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
 
会津IT秋フォーラム2012での講演資料
会津IT秋フォーラム2012での講演資料会津IT秋フォーラム2012での講演資料
会津IT秋フォーラム2012での講演資料
 
【de:code 2020】 あらゆるエンジニアを支援! VS Code Meetup の紹介とハンズオンで活躍するテクニック集
【de:code 2020】 あらゆるエンジニアを支援! VS Code Meetup の紹介とハンズオンで活躍するテクニック集【de:code 2020】 あらゆるエンジニアを支援! VS Code Meetup の紹介とハンズオンで活躍するテクニック集
【de:code 2020】 あらゆるエンジニアを支援! VS Code Meetup の紹介とハンズオンで活躍するテクニック集
 
Azure Remote Renderingを試す
Azure Remote Renderingを試すAzure Remote Renderingを試す
Azure Remote Renderingを試す
 
OSC Nagoya NETMF 160528
OSC Nagoya NETMF 160528OSC Nagoya NETMF 160528
OSC Nagoya NETMF 160528
 
「だけじゃない」ESP32
「だけじゃない」ESP32「だけじゃない」ESP32
「だけじゃない」ESP32
 
フィジカルコンピューティングとその可能性
フィジカルコンピューティングとその可能性フィジカルコンピューティングとその可能性
フィジカルコンピューティングとその可能性
 

More from 智啓 出川

GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust)
GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust) GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust)
GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust)
智啓 出川
 
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS) GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
智啓 出川
 
GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)
智啓 出川
 
GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)
GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)
GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)
智啓 出川
 
GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第14回 複数GPUの利用
2015年度先端GPGPUシミュレーション工学特論 第14回 複数GPUの利用2015年度先端GPGPUシミュレーション工学特論 第14回 複数GPUの利用
2015年度先端GPGPUシミュレーション工学特論 第14回 複数GPUの利用
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用 (高度な最適化)
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用(高度な最適化)2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用(高度な最適化)
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用 (高度な最適化)
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用 (支配方程式,CPUプログラム)
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用(支配方程式,CPUプログラム)2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用(支配方程式,CPUプログラム)
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用 (支配方程式,CPUプログラム)
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第10回 Poisson方程式の求解 (線形連立一次方程式)
2015年度先端GPGPUシミュレーション工学特論 第10回 Poisson方程式の求解(線形連立一次方程式)2015年度先端GPGPUシミュレーション工学特論 第10回 Poisson方程式の求解(線形連立一次方程式)
2015年度先端GPGPUシミュレーション工学特論 第10回 Poisson方程式の求解 (線形連立一次方程式)
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算 (移流方程式)
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算(移流方程式)2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算(移流方程式)
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算 (移流方程式)
智啓 出川
 

More from 智啓 出川 (20)

Very helpful python code to find coefficients of the finite difference method
Very helpful python code to find coefficients of the finite difference methodVery helpful python code to find coefficients of the finite difference method
Very helpful python code to find coefficients of the finite difference method
 
Why do we confuse String and Array of Characters in Fortran?
Why do we confuse String and Array of Characters in Fortran?Why do we confuse String and Array of Characters in Fortran?
Why do we confuse String and Array of Characters in Fortran?
 
Pythonによる累乗近似
Pythonによる累乗近似Pythonによる累乗近似
Pythonによる累乗近似
 
数値計算結果のPythonによる後処理について(1次元データのピーク値およびその位置の推定)
数値計算結果のPythonによる後処理について(1次元データのピーク値およびその位置の推定)数値計算結果のPythonによる後処理について(1次元データのピーク値およびその位置の推定)
数値計算結果のPythonによる後処理について(1次元データのピーク値およびその位置の推定)
 
Schematic diagrams of GPUs' architecture and Time evolution of theoretical FL...
Schematic diagrams of GPUs' architecture and Time evolution of theoretical FL...Schematic diagrams of GPUs' architecture and Time evolution of theoretical FL...
Schematic diagrams of GPUs' architecture and Time evolution of theoretical FL...
 
GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust)
GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust) GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust)
GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust)
 
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS) GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
 
GPGPU Education at Nagaoka University of Technology: A Trial Run
GPGPU Education at Nagaoka University of Technology: A Trial RunGPGPU Education at Nagaoka University of Technology: A Trial Run
GPGPU Education at Nagaoka University of Technology: A Trial Run
 
Cuda fortranの利便性を高めるfortran言語の機能
Cuda fortranの利便性を高めるfortran言語の機能Cuda fortranの利便性を高めるfortran言語の機能
Cuda fortranの利便性を高めるfortran言語の機能
 
PGI CUDA FortranとGPU最適化ライブラリの一連携法
PGI CUDA FortranとGPU最適化ライブラリの一連携法PGI CUDA FortranとGPU最適化ライブラリの一連携法
PGI CUDA FortranとGPU最適化ライブラリの一連携法
 
教育機関でのJetsonの活用の可能性
教育機関でのJetsonの活用の可能性教育機関でのJetsonの活用の可能性
教育機関でのJetsonの活用の可能性
 
GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)
 
GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)
GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)
GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)
 
GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)
 
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
 
2015年度先端GPGPUシミュレーション工学特論 第14回 複数GPUの利用
2015年度先端GPGPUシミュレーション工学特論 第14回 複数GPUの利用2015年度先端GPGPUシミュレーション工学特論 第14回 複数GPUの利用
2015年度先端GPGPUシミュレーション工学特論 第14回 複数GPUの利用
 
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用 (高度な最適化)
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用(高度な最適化)2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用(高度な最適化)
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用 (高度な最適化)
 
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用 (支配方程式,CPUプログラム)
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用(支配方程式,CPUプログラム)2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用(支配方程式,CPUプログラム)
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用 (支配方程式,CPUプログラム)
 
2015年度先端GPGPUシミュレーション工学特論 第10回 Poisson方程式の求解 (線形連立一次方程式)
2015年度先端GPGPUシミュレーション工学特論 第10回 Poisson方程式の求解(線形連立一次方程式)2015年度先端GPGPUシミュレーション工学特論 第10回 Poisson方程式の求解(線形連立一次方程式)
2015年度先端GPGPUシミュレーション工学特論 第10回 Poisson方程式の求解 (線形連立一次方程式)
 
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算 (移流方程式)
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算(移流方程式)2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算(移流方程式)
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算 (移流方程式)
 

Fortranが拓く世界、VSCodeが架ける橋