CGER-I163-2023_計算で挑む環境研究
67/140

 しかし一部では、鉛直方向に順々に計算を進めていく必要があるため、並列に計算ができず、そのままでは性能が上がりません。こんなときは水平方向の並列性を用いて階層化を行うなど、また別の工夫が必要になります。 もう一つの高速化手法は「データの局所化」と呼ばれます。前述の通り、より転送速度が高い記憶領域は容量が小さく、よりCPUに近いところで使われており、CPUから遠くなるほど遅くて容量の大きい記憶領域(メモリやHDD)が使われています。計算に必要なデータは遠いところから順に運ばれてきて、計算が終わるとまた順に遠い記憶領域に戻って格納されます。つまり、一度計算に使ったデータが速いメモリに留まっている間にうまく使い回すことができれば、データの移動にかかる時間を短縮することができるのです。 物理法則に則って組み立てられたアルゴリズムは、多くの場合、研究者の頭の中で考えた通りの順番で計算を進めようとして書かれています。そこからさらに計算機のことを考えて、用いる変数(データ)の「依存性」や「賞味期限」を意識し、計算する順番を入れ替えたり、一時的に格納する中間変数を増やしたり減らしたりすることが、コンピュータの性能を活かす上で重要になってきます。 ここで先程の問題が再び浮上してきます。十分な「並列性」を保つために一度に準備しないといけないデータの数は年々増えていくのに、「データの局所化」というのは一度に準備するデータの容量が小さいほど効率的であり、つまり、二つの基本的な最適化手法はお互いに相反するものです。そのため、スパコンのハードウェアと、気象モデル等のソフトウェアがお互いにトレードオフを意識しながら、最適な解を探していく「コデザイン」という取り組みが重要なのです。 気候モデルはさまざまな分野の研究者が学際的に集まって作り上げた巨大で複雑なプログラムです。それゆえに、ソフトウェアの最適化はとても骨が折れる作業です。さらに、最適化を進めていく中で、私たちは気象・気候モデルのとても厄介な特徴を認識するようになりました。それは「プログラムの中に、計算時間と計算量の大部分を占めるような代表的区間がない」ということです。 他の科学分野では、基礎方程式の数も、プログラムで扱う変数の数も、気候モデルよりずっと少ないことのほうが多いのです。また、主要な基礎方程

元のページ  ../index.html#67

このブックを見る