理研、100万×100万の巨大行列の固有値計算を1時間で達成 131
ストーリー by headless
達成 部門より
達成 部門より
理化学研究所がスーパーコンピューター「京」を使い、100万×100万の密行列の固有値を1時間で計算することに成功したそうだ(
報道発表資料、
60秒でわかるプレスリリース)。
研究チームでは新しい計算アルゴリズムを考案し、行列の固有値を高速で計算できるソフトウェア「EigenExa(アイゲンエクサ)」を開発。「京」の全663,552プロセッサとEigenExaを用いて100万×100万の密行列の固有値を求めたところ、1週間ほどかかると考えられていた計算が1時間で可能なことが確認できたという。
cvmonto 曰く、
研究チームでは新しい計算アルゴリズムを考案し、行列の固有値を高速で計算できるソフトウェア「EigenExa(アイゲンエクサ)」を開発。「京」の全663,552プロセッサとEigenExaを用いて100万×100万の密行列の固有値を求めたところ、1週間ほどかかると考えられていた計算が1時間で可能なことが確認できたという。
cvmonto 曰く、
処理の実行速度は「京」の理論ピーク性能の16%に当たる1.7ペタFLOPSという高い数値を記録したとのこと。100万×100万の行列の固有値問題が計算されたという報告はこれまでになく、過去の世界最大規模の固有値計算としては地球シミュレータの4,992プロセッサを用いて40万×40万行列を3時間半で行った記録があるとのことである。
また、774THz 曰く、
プレスリリースでは、「半導体や新材料の開発などのシミュレーションがより大規模化・高速計算が可能に」と述べていますが、それだけではなくあらゆる工学的アプリケーションの性能向上に大きなインパクトがあるはずです(最終的には大規模な方程式の高速解法につながる)。直接関連する分野(線形方程式の反復解法とか)には地味ながらも他に様々な技術的進歩があるようで、ぜひ専門家の方に分かりやすい現状の解説をお願いしたいところです。
大規模計算 (スコア:3, 興味深い)
この種の大規模計算を適切に行うには長時間多くのノードが誤りなく計算する必要があり、そういう所はメインフレームを古くから作ってきた日本のメーカーが強く、GPU超並列やらIBMのスパコン等を買うのではなくてわざわざ作る大きな意義の一つで、様々な大規模な計算を変な工夫なくできるのが京の良い所という話だったと思いますが、
100万×100万の行列ってどういう所に使うんでしょうか。
前聞いた時には自動車の設計とかで何万の方程式を解く必要があるが殆どの要素が0だとかで、100万×100万の密な行列の固有値計算ってどういうものが有るんでしょう。
詳しい人教えてください。
ついでに高校で固有値計算を習ったとかリンク先にありましたが、私は大学で聞いて、授業中はちんぷんかんぷんで、後で本を読めばこんな簡単な話ならもっと簡単に言えよと思った記憶が有ります。
これもゆとり教育の成果でしょうか。
Re:大規模計算 (スコア:3, 興味深い)
疎行列であっても、固有値・固有ベクトルが全て必要であれば、密行列として計算するのが最速です。
(自動車の設計などの際にどうかまではわかりませんが)
Re:大規模計算 (スコア:2)
自動車の設計などの構造計算では力の伝達が接触した部分にしか伝わらないので大部分の構造間は無関係になって行列要素の大部分が0になります。
大部分が0でない密行列が出てくるのは力が遠隔作用で至る所からの影響がある場合です。
たとえば重力場とか電磁場が遠隔作用ですから、重力多体計算とかプラズマ計算ですね。
固有値は微分方程式を具体的に解かずに定性的性質を調べるときなどに使います。
the.ACount
Re:大規模計算 (スコア:1)
理論は親コメントの通りと思いますが、いくぶん現場寄りの立場から補足しときます。自動車の設計であれば、車内騒音解析はBEM(境界要素法)を使用することが多く、密行列ですね。車体振動はFEMで疎行列、車内空間はBEMでという感じで連成させます。
あと、自動車の設計で使用しているかは知りませんが、構造品単体の設計であれば、たとえばき裂進展や切り欠き形状の応力の計算にBEMを使用したりします。FEMだと領域内も離散化しているので、特異性の扱いが面倒(メッシュ分割とか)なわけですね。
Re:大規模計算 (スコア:1)
なるほど、き裂や騒音もあったか。
the.ACount
Re:大規模計算 (スコア:2, 参考になる)
ある意味、ゆとりの犠牲者だと思う。
高校:直感の延長線上で数理を扱う。
大学:数理操作から概念を教える。
という決定的違いがあるのに、高校までの中身を削って
さらに上記のような理解の仕方の決定的違いに気づかせる
チャンスを与えられて無いからね。
「もっと簡単に言ってくれよ」はごもっともなんだけど
そんな教材作ってないし、そんな幼稚な説明やってたら
大学教育で教えたいことの半分も教える時間がない。というのも
ごもっともなんだよね。
Re:大規模計算 (スコア:1)
自動車の設計で解く問題は、力や熱の伝達とか隣り合うノード間しか相互作用を持たないので疎行列になるけど、どっちかというとこういう問題の方が例外です。例えば重力とか電磁力とかが関係する問題は全ノード間で相互作用を持つので密行列になります。実際には値が小さい要素を近似して疎行列にして解くことも多いけど。
大学でやる固有値計算はヒルベルト空間の理解をある程度求めるだろうから難しかったのでは。
新しい計算アルゴリズム (スコア:2)
JTSS
純粋数学や超弦理論関係の需要 (スコア:2, 興味深い)
群論に出てくるモンスター群の元は196,883次正方行列として表現できる。
さっぱり分からんけど純粋数学でもこういう具体的で巨大な行列を扱うらしい。
196,884という数が出てくる関数との謎の関係がムーンシャイン現象と名付けられたのを
超弦理論方面の数学者が解明してフィールズ賞を受賞したとか何とか。
シミュレーションだけでなく純粋数学や超弦理論方面の需要もあるのかな。
この部分がキモか (スコア:2, 参考になる)
リンク先より引用
>固有値計算では専門的な数学の知識が必要になるため、専用の数学ソフトウエアを利用することが一般的です。しかし、現在のスパコンで利用されている標準的な数学ソフトウエアは1990年代後半のスパコンをベースに設計・開発されているため、「京」のような超並列コンピュータを想定して開発されていません。また、こうした標準数学ソフトは、新しいプロセッサ技術の登場や、さまざまなプログラミング言語が利用されている現在では、最先端のソフトウエアとは言えなくなりつつあります。
100万x100万(オフトピ (スコア:1)
100万x100万=200万だ!
10倍だぞ10倍!
Re: (スコア:0)
100万x100万=200万だ!
10倍だぞ10倍!
それじゃ元ネタのインパクトがカケラも伝わらんわ
そこは、
俺達は100万+100万=200万じゃねえ、100万+100万=1e+12だ!
10倍だぞ10倍!!
だろ?
# 週刊ゴング、季刊とか年刊でいいから復刊してくれないかな
核反応シミュレーション (スコア:0)
もっと大規模なやつを日常的にやってたりして。
Re: (スコア:0)
疎行列なら1億×1億の計算をしたことある
Re:核反応シミュレーション (スコア:3, おもしろおかしい)
単位行列なら、勝てる
どちらかといえば新しいアルゴリズムの方が重要でないかい? (スコア:0)
京用にオプティマイズかけているのは当然だと思うが。
Re: (スコア:0)
京が出てきたのは、100万×100万で1時間という具体的な数値を挙げるために具体的なコンピューター名が必要だったからでしょ。
Re:どちらかといえば新しいアルゴリズムの方が重要でないかい? (スコア:1)
100万×100万=1兆だからまだ1万倍足りない
みたいな?
Re: (スコア:0)
もっと単純に理研だからだろ。具体的なコンピュータ名ならなんでもいいなら京である必然性がない。
むしろ「従来の100ペタFLOPS級のスパコン+従来のアルゴリズム」と「EigenExa+京」を比較するとか、理研はデータを比較するときの基本の基本のイロハの初歩(比較したい条件以外はできるだけ揃える)もわかってないの? 馬鹿なの? とか思われかねないわけだが。
これって、一発解の時間?平均値? (スコア:0)
一発ものならベンチとか趣味レーションかな、
実際は数万回やってどうかとかですよね。
Re:これって、一発解の時間?平均値? (スコア:2)
マシンを占有していて、なおかつ十分長い(1時間)計算という条件で、「約1時間」という表現からずれるぐらいの誤差が出るものなんでしょうか。
Re: (スコア:0)
「京」で計算したってところから察しろ
Re:これって、一発解の時間?平均値? (スコア:1)
時や町や静ならもっと速く計算できた。
#アヤツは我等四天王の中では最弱。
Re:これって、一発解の時間?平均値? (スコア:2)
おまえら4姉妹、演算は全員Aで同じやん・・・
関連ストーリー (スコア:0)
http://science.srad.jp/story/13/12/05/0410252/ [srad.jp]
アイゲンエクサたんの擬人化マダー?
Re:関連ストーリー (スコア:1)
アルゴリズムの視覚化は躍らせるのが吉ですよ?理解しようとする場合も紹介する場合も。というわけでMMDでも人間のダンサーでもいいです。
http://d.hatena.ne.jp/yasuda0404/20110417/1302999124 [hatena.ne.jp]
固有値計算 (スコア:0)
むかーし、ちょっとだけ囓ったけど、その時読んだ本は、
大学図書館の隅っこに保存されてたかなり古い本だった。
重要と言えば重要なんだろうけど、いまじゃあまりホットな話題じゃないんじゃないか?
#教えて!エロい人!
Re: (スコア:0)
まぁ確かにアルゴリズム自体をちまちまやる時代ではなくなっていたのは事実かもしれないが
プロセッサやらハードやらもいろいろ変化の時期も来ているので
それに合わせて作り直すというのは多少は必要なのかも
# プロセッサの数に任せた力技かと思ったら意外とそうでもなかったのね
Re: (スコア:0)
代数の基礎の基礎ですよ
Re:固有値計算 (スコア:2, 興味深い)
行列は高校数学の課程から消滅しました。
今は非可換代数の基礎は小学校から叩き込まれるらしいので役割を終えたということでしょう。
たぶんこの手法を適用できるデータには何らかの制限が (スコア:0)
あるはずなんだけど、リンク先を眺めただけでは私にはよくわかりませんでした。
凄い例(許容範囲の制限で実用的な結果が得られる)というのはたしかにあるので期待したいですね。
Re: (スコア:0)
また、固有値計算部分は三重対角行列を計算する場合に比べて数倍増加するが、前処理での処理時間削減の効果が大きいため、新しい1段階スキーム全体はより少ない計算時間となる。
って説明からすると、ある規模から逆転するのに気が付いた人が今まで居なかったってなパターンかも?
Re: (スコア:0)
居てもそこに手が届くだけ速いコンピューターがなかったとか。
よくわからんな。 (スコア:0)
EigenExaなら1時間は良いとして、だったら何だったら1週間と考えられていたんだろう。
もしかして「EigenExaなら1週間でできると思ってたら何とびっくり1時間で終わっちゃいましたぁ!」なんて間抜けなことじゃないよね?
つーか見積もりの1%以下で終わったら、結果を真っ先に疑うな、うん。
なんでリンク先読まないの? (スコア:0)
「国内に存在する100テラFLOPS級のスパコンで」って書いてるだろ。
Re: (スコア:0)
「100テラFLOPS級のスパコンで1週間かかっていた計算が10ペタFLOPS級のスパコンでは100倍速くなった!」
新しいアルゴリズム意味なくね?
100テラFLOPS級のスパコンだって理論ピーク性能を100%発揮できるわけがないし。
理論ピーク性能の16%って高いのか (スコア:0)
来年度予算16%でいいよねって言われないのだろうか。
#素人感覚
Re:理論ピーク性能の16%って高いのか (スコア:1)
そういうあなたは自分の脳のピーク性能のほとんどを使えるんでしょうね
Re:典型的な詐欺(それは勘違い) (スコア:2, 参考になる)
>メガソーラーを作ったら理論値の16%になったら詐欺ですよ。
実体はそうなってる。
というのも、太陽光発電のパネル出力(パネルやソーラー発電所のカタログスペック)は、
太陽光(AM1.5)が直上から入射して、周辺温度が25℃の時の出力電力
で書かれている。これに基づき、例えば中国電力の福山太陽光発電所は出力3000kWとなる。
この値は太陽光から電力へのパネルの変換効率などを全部含んだ理論値だ。
#よくプレスリリースなんかで言う「○○MW級の発電施設」というのはこの数字。
ところが現実には、日照時間は日中に限られるし、曇天時には効率ががくっと下がるし、周辺温度は変動するし、季節によって入射角も変わる。このため実稼働率はがくんと下がる。一般には10-20%の間ぐらい。
だから24時間365日で累積した実効率は非常に低い。例えば前述の福山太陽光発電所の場合、年間での実発電量は350-400万kWhとなっている。これを時間平均すれば400-450 kWとなり、実効率は理論ピーク値の約13-15 %となる。
#偶然にも今回の計算効率と似たような数字になったもんだ。
もし「夜間や天気によって日が当たらないのは当たり前だから、理論値は年間の平均日照量で算出すべきだ」と思うのだとしたら、計算機側だって「大規模計算で効率が上がらないのは当たり前だから、大規模計算での平均稼働率を元に理論値を算出すべきだ」ってなるんでまあ、同じ事だ。
京を使って (スコア:0)
大半の研究者が求めてるのってクソ高いスパコン上で動く早いソフトじゃなくて、とにかく安いスパコンだと思うんだが
Re: (スコア:0)
安いスパコンなら自分で買えますので
Re:京を使って (スコア:2)
GeForce GTX 650 Boost(15k円くらい)で1505GFLOPSです。
鼻毛鯖なんかにこれ積めばスパコンの完成ですね。4万円しない。
#あれ、スパコンの定義ってfloat?double? doubleならTitanが要るな。
Re:京を使って (スコア:1)
日本のお役所の見解によると、「スパコン」の定義は「1.5TFLOPS以上の理論的最高性能を有するコンピューター」との事。
だから、値段は関係ない。
「パソコン」を大量に並べて「スパコン」を作ったと称している大学や企業も有ります。
Re:京を使って (スコア:1)
価格で定義されたらそりゃ安くならんね。安くなったら定義から外れるんだもの。
まぁ、競争のために手に入らないレベルのものを求めるというのもまた真理だけど、
それだと永遠に到達不能な無茶ぶりしてみただけになるね。
Re:京を使って (スコア:2)
Re:京を使って (スコア:2)
Re: (スコア:0)
計算時間が1%になるならもとは取れるんじゃねーの。
あとEigenExaはオープンソースで公開されているから安いスパコンに移植して使えばいいんじゃねーの(1ペタFLOPS級のスパコンじゃないと効果が出ない手法なのかもしれんが)。
Re:京を使って (スコア:1)
EigenExaは、すでにIntelマシン上でも動きますよ。
下のように各種並列固有値計算ライブラリへのC++のラッパーを書いているプロジェクトもあります。
https://github.com/t-sakashita/rokko [github.com]
Re:京を使って (スコア:1)
あんな物, 1週間(もしかしたら3日ぐらいで可能かも)もあれば読めるようになる.
問題はアルゴリズムの理解とアーキテクチャに依存したチューニング技法, そして計算誤差の取り扱いなので, 付け焼き刃ではどうにもならないのが.
# プログラムをいじくって高速化しても, 結果が果たして有効なのかは…?
Re:可能な事 (スコア:2)
100万次元でできる量子コンピュータのシミュレートは、20qubit程度に相当します。
なので、実用的な暗号解読には足りません。