数値計算環境の構築について
To Construct a Computing Environment for Numerical Simulation
嶋﨑 真一 ∗

Shin-ichi SHIMASAKI

概要
数値計算の環境を整えようとしたときに，一般向けの PC と，科学技術計算用の HPC（HighPerformance Computer）の 2 つの選択肢がある。最近は PC の低価格化が著しく，Intel の高性
能 CPU を搭載した計算機が 10 万円台で買えてしまう。一方で，科学技術計算用と銘打った計算機を探すと，ちょっとしたスペックでも数十万円，少し良い構成にするとすぐに百万円単位の予算が必要になる。この差が何に由来しているのかを調査し，計算機を選択する際の指針について簡単にまとめた。

Keywords: HPC，数値計算，ソフトエラー，ECC メモリのでありi ，再起動すれば何事もなかったように復帰す

1. 中性子線とソフトエラー

る。ソフトエラーは，どのタイミングでどの場所に起こるか予測できず，再現性がない。

香川高専高松キャンパスの学生用玄関には大型の霧ソフトエラーの頻度については，緯度や高度・太陽活箱が設置されており，霧の白い軌跡が常時現れては消動の影響などが知られている 1) 。高度や緯度が高いとえることが観察できる。この軌跡は放射線が通過したころにある場合は，宇宙線が多いためにソフトエラー際に生じるものであり，空間を常に放射線が飛び交っの頻度が上昇する。富士山山頂では海抜ゼロの地点よていることが実感できる。放射線には幾つかの種類があり，放射線ごとに軌跡の様子が異なっていて，じっりもソフトエラーの確率が 17 倍高くなるし，高高度をと見ているだけで楽しい。

飛ぶ旅客機内では確率は 300 倍も高くなる。また，太陽活動が低下すると太陽風によって遮られていた宇宙放射線の中には中性子線と呼ばれるものがあり，海線が増えるので，ソフトエラーが全世界的に増加する

抜 0 m では 1 cm2 ，1 hour あたり 13 個程度飛来していことになる。

る 1) 。これだけの頻度があれば，霧箱で容易に観察さ使用しているメモリの配線幅が微細化されると，それても良さそうなものだが，中性子は名前の通り電気の配線が細くなった分だけソフトエラーに対する耐的に中性で，物質を透過する能力が非常に高い。その性が少なくなる一方で，宇宙線がヒットする回路面積ため，中性子線は霧箱と相互作用を起こすことなく透が減少する。この二つの効果が相殺しあって，結局ソ過してしまう。残念ながら霧箱ではその軌跡を観察す

フトエラーの頻度は世代によってそれほど変化していることはできない。

ない。一方で，システムの経年劣化によってソフトエ

この中性子線が運悪く計算機のメモリに衝突し，ごラーが増えると言われており，使用開始後 10〜18 ヶ月

く稀にノイズが生じてメモリの内容が書き換えられてしまうことがある。これがソフトエラーと呼ばれるもi ソフトウェアのエラーという意味ではないので注意。一方，再起動しても復帰できないような，物理的な回路の故障はハードエラーと呼ばれる。

∗ 香川高等専門学校 機械電子工学科

107独立行政法人国立高等専門学校機構香川高等専門学校研究紀要9(2018)

でエラーの発生率の増加が始まるとの報告がある 2) 。

2. ソフトエラー対策（ECC メモリ）

Daniel らは実際に数値計算を行っている CPU に強力な中性子線を照射し，CPU のキャッシュメモリに現在のところ，最も普及しているソフトエラー対おけるソフトエラーの加速試験（自然界に換算して策は，ECC メモリを使用することである。ECC メモ

57,000 年に相当）を行い，その結果を報告している 3) 。

リとはエラー訂正機能つきのメモリ Error Check and実行している科学技術計算の種類によってエラーのCorrect memory（もしくは Error Correcting Code）の発生率が異なったり，アルゴリズムを変更することにことである。メモリにエラー訂正用の冗長データを付よってエラー率を低減させることが示されており，大加して，これを用いてソフトエラーによってビット反変興味深い。また，彼らの実験結果からすると，大規転したデータを自動で検知し，訂正することができる。

模な計算機（日本で言えば「京」などに相当）では，１ECC の仕組みや動作については，ネットを少し調べた

日あたり 1 回程度は CPU のキャッシュメモリに深刻だけでもたくさんの情報が出てくるので，本稿では省なエラー（検出はできたが訂正ができないタイプのエ略する。

