研究課題/領域番号 |
20K11669
|
研究機関 | 東京大学 |
研究代表者 |
柏原 賢二 東京大学, 大学院総合文化研究科, 助教 (70282514)
|
研究期間 (年度) |
2020-04-01 – 2023-03-31
|
キーワード | 格子の最短ベクトル問題 / 基底簡約 / 大規模並列計算 / sieving |
研究実績の概要 |
この研究は、格子の最短ベクトル問題の大規模並列プログラムでの高速なアルゴリズムを開発するものである。基底の簡約問題について、アルゴリズムを考案し、その実装を行ない、スーパーコンピュータ上で実行した。 格子の最短ベクトル問題のアルゴリズムにおいて、sievingと呼ばれる手法と基底簡約を組み合わせたアルゴリズムが現在もっとも速く計算できる方法になっている。その実装がGithubにて公開されていて、それをベースに改良を試みた。公開されているプログラムは、多数のCPUでメモリを共有できるマシンを前提にしたプロセス並列に基づいて実装されている。有効なsievingには大量のメモリが必要なことが知られている。われわれは、並列ノード間でメモリが共有できないような環境で実行できるような、プロセス並列のアルゴリズムを考案した。プロセス間の情報共有には、ファイルに基底ファイルを保存することで行なった。 最短ベクトル問題へのもっとも一般的な枠組みは基底簡約を行うものである。格子の最短ベクトル問題の基底簡約におけるアプローチにおいては、同じ格子を生成する基底変換により、基底をどんどんと簡約することによって、ゴールに近づく。各プロセスは、それぞれ基底を持ち、それが探索における現在の位置を表す。単純に基底ファイルを共有してしまうと、すべてのプロセスが同じ計算をしてしまって意味がないので、優れている基底がうまく共有されるように工夫する仕組みを取り入れた。現在は実験をして効果を確認しているところである。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
3: やや遅れている
理由
もともとは、公開されているプログラムの変更ではなく、独自のプログラムを作成していた。開発の効率性の面から公開されているプログラムを元に開発することに、年度の途中で計画を変更したために遅れた面がある。しかも、公開されているプログラムは、私の利用している環境のいくつかでは、うまく並列計算が動かずに時間を費やした。しかし、公開されているプログラムを利用する方針に転換したことで、いままで気がつかなかったアルゴリズムの欠点に気がつくことができたので、結果的には、一般的な枠組みにそって開発する方向に転換したことはよかった。
|
今後の研究の推進方策 |
さらに効率的な並列基底簡約の実装について考える。効率的なsievingにはテラバイトの単位でメモリが大量に必要なことがわかっているが、通常はそれほどの大量のメモリを利用できるとは限らない。1つのCPUあたりに利用できるメモリが少なくても、なるべく効率的に計算できるような手法を開発していきたい。そして、並列計算機の上で実装して、効率性を検証していきたい。
|
次年度使用額が生じた理由 |
感染症の蔓延により思ったように成果発表ができなかったことと、計算機上で走らせるプログラムの作成に時間がかかった。また、借りたスーパーコンピュータが混んでいて、投入したジョブがすぐに実行されずに計算が思うように実行できなかった。また、プログラムの開発が進んでから、一気に計算した方がよいと判断した。
|