筑波大学計算科学研究センター
量子物性研究部門・原子核物理研究部門 様 Case

光・電子融合第一原理計算ソフトウェアSALMONの
利用促進に向けたGPUコード化

筑波大学計算科学研究センター量子物性研究部門・原子核物理研究部門 教授の矢花一浩様は、物質に光を照射して起こる光科学現象をご研究されています。その一環として、多様な光と物質の相互作用で起こるナノスケールの電子ダイナミクスを解明するオープンソース計算プログラムSALMON(Scalable Ab initio Light-Matter simulator for Optics ad Nanoscience)の開発を、国内外の研究者らと共に進めてこられました。

SALMONは光と物質の相互作用に対して、物質科学の第一原理計算法を用いて記述するこれまでにないソフトウェアです。計算パワーを要する分野であるため、スーパーコンピュータの並列計算を活用することがほとんどで、2021年には「富岳」を用いた1万超の原子を含むナノ物質の超高速光応答シミュレーションに世界で初めて成功し、光科学研究を推し進める成果として大きな注目が集まりました。このSALMONをさらに広く世界で利用していけるよう、汎用性と継続性を目指しGPUコード化を実施されました。

筑波大学計算科学研究センター
量子物性研究部門・原子核物理研究部門 教授
矢花 一浩 様

GPUコード化課題背景

SALMONの目的や用途、開発経緯などを教えてください。

SALMONは、光とナノメートルサイズの物質との相互作用を対象とするナノ光科学と呼ばれる分野で有用な第一原理計算を用いたシミュレーションプログラムです。もともと光科学分野の計算は、電磁場解析のシミュレーションが多かったのですが、最近は光科学とナノサイエンスが融合した分野が発展し、原子レベルから光と物質の相互作用を調べることが非常に重要になってきました。私が光により生じる物質中の電子の運動を調べる理論や計算方法を開発したのは1996年ですが、5年程前からポスト「京」プロジェクトの予算や、JST(科学技術振興機構)のCREST研究という予算を確保できたので、研究員を増員し国内外の研究者と協力して、光と電子が融合した現象を研究するためのオープンソースソフトウェアであるSALMONの開発を集中的に進めました。

現在、どのような企業、研究所、職制の方々がSALMONを利用されていますか。

SALMONは大学で取り組んでいるような先端的な光科学実験の解析に有用なソフトウェアなので、企業での使用例は少ないのですが、私たち開発者自身はもちろん、国内外の大学や研究所の研究者が利用しています。公開して5年程ですが、海外でもSALMONを使った論文が複数出版されるようになり、国際的に徐々に拡がってきています。またSALMONのコミュニティ用のメーリングリストもあり、使い方などについて情報交換しています。

計算リソースはどのようにされているのでしょうか?

私たちのグループでは使い易さから、現状ではほとんどがスパコンを使用しています。利用申請をするとスパコンを無償で利用できる仕組みとして、HPCIによるものや筑波大学独自のものがあり、また共同研究者の方々は、私たちのスパコン利用申請のグループに加わって利用しています。SALMONで用いている第一原理計算は計算が重いので、実際のところ論文発表を目的とした研究のための計算は、ほとんどの場合スパコンを使用しています。富岳については、本格稼働が2021年3月からだったのですが、それ以前から富岳でどの程度パフォーマンスを出せるか等、大規模計算のチューニングを進め準備をしていました。去年から富岳の一般利用が開始されると、私たちの利用申請が一番リソースを多く獲得できましので、フル活用している状況です。

今回のマルチGPUコード化の目的を教えてください。

最大の目的はGPU計算機で高いパフォーマンスを出すためのコードのチューニングです。ただ、今回高度化を担当された廣川さんが私たちの計算科学研究センター出身で、コードの中身を十分理解しているという事情もありました。実は以前よりGPU化は進めていたのですが、それを廣川さんの目で見てもらって、改善する余地があるかを確認したかったのです。実際、それまでに比べて遥かに高速化していただきました。今回のGPU化にはOpenACCを使っていますが、他の多くのコードではCUDAというGPU独自の言語が使われています。しかしSALMONのコードは日々様々な機能が増えて長くなっているので、GPU独自のCUDAを使うと私たち開発者がコードを書く負担が増大します。それに比べOpenACCはコードを書く負荷が軽く、開発とGPU化を整合させることができ、その上スピードを十分出せます。つまり、OpenACCにより今後の開発やメンテナンスが非常に行い易くなったのです。

