2019年度の授業「プレゼンテーション演習」の受講生のおすすめTED動画を4つご紹介します.
カテゴリー: プレゼンテーション
32nd International Symposium on Shock Wavesで研究成果を発表しました.
2019年7月14日〜19日の間シンガポールで開催されている32nd International Symposium on Shock Wavesにおいて,本研究室の研究成果を発表しましたので,ご報告します.
- 演題:Numerical simulation of the shock-induced motion of a solid body using the overset grid functionality of OpenFOAM
- 著者:Y. Sakamura (登壇者),K. Nakayama and H. Oshima
Juliaに傷心(ハートブレイク)

2019年5月18日(土)に富山CiCビルで開催された第72回オープンCAE勉強会@富山で,プログラミング言語Juliaに関する話題提供を行いました.その内容をざっくり纏めてみましたので,ご紹介します.
報告内容
- Juliaとは?
- Juliaのインストール
- Jupyterでの利用
- Pythonとの速度比較(暫定版)
- まとめ
Juliaとは?
Juliaは2012年に発表された新しいプログラミング言語であり,個人的には次のような特徴が気に入っています.プログラミングの導入教育には最適だと考えられます.
- Python同様動的型付け言語だが,静的型付け言語に迫る実行速度を持つらしい.
- 計算実行時にコンパイルするJIT(Just-In-Time)コンパイラを採用しており,PythonやRuby等のインタプリタと同じように簡単に利用できる.
- Python同様,Jupyterをインターフェイスとして利用できる.
Juliaのインストール
公式サイトで各種OS用のインストーラが配布されています.私はmacOS版を手元のMacBookにインストールして使っています.
Mac版Juliaは,通常のアプリケーションとして登録されますので,ダブルクリックするとターミナル上でREPL (Read-Eval-Print Loop)環境が動作します.パッケージの追加・アップデートはこの環境で行うことができます.さらに,”?”をつけてコマンド等を入力すると詳しいヘルプ画面が表示されます.
Jupyterでの利用
私にとって最大のJuliaの魅力は,Jupyter notebookやJupyter lab上で実行できることです(そもそもJupyterの”Ju”はJuliaを指しているらしいので,当たり前と言えば当たり前ですが).
既にJupyterがインストールされていれば,Jupyterとの連携は簡単です.私の環境(Mac+Anaconda)の場合,JuliaのREPL環境で”]”をタイプしてpkgモードにした後,次のようにしてIJuliaパッケージをインストールすれば,Jupyterのカーネル・リストにJuliaが追加され,利用できるようになりました.
(v1.1) pkg> add IJulia
Pythonとの速度比較(暫定版)
Pythonプログラムと,それをJuliaに移植したプログラムとで計算速度の比較を行ってみました.
計算対象は,Barba先生のCFD-Python Step 5で取り上げられている2次元線形移流方程式
の差分近似
です.これを以下の初期条件,境界条件の下で解いてみました.
初期条件:
境界条件:
空間の分割数はx, y方向ともに80分割()で,100タイムステップ
の計算にかかる時間を計測しました.
CFD-Pythonのコードのコア部分は以下のようなものです.
for n in range(nt + 1):
un = u.copy()
for j in range(1, ny):
for i in range(1, nx):
u[j, i] = un[j, i] – c * dt*( (un[j, i] – un[j, i – 1])/dx+ (un[j, i] – un[j – 1, i])/dy)
これをJuliaに移植すると
for n in 1:nt
un = copy(u)
for i in 2:nx-1
for j in 2:ny-1
u[i, j] = un[i, j] – c * dt*((un[i, j]-un[i-1, j])/dx+(un[i, j]-un[i, j-1])/dy)
u[1, j] = 1
u[nx, j] = 1
end
u[i, 1] = 1
u[i, ny] = 1
end
end
シンプルで,初心者にも分かり易いコードだと思います.このコードで計算した結果,Pythonコードでは2.5 s程度掛かっていた時間がJuliaコードでは0.41 sに短縮され,6倍程度高速になりました.
元になったPythonコードの計算過程も分かり易いのですが,3重のfor-loopで書かれていて,ものすごく遅いため,普段Pythonを使っている人は配列操作(Array Operation)を用いるようです.実際,CFD-Pythonでも配列操作を利用するコードが紹介されていて,こちらで計算すると6 ms程度で計算が終了しました.私が書いたJuliaコード(3重のfor-loopを用いたもの)の60倍以上のスピードが出ています(速い!).
せっかくJuliaを使ったのに配列操作を使ったPythonに惨敗という結果になりまして,傷心気味だったのですが,@ceptreeさんの記事「Juliaの速さを体感する」を見つけ,メインループの関数化を試みたところ,Juliaでの計算時間を0.14 sにまで短縮することができました.それでもなお,配列操作を使ったPythonコードにスピードでは圧倒的に負けていますので,引き続き,Juliaの高速化について調べてみたいと思っています.
まとめ
- Juliaはシンプルで使いやすい(あくまでも,個人の感想です).
- Jupyterをインターフェイスとして使用できる.
- Juliaはfor-loopを使ったPythonよりは速いが,配列操作を使ったPythonより遅かった.(引き続き,検討予定)
- Juliaでは,関数内にfor-loopをまとめると計算速度が向上する.
第14回学際領域における分子イメージングフォーラムで研究成果を発表しました.
2019年3月8日(金)にJAXA調布航空宇宙センター開催された標記フォーラムで研究成果をポスター発表しました.
・ポスタータイトル:感温発光薄膜を用いた微細流路内壁面の温度イメージング
・著者名:加藤巧也・大嶋元啓(発表者)・坂村芳孝・川端繁樹
日本機械学会 北陸信越支部 第56期総会・講演会で研究成果を発表しました.
2019年3月2日(土)に富山大学五福キャンパスで開催された標記講演会におきまして,本研究室の研究成果を発表しました.
演題:2温度モデルを用いた非平衡窒素プラズマ流れの数値シミュレーション
著者:八重尾猛史(登壇者),坂村芳孝,大嶋元啓
流体工学シンポジウム2018で研究成果を発表しました.
2018年12月15日(土)に福井大学で開催された標記シンポジウムにおいて研究成果を発表しました.
演題:感温発光薄膜センサを用いた微細流路壁面の温度計測
著者:加藤巧也(登壇者)・坂村芳孝・川端繁樹・大嶋元啓・光崎雅大
本研究は,JSPS科研費JP26420120の助成を受けたものです.
オープンCAEシンポジウム2018で研究成果を報告しました.
2018年12月8日(土)に川崎市産業振興会館で開催されたオープンCAEシンポジウム2018において研究成果を報告しました.
演題:Pythonライブラリを用いた実験データの高効率な処理システムの構築
著者:大嶋元啓(登壇),中山勝之,小原弘之,坂村芳孝
平成30年度富山県立大学秋季公開講座で講義を行いました.
2018年11月17日(土)に富山県立大学で開催された標記公開講座「環境調和型ものづくりを支える先端技術」で講義を行いました.
お集まりいただいた受講者の皆さんには,熱心に耳を傾けていただき,改めて感謝申し上げます.講義後も多くの質問をいただきました.講義が予定時間を過ぎてしまったため,十分お答えすることができなかった恐れもあります.ご質問等ありましたら,直接電子メールでお寄せください.