ラー）が生じていることになる。昔，某大学がメモリECC が必要とされるケースは以下のとおり:訂正機能のない市販の PC 約 1,000 台を組み合わせて• 財務計算や一部の科学技術計算のように，数値のスーパーコンピューターを作ろうとしたが，ブート途信頼性が絶対的に重要な場合。

中のわずかな間にソフトエラーで倒れるという状態で• 長時間連続運用する場合。数値計算を長時間連続使いものにならなかったという 4) 。
以上の情報を総合すると，我々が通常使用しているで回しているような使い方をしていると，その間計算機においては，大雑把にいって 1 年に 1 回程度ii はにソフトエラーに遭遇する可能性が高くなる。

ソフトエラーが生じていると考えて良さそうである。

• 大量のメモリを積んでいる場合。メモリをたくさん積んでいると，それだけソフトエラーに遭遇す計算機は意外にドジっ子なのだ。

る可能性は高くなる。

ソフトエラーが生じたとしても，ビット反転した箇所がたまたま未使用領域であれば，計算機への影響は逆に考えると，以下のようなケースでは無理に ECCない。また計算機がハングアップしてくれれば，計算を使用しなくても良い。

は中断こそしてしまうが，それ以上の問題にはならな• たまにハングアップしても，再起動すればそれでい。厄介なのは，データの一部が化けてしまったことに気がつかないまま作業を進めてしまうことである。

済ませられる場合。

• マシンの大半の時間はアイドルで占められている

化けたデータに基づいて誤った結論を出してしまうと場合。

取り返しがつかないし，何か変だと思ってもソフトエ• メモリがそれほど多く無い場合。

ラーには再現性がないので，どこが悪かったのか検証すらできない。こうなるとドジっ子どころの話ではな

通常の事務的な用途では ECC は不要だろう。出力画

くなる。Geist 氏はこう問いかけている 4) :像に多少のノイズがあっても許容できるのであれば，長時間にわたるレンダリングやエンコードを行う計算You wouldn’t want to fly in an airliner designed using

機にも ECC は必要ない。科学技術計算でも，多少ビッsuch a calculation. Nor would you want to certify aト反転が生じても全体的な結果には影響がないような

new nuclear reactor based on one.

ケースiii であれば，問題はない。
このような計算を使って設計された旅客機には乗なお通常の ECC によって訂正できるのは 1 bit のりたくないだろう。もしくは，このような計算にエラーのみである。1 bit のエラーは ECC が自動的に基づいて新しい原子炉を保証したくないだろう。

訂正し，ログを残してそのまま計算機は走り続ける。

ii 既に説明したように，ソフトエラーの頻度は，緯度・高度・太iii モンテカルロ法によるシミュレーションや，ディープ・ラー

陽活動の強度・マシンの経年劣化の度合いやメモリ搭載量などに依存している。この頻度は 0.1 倍〜10 倍程度の幅をもって考えて欲しい。

ニングなどが該当するだろう。また近年においては，多少のエラーが発生することを前提にして，許容誤差を設定して計算機を運用することも考えられている 3) 。

108

嶋﨑真一:数値計算環境の構築について滅多にないことであるが，同一メモリ上で 2 bit が同Xeon そのものが高価であることに加えてiv ，Xeon

時に反転してしまうことがある。この場合，エラーをを選択した時点で，使用できるマザーボードやメモリ訂正することはできないが，エラーの検出は可能であなどの選択肢が少なくなり，価格が跳ね上がる。あるる。最近の Linux では訂正不能なエラーが検出された程度のメモリ容量を搭載した計算機を購入しようとす場合，即座にカーネルパニックを発生させることがでるなら，簡単に 100 万円を超えてしまうだろう。

きるようになっている。3 bit 以上の場合は，検出すら頑張って安くあげるようとするなら，Core i3 や Xeonできない可能性が出てくる。こんな時は，運が悪かっ

E3 で ECC が使えるマザーボードで組み立てることもたとして諦めるしかない。

可能らしい 8) 。しかし，自作で安定した計算機を組み近年では複数のメモリセルの値が同時反転してしま上げるのはかなりのノウハウが必要であるし，そもそう現象や，並列化された計算機の複数の論理ノードにも公式にはサポートされていない。信頼性の向上を求同時にエラーが生じしてまう現象が顕在化してきておめて ECC を使用するのに，信頼性を確保するのが難し