今後GPU搭載のスパコンはさらに増えると見込んでいますが、SALMONはスパコンを使わないと成果が出ないので、新しい仕様のスパコンへの対応が必須です。ですから、この1,2年でメンテナンスのしやすい形でGPUに対応できて丁度良かったのです。現状ではGPUを持たない富岳が一番使いやすいスパコンですが、富岳のような高価で電力負荷の高いマシンはこれから先どのくらい利用できるのかわからず、今が転換期です。ですから、今から先を見据えて準備を進めるのは大事だと思っています。

Electron dynamics in solids
Plasmonic meta-surface
Large-scale calculation

今回の業務成果(パフォーマンス)について教えてください。

わたしたちはウィークスケーリングといって、並列にしたら大きい複雑な系が計算できる、例えばGPUを2枚使ったら2倍の大きさの系を計算できるかという見方をします。そういう意味では、GPUを10枚使えば約10倍の計算ができることは確認できましたので、そこに関しては大丈夫という印象です。ただGPU間の通信が重たくなるタイプの計算は不利なので、そのような計算にはCPUマシンを使用する、通信が軽いタイプの計算はGPUを使用するというように問題によって使い分けをすれば良いと思います。

担当者(廣川)CPUマルチコアにはそろそろ性能的に限界があって、これからはGPUという人もいるでしょうし、使いやすいから今までのマルチコアを選択する方もいらっしゃいます。パフォーマンスを取るかプロダクティビティを取るかですが、どちらが良いかはその人の使い方や考え方によると思います。個人的にはOpenACCのGPUになっていくのではないかと思いますが、最終的にはアプリケーションを開発する側の人の判断に委ねる部分でしょうね。

引用:Cygnus https://www.ccs.tsukuba.ac.jp/kyodoriyou/tebiki/
引用:OFP https://www.ccs.tsukuba.ac.jp/ofp-171006/ofp/

SALMON機能開発を継続する上で今後のGPUコンピューティング(ハードウェア、ソフトウェア技術)の期待点及び改善点はなんでしょうか?

私たちのグループでは計算機にそれほど精通していない開発者が多いので、GPU化は計算機のプロのサポートがないととてもできない、というのが本音です。計算コードが長く複雑なため、コンパイラにバグがあったりシステムにトラブルがあったりすると、問題がいろいろなところで起きてしまいます。ハードウェアは急速に発展していきますし、アプリケーション側のコードの複雑化も進んでいますので、どちらにおいても安定的な環境を常に用意できるようにすることが改善点だと感じています。

担当者(廣川)バグやシステムトラブルは普通のマルチコアのシステムでもありますが、GPUではそれが少し多くなる傾向にあります。コンパイラもいろいろあるので、どれかがバグを抱えていると全部に影響してアプリケーションが動かなくなる問題も起こり得ます。また、どれが実際に問題を起こしているのかという特定が難しくなることもあって、その辺も不安定さを誘発する要素ではないか思います。ただGPUを使うとしたら避けられない点でもあります。使わないといけない道具が増えていくので、それらを上手くコントロールできれば良いですが、道具が増えれば増えるだけ複雑さが増していくという状況ですね。

今後のSALMON開発の方向性をお聞かせいただけないでしょうか?

SALMONは物質科学の第一原理計算と電磁場解析の計算を結びつけた特色あるソフトウェアで、現在はその点に関して国際的に競争相手になるソフトウェアはありません。これからも発展させて、開発から20年程経ったときに、ナノ光科学の分野ならSALMONだと国際的に言われるようにするのが目標であり夢でもあります。そのためには、なるべく幅広い研究で役立つように対象を拡げるのが重要ですし、どんどん若手に入ってきていただきSALMONを使って博士の学位を取る体制を作れるといいと思います。

プロメテック・ソフトウェアへの期待などご意見をいただけますか。

SALMONのGPU化に関しては、私たちでメンテナンスはできても、パフォーマンスの改善や新機能に対して高効率なGPU化をするのは専門家の知識がないとできません。GPUに関して広範な知識を持っているプメテック・ソフトウェアさんには、引き続き相談にのっていただければありがたいと思っています。

※本記事の内容は、取材時2022年3月の情報です。製品の機能および構成などは取材時より変更されている可能性がありますので、予めご了承下さい。最新の情報については、プロメテック・ソフトウェアまでお問い合わせください。

お客様紹介

筑波大学計算科学研究センター

筑波大学計算科学研究センターは、素粒子宇宙・物質生命・地球生物環境など多岐にわたる領域で、超高速シミュレーションおよび大規模データ解析を中心とする研究、ならびに超高速計算機システムおよび超高速ネットワーク技術の開発と情報技術の革新的な応用方法の研究を推進されています。

ホームページ: https://www.ccs.tsukuba.ac.jp/

導入事例一覧に戻る >

お問い合わせ・
お申し込み・
資料請求