2018 Fiscal Year Research-status Report
高速な任意精度数値計算のための実数計算ライブラリの実現方式に関する研究
Project/Area Number |
17K00106
|
Research Institution | Hiroshima City University |
Principal Investigator |
川端 英之 広島市立大学, 情報科学研究科, 講師 (00264937)
|
Project Period (FY) |
2017-04-01 – 2020-03-31
|
Keywords | 実数計算ライブラリ / Haskell / 遅延評価 / 無限リスト / 多倍長浮動小数点演算ライブラリMPFR / 区間演算ライブラリMPFI / 計算精度保証 / 並列処理 |
Outline of Annual Research Achievements |
本研究は,任意精度数値計算のための実数計算ライブラリの高速な実現方式の追求を目的とし,開発中のIFNライブラリの高速化を目指している.H30年度には,IFNにおける精度保証付き算術演算の詳細設計の改善検討,実数表現に対するFBCSの適用可能性の検討,および,並列化を中心とした高速化に対する検討などを行った. IFNにおける精度保証付き算術演算の実現方式の検討は本研究における重要課題である.これまでに得た,多倍長区間演算ライブラリMPFIの使用の妥当性についての知見を踏まえ,C言語版およびHaskell版の両者の実装について,独自の数値表現による算術演算(Q演算と呼んでいる)とMPFIによる方法とを比較した.種々の実験の結果,期待に反し,前者が後者を凌ぐ可能性は低いとの結論を得た.Q演算の部分ハードウェア化による高速化可能性を踏まえてもMPFIの優位性は覆されず,少なくとも現状ではIFNの高速化のためにはMPFIを有効活用することが得策であると考えられる. IFNにおける(無限リストによる)実数表現をFBCS(要素の位置と誤差の絶対値とを対応させる)方式にすることによるトップダウンな精度保証再計算制御は,高速化に繋げられる可能性が低いとの結論を得た. Haskell版IFNの高速化を目指し,Haskell処理系の一つであるGHCの並列処理機能を活用した並列化による高速化の効果の予備評価を実施した.部分式評価における比較的単純な細粒度タスク並列処理の結果,forkIOでは並列化オーバヘッドが大き過ぎ,rpar/rseqでは効果が期待できることがわかった.ただし,Haskellの管理外からのメモリアクセスの競合を排除するための工夫が必要であることが分かった.
|
Current Status of Research Progress |
Current Status of Research Progress
3: Progress in research has been slightly delayed.
Reason
H30年度には,H29年度に得られた結果を踏まえてより明確な評価結果をまとめるべく取り組んだが,知見の蓄積はあるものの,開発中のライブラリの性能向上に繋がる直接的な成果を論文発表するには至らなかった.したがって,進捗状況は「やや遅れている」と判断される. IFNライブラリ内での精度保証付き算術演算および数値表現については,当初採用していた独自方式およびそのチューニングによる高速化を目指していたが,種々の最適化や設計変更による性能改善が奏功せず,MPFIの利用に対する優位性を確認できなかった. 「再計算制御の抜本的改善」の一つの可能性として,FBCSの高速化の成果を踏まえ,IFNにおける実数表現をFBCSのようにしてトップダウン精度制御にする方法を模索したが,IFNの高速化に繋げられる目処が立たなかった. 当初に挙げていた検討項目のうち,着手することができなかったものがいくつかあり,時間配分の見積りにも改善が必要であると考えられる.
|
Strategy for Future Research Activity |
これまでに得られた知見を踏まえ,今後は次の項目について研究を進める. まず,IFNライブラリにおける要素演算としてMPFIを効率的に利用する方法を追及する.チューニングの余地は,MPFI(およびMPFR)のデータ構造を意識したメモリ管理方式にあると考えられる.C言語版およびHaskell版の双方で取り組む.無限リストの表現方法の改善により,データ参照の効率化や所要メモリ領域削減は研究開始当初よりも進められているので,要素演算の設計については一区切りできる結果が得られるものと期待している. IFNライブラリの基本機能の高速化への方策としては,マルチコアを活用する並列化の効果の追及が残されている.H30年度の試行では,数式に対する単純なタスク並列処理の粒度管理(並列処理によるオーバヘッドの削減)の課題が明確に見られたので,改善を試みる.Haskell版ではGHCの並列処理ランタイムとMPFI(およびMPFR)によるメモリ読み書きとの効率的な整合性担保に課題が見られているが,GHCで提供されるソフトウェアトランザクショナルメモリの活用などによる解決を検討する.並列処理に関しては,精度改善のための再計算の並列処理による投機的実行も試みる. 当初に挙げていた検討項目のうち,静的解析との連携や数値表現類別による効率化等についても検討する.
|
Causes of Carryover |
次年度使用額が生じた理由は,主として,人件費および旅費等の使用計画に対する変更である. 次年度使用額は支出予定額に対して数%の違いであるので,次年度の支出計画を大幅に変更することなく,研究遂行のために有効活用する.
|