り 5) ，それらに対する対策が盛んに議論されている。

い自作機を選択するというのは無理がある。よほど腕

ECC を拡張してマルチ bit のエラー訂正ができるものに自信があるのではない限り，業務に使用するのであ（商品名：Advanced ECC，ChipKill など）はハイエンれば，信頼のできるベンダーから既製品を購入すべきドのサーバに多く採用されているし，さらに心配性のである。

人はメモリを二重にして，ECC で訂正不能なエラーが一方，最近発売された AMD 社の CPU である Ryzen

出た時はもう一方の内容を取り出して使用したりするでは，コンシューマ向け製品で ECC の動作を検証し（ミラーリング）。当然，メモリは搭載量の半分しか使ていないが，CPU での機能自体は有効であり，マザーえない。二重で足りなければ，三重にする。他にもメボードと BIOS 次第で対応可能とされている 9) 。これ

モリ内容の保護のために様々な技術が存在しているが，が本当なら，大容量の ECC メモリを積んだマシンが安それらは総じて恐ろしく高価である。間違いが絶対にく調達できる可能性がある。今後の実績を待ちたい。

許されない銀行の勘定系や，宇宙線の影響が深刻な航また次世代のメモリ規格である DDR5 では，メモリ空機や宇宙探査機で採用されているようだ 6) 。

そのものに ECC が実装されることになっている 10) 。

なお，先にも述べたようにソフトエラーを引き起こ

この製品が普及すれば，一般用途の PC でも ECC が使す宇宙線は，一般に中性子線（特に高速中性子）であ用できるようになるだろう。この製品が実際に登場する。中性子線は遮蔽するのが非常に難しく，水やポリるのは 2020 年頃と言われている。

エチレン，カドミウム，コンクリートなどの層を複合的に組み合わせて遮蔽される 7) 。遮蔽によってソフト

4. では，どちらを購入すべきか？

エラーを低減させるのは現実的ではない。

Dell あたりで適当に検討すれば，高速な Core シリー
ズの CPU を搭載した non-ECC のマシンが安価に入手できる。並列数が少ない計算であれば，Xeon 搭載の3. ECC が使用できる計算機計算専用機より速いことも珍しくない。ソフトエラーが起こりうることを前提にして，相応の手間をかける

本稿執筆の 2017 年度の時点では，Intel 社の CPU でことを厭わないのであればv ，あえて non-ECC の計算

ECC を使用できるのは Xeon 系列のみとなっている。

機で済ませるという判断があっても良い。一方で，ソCore i5，i7，i9 では ECC は使用できない。かつて 2006

フトエラーが受け入れられないのであれば，現状では年に Windows Vista がリリースされた時に，MicrosoftXeon ＋ ECC の計算機にするしかない。

が ECC メモリを必須にしようと画策したが，コストアップにつながるとしてメーカーが反対して，上手くiv 最も高価なものだと，CPU 単体で 100 万円を優に超える。基いかなかったことがあった。それ以来ずっと，一般向本的に業務用であり，CPU に投資してもそのコストを業務で回収できることを前提として購入するものである。
v 例えば，重要な計算は二回行う，長時間の計算は行わないと割り切って運用する，など。

けの PC は non-ECC，サーバ向けは ECC と棲み分けられている。

109

独立行政法人国立高等専門学校機構香川高等専門学校研究紀要9(2018)

月並みな結論だが，予算／計算の重要性／費やすこそれにともない，少しずつ計算環境を整えてきた。ことのできる時間や手間などの費用対効果を勘案して，れから計算を始めようという人に，本稿が少しでも参選択することになるだろう。

考になれば幸いである。

5. 当研究室の計算環境

参考文献

筆者の研究室では，数値計算用に以下の計算機を用[1] JEDEC Solid State Technology Association, “Mea-意している。主な用途は流体計算と大容量のメモリをsurement and Reporting of Alpha Particle and Ter-要する画像処理である。

restrial Cosmic Ray Induced Soft Errors in Semiconductor Devices”, JEDEC Test Standard No. 89.

計 算 機 名： weber

2001-08.

マザーボード： Supermicro 社製 X10DAICP[2] Schroeder, Bianca; Pinheiro, Eduardo; Weber,

U： Xeon E5-2667v3 (20 MB Cache, 3.20

Wolf-Dietrich. “DRAM Errors in the Wild: AGHz, 8 Cores) × 2 CPU (合計 16 コア)
メモ

