完全な脳シミュレーションへの道

近年、研究開発が進んでいるエクサスケール・スーパーコンピューター!

実現した場合、完全な脳シミュレーションが可能になるかと思いきや、そのためにはソフトウェアのブレークスルーも必要なようです!

最近、エクサスケール・スーパーコンピューター用の脳シミュレーションのアルゴリズムが発表されたようです。これまでネックだったメモリ不足の問題も解決されたようです。

 

TOP500 の NEWS 欄には、毎週スーパーコンピューターに関する最新情報が報告されています。残念ながら、日本のメディアではほとんど報道されません。
本ウェブサイトでは、それらのニュースを定期的に日本語で紹介しています。

今回紹介する記事は、
“Software Breakthrough Paves the Way for Full Brain Simulations on Exascale Supercomputers”
March 7, 2018

概要

研究者の国際チームは、将来のエクサスケール・システムで人間の脳全体をシミュレートするための大きな一歩をとなるアルゴリズムを開発しました。

この新しいアルゴリズムにより、ニューロンやシナプスの表現は以前よりもはるかに少ない量のメモリで可能になり、シミュレーションに必要な計算時間も短縮されます。 このソフトウェアは、ニューラルネットワークをモデル化するために神経科学コミュニティに広く採用されているオープンソースコードであり、欧州のヒューマン・ブレーン・プロジェクトのコア技術であるNESTに組み込まれています。 この研究は、”Extremely Scalable Spiking Neuronal Network Simulation Code: From Laptops to Exascale Computers” というタイトルで Frontiers in Neuroinformatics に掲載されています。

この研究には、ドイツのユーリッヒ研究センター、アーヘン大学、理研、スウェーデン王立工科大学、ノルウェー生命科学大学の研究者が関わっています。 ユーリッヒ大学神経科学医学研究所のディレクターであり NEST 開発者の一人である Markus Diesmann 氏は、この研究の主要著者の一人です。 彼は NEST を使って大規模なニューラルネットワークのシミュレーションを実行するために、世界最大級のスーパーコンピュータの 2 つ、すなわち理研の K コンピューターとユーリッヒの JUQUEEN を NEST を用いた大規模シミュレーションに使用しています。 「2014年以来、うちらのソフトウェアは人間の脳内のニューロンの約 1% をすべての結合を含む形でシミュレートできまんねん」とDiesmann 氏は述べています。

このシミュレーションの限界は、ほとんどが Flops ではなくメモリ容量と関係しています。 新しいアルゴリズムの発表によれば、この問題は関与する多数の細胞構造およびニューロン結合の規模によって引き起こされるとされています。 それぞれ数 1000 個のシナプス結合を有する約 1,000 億個のニューロンからなる人間の脳全体をモデル化するには、現在最も強力なシステムで利用可能なものよりも多くのメモリが必要であす。また残念なことに、エクサスケール・コンピューターでさえ、同様の問題があるとこれまで考えられてきました。(そのため、今回のようなアルゴリズムの改良が必要でした。)

メモリの制限は、ノードレベルで発生します。 現在NESTで設定されている方法は、すべてのニューロンと結合を表すデータが各ノードに格納されていることです。 この研究論文は、この問題を次のように概説しています。人間の皮質は約 1010 個の細胞で構成されており、それぞれ約 104 個の結合を受け、推定 1014 個のシナプスにつながる。 それぞれの結合を2つの倍精度で表現するには、約 1.6 PBのメインメモリが必要です。

最終的には、シミュレーションに必要なメモリがニューラルネットワークのサイズに比例して増加する一方で、ノードあたりのメモリ容量は徐々に増加するという問題があります。 さらに重要なことは、エクサスケール・スーパーコンピュータでは、ノードあたりのプロセッサコア数が大幅に増加することになりますが、コアあたりのメモリは本質的に変わりません。

このことより、NEST 開発者は新しいアプローチを取ることが可能になりました。 基本的にニューラルネットワークのサイズに合わせて各ノードのメモリを増やす必要はなくなりました。 代わりに、ニューラルネットワークはどのニューロンが互いに相互作用する可能性が最も高いかを決定するために前処理され、その情報はそれに応じてデータ構造を設定するために使用されます。 その結果、特定のノードに必要なメモリ量を少なくすることができました。

さらに、このアルゴリズムはシミュレーションの並列性を改善し、それを劇的に高速化しました。 あるケースでは、JUQUEEN を使用して 5 億 2 千万ニューロンと 5,800 億シナプスの 1 秒の生物学的時間をシミュレートするための計算時間は、28.5 分から 5.2 分に短縮されました。 新しいアルゴリズムが同様の設計のエクサスケール・スーパーコンピュータで直線的に拡大することができれば、その時間は15秒に短縮できます。

「エクサスケール・ハードウェアと適切なソフトウェアを組み合わせることで、可塑性や学習のような脳機能の基本的な側面を、数分の生物学的時間にわたって解明することができまんねん」とDiesmann氏は述べています。

研究者は、新しいアルゴリズムをNESTの将来のバージョンで自由に利用できるようにするつもりです。

感想

高性能のコンピューターを開発したら、それに合うようにデザインしたソフトウェアも開発しなければならないということは当たり前のことですが、一般にはあまり理解されていない話だと思います。

過剰量のメモリを要求するプログラムと聞くと、コードに問題があるのでは?と思ってしまいますが、分野によっては仕方ないようですね。

DFT 計算では数 GB 程度しかメモリ使わないですが、ゲノムアッセンブリーとか数 TB のメモリを使っていますし。。。”それぞれ数 1000 個のシナプス結合を有する約 1,000 億個のニューロン” って聞いただけで凄そうな感じですよね。

実際にエクサスケール・コンピューターが開発されて、今回のアルゴリズムによって何かしらの結果が出たら、ゴードン・ベル賞などに応募するのでしょうか?今後に期待ですね!

 

 

管理人は、コンピューターやアルゴリズムについて何も知りません。もし記事中に間違い等ありましたら、コメント欄、twitter または メールにてご指摘してくだされば幸いです。

関連する記事

One comment

匿名 へ返信する コメントをキャンセル