6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Raspberry Piで材料シミュレーション

Last updated at Posted at 2018-07-17

はじめに

Raspberry Piは、Mathematicaが無償(非商用)で提供されているなど、組み込み用途だけでなく、科学技術計算にも利用できます。もちろん、材料シミュレーションにも使えます。

ハードウェアの用意

高速CPUと大容量メモリが望ましいことは、言うまでもありません。執筆時点で最高性能のハードウェアを用意しました。

  • Raspberry Pi 3 Model B+
    • ARMv8 (64 bit対応)、1.4 GHz、4コア
    • メモリ1 GB
    • (イーサネット実質300 Mbps)

複数のノードがネットワークを介してデータ通信しながら協調動作する並列計算も期待できそうですが、今回は利用しません。
CPUに長時間連続して高い負荷をかけることを前提に、ヒートシンクとファンを装着しました。ファンの電源はGPIOからとります。ピン配列はこちらを参照してください。
GPIO - Raspberry Pi Documentation
CPU温度が上昇するとクロックダウンする機能が備わっているので、計算性能を維持するために注意しましょう。
raspi.jpg
他に、 SDカード (32 GB)、USBのキーボードとマウス、HDMIでつながるディスプレイを用意します。

インストールと計算環境の設定

USBからの起動やネットワークブートもできるそうですが、お手軽なSDカードを利用します。

公式OSであるRaspbianは、32 bit版のみが提供されています。ARMv8の64 bit実行モード (AArch64)は、32 bit実行モード (AArch32)と比べて大幅に機能拡張されていますので、前者の方が高速動作が期待できそうです。
ARM、64ビットアーキテクチャ「ARMv8」の概要を公開 (2)

複数のLinuxディストリビューションから64 bit版OSが提供されていますので、ここではOpenSUSE(Leap 15.0; XFCE)を選びました。
HCL:Raspberry Pi3 - openSUSE
ダウンロードしたファイルは圧縮されていますので、7-Zipなどのソフトウェアを利用して伸張します。

SDカードをフォーマットします。Windows標準搭載機能を使ってフォーマットできますが、専用ソフトウェアを利用した方が良いそうです。
SDメモリカードフォーマッター - SD Association
続いて、先ほど伸長したOSのイメージを、SDカードに書き込みます。
Win32 Disk Imager download

以上で準備が整いました。SDカードを本体に装着し、電源を入れると起動します。初期設定は、rootのパスワードがlinuxとなっています。起動後直ちに変更します。一般ユーザーを作り、管理作業以外の操作は一般ユーザーを使いましょう。

ネットワークの設定には少々手間取りました。私の環境では、インストール直後は有線ネットワークが正常に動作しませんでした。一旦無線で接続してソフトウェアを更新後に、有線が動作するようになりました。有線ネットワークのハードウェアは旧機種から変更されているので、ドライバが間に合っていなかったのかもしれません。

パッケージ管理はzypperコマンドを使います。追加ソフトウェアをインストールします。

# zypper --non-interactive install gnuplot gcc-fortran gcc-c++ openmpi3-devel fftw3-devel

OpenMPIのコマンドは/usr/lib64/mpi/gcc/openmpi3/bin/にインストールされます。同ディレクトリをPATHに追加しましょう。またFFTW3のライブラリは/usr/lib64/にインストールされます。

この時点でSDカードの空き容量は約25 GBでした。

アプリケーションソフトウェアの導入

コンパイル作業は、Intel系プロセッサのLinuxとほぼ同じです。別記事を参照してください。ソースコードは、ネットワークを利用してコピーします。
アプリケーションソフトウェア導入

相違点

PHASE/0

Makefile中、コンパイルコマンドのオプションに-m64があります(三か所)が、これらは不要です。削除してください。

libxc

コンパイル中にコンパイラ(gcc)が異常終了してしまいました。最適化レベルを下げると正常にコンパイルできましたので、configure時にオプションを追加してください。

$ ./configure CFLAGS=-O0

性能評価

公平公正なベンチマークは難しいので厳密な評価ではありません。コンパイラ等のバージョンも統一していません。

比較対象

Core i5-4200U搭載ノートパソコン。
物理コア2、Hyper Threadingで4論理コア、Windows 8.1。
コアを二つ割り当てた仮想マシン(Virtual Box)でCentOS7が稼働。

計算課題

ITO(In$_2$Sn$_2$O$_7$; 基本格子22原子)のPHASE/0によるSCF計算に要する時間を測定。

結果

計算機環境と並列条件 所要時間
Raspberry Pi(バンド2並列、k点2並列の計4並列) 64分
比較対象WindowsノートPC(k点2並列) 7分

同じコア数で比較すればCore i5が速いことは予想していましたが、これほど差がつくとは思いませんでした。積極的にRaspberry Piをお勧めする場面は限られますが、例えば、主にノートパソコンをお使いで、それを頻繁に持ち歩いている場合は、長時間の計算は事実上できません。そんな時には、卓上にRaspberry Piを置いて、計算し続けてはいかがでしょうか。

まとめ

これだけでは実用に供する材料シミュレーションとはなりませんが、本格的な予算獲得に向けた準備・練習に是非活用してください。

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?