Large-Scale Field Study”. Proceeding of SIGMET-

リ： 128 GB (16 GB DDR4-2133 ECC Reg-

RICS/Performance‘09. Seattle, 2009-06-15/19, As-istered × 8)
Osociation for Computing Machinery (ACM). 2009,

S： Ubuntu 16.04 LTS

p. 193–204.

ベ ン ダ ー： HPC システムズ株式会社[3] Oliveira, Daniel; Pilla, Laércio; DeBardeleben,

導 入 時 期： 2015 年 8 月

Nathan; Blanchard, Sean; Quinn, Heather; Koren,
CPU の E5-2667v3 は，導入当時の Xeon の中で比較

Israel; Navaux, Philippe; Rech, Paolo. “Experimen-的動作周波数の高いものである。この計算機では主に

tal and Analytical Study of Xeon Phi Reliability”.

OpenFOAM を用いて流体計算を行っているが，それほSC ‘17 Proceedings of the International Confer-

ど並列性が良くないvi 。多少コア数を減らしてでもシence for High Performance Computing, Network-ングルの性能を上げたかったので，この CPU を選択

ing, Storage and Analysis. Denver, Colorado, 2017-

した。メモリは当然 ECC で，製品出荷前にベンダーに

11-12/17, Association for Computing Machinery

よって 58 時間の負荷試験が行なわれている。この構(ACM). 2017, Article No. 28.

成で，購入当時の価格は約 150 万円であった。業務に[4] Geist, Al. “How To Kill A Supercomputer: Dirty

使用するための計算機としては十分にリーズナブルでPower, Cosmic Rays, and Bad Solder”. IEEE Spec-あろう。他にも無停電電源装置や 10 GB Ethernet など

trum. 2016-02-23. https://spectrum.ieee.

を付けている。

org/computing/hardware/how-to-kill-a-

他にも non-ECC の計算機が複数台あるが，これらはsupercomputer-dirty-power-cosmic-rays-

全てその場で終了するような小規模な計算にしか使わ

and-bad-solder, (参照: 2017-08-31).

ない。手元の non-ECC の計算機でテストを繰り返し[5] 伊部英史; 鳥羽忠信; 新保健一; 上薗巧; 谷口斉. “た後，本番の計算を weber で行うという使い方をして環境放射線による電子装置のソフトエラー・障害いる。さらに大規模な計算が必要な場合は，他機関の対策の現状と取り組み”. 日立評論. 2014, vol. 96,

大型計算機を使うようにしている。

no. 07-08, p. 496–501.

これまで筆者は，どちらかというと実験がメイン，[6] Schmidt, Andrew G.; French, Matthew; Flatley,

計算をサブで研究を行ってきたが，高専に赴任してきThomas. “Radiation Hardening by Software Tech-たのをきっかけに，計算のウェイトを増やしつつある。

niques on FPGAs: Flight Experiment Evaluationand Results”. Aerospace Conference 2017 IEEE,vi 小規模な計算（約 40 万メッシュの流体計算）の場合，並列数

2017, p. 1–8.

8 と 16 のときの並列化効率の実測値はそれぞれ 0.8 と 0.6 程度であった。なお OpenFOAM の並列化手法はフラット MPI[7] 東北大学環境・安全委員会; 原子科学完全専門委員会. 放射線とアイソトープの安全取り扱い—東である。

110嶋﨑真一:数値計算環境の構築について

北大学放射線新規取扱者講習会テキスト 講義編.

2011, p. 102.
[8] 山県. “MSI「E3 KRAIT GAMING V5」—ECC
メモリーが使える白黒仕様のゲーミング
マ ザ ー が MSI か ら 発 売”. ASCII.jp. 2016-07-13. http://ascii.jp/elem/000/001/193/1193686/, (参照: 2017-08-31).
[9] Campbell, Mark. “AMD Confirms That Ryzen
Supports ECC Memory”, Overclock3D. 201703-02. https://www.overclock3d.net/news/
cpu_mainboard/amd_confirms_that_ryzen_
supports_ecc_memory/1, (参照: 2017-08-31).
[10] 福田昭. “次世代のサーバー／ハイエンド PC 向け
DRAM「DDR5 メモリ」”. PC Watch. 2017-0823. http://pc.watch.impress.co.jp/docs/
column/semicon/1076835.html, (参照: 201708-31).

111