Skip to main content
QUICK REVIEW

[論文レビュー] SPIN: A Fast and Scalable Matrix Inversion Method in Apache Spark

Chandan Misra, Sourangshu Bhattacharya|arXiv (Cornell University)|Jan 15, 2018
Parallel Computing and Optimization Techniques被引用数 4
ひとこと要約

本稿では、ストラッセンのアルゴリズムに基づき、再帰レベルごとの行列乗算回数をLUベースの手法の12回から6回に削減することで、高速かつスケーラブルなApache Spark上での行列逆行列計算手法SPINを提案する。実験結果から、すべての行列サイズおよびブロックサイズにおいて、最先端のLU分解手法を上回ることが示され、理論的・実験的整合性が高く、ほぼ理想に近いスケーラビリティを示している。

ABSTRACT

The growth of big data in domains such as Earth Sciences, Social Networks, Physical Sciences, etc. has lead to an immense need for efficient and scalable linear algebra operations, e.g. Matrix inversion. Existing methods for efficient and distributed matrix inversion using big data platforms rely on LU decomposition based block-recursive algorithms. However, these algorithms are complex and require a lot of side calculations, e.g. matrix multiplication, at various levels of recursion. In this paper, we propose a different scheme based on Strassen's matrix inversion algorithm (mentioned in Strassen's original paper in 1969), which uses far fewer operations at each level of recursion. We implement the proposed algorithm, and through extensive experimentation, show that it is more efficient than the state of the art methods. Furthermore, we provide a detailed theoretical analysis of the proposed algorithm, and derive theoretical running times which match closely with the empirically observed wall clock running times, thus explaining the U-shaped behaviour w.r.t. block-sizes.

研究の動機と目的

  • 地球科学やソーシャルネットワークなど、さまざまな分野におけるビッグデータワークロードにおける効率的でスケーラブルな行列逆行列計算の増大するニーズに対応すること。
  • Sparkにおける既存のLU分解ベースの分散行列逆行列計算手法の高い計算コストと複雑さを克服すること。
  • ストラッセンの元アルゴリズムに基づく新規な行列逆行列アプローチを実装・評価すること。
  • 行列サイズとブロックサイズの関数として、実測ウォールクロック時間を近似する理論的コストモデルを提示し、ブロックサイズに関するU字型の性能曲線を説明すること。
  • 最先端のLUベースの手法と比較して、提案手法の優れた性能とスケーラビリティを示すこと。

提案手法

  • 本手法は、再帰レベルごとに12回ではなく6回の行列乗算で済むストラッセンの行列逆行列アルゴリズムを採用しており、これはLU分解とは対照的である。
  • アルゴリズムは、耐障害性がありメモリ上での分散処理が可能な、レジliントな分散データセット(RDD)を用いたApache Sparkで実装されている。
  • 再帰の葉ノードレベルで追加の行列乗算を回避することで、計算オーバーヘッドを低減している。
  • ストラッセンのアルゴリズムの再帰関係に基づき、理論的コストモデルを導出。ウォールクロック時間を行列サイズとブロックサイズの関数として推定している。
  • 再帰を管理するためのSparkタスクパイプラインを用いて実装されており、行列パーティショニング、乗算、結合の各ステップを最適化している。
  • 実行時間の各成分(例:葉ノードの逆行列計算、行列乗算、減算)の分析を通じて、パフォーマンスボトルネックを特定している。

実験結果

リサーチクエスチョン

  • RQ1分散処理環境であるSparkに適応されたストラッセンの行列逆行列アルゴリズムは、ウォールクロック時間とスケーラビリティの面で、既存のLU分解ベースの手法を上回るか?
  • RQ2本手法のウォールクロック時間がブロックサイズに対してU字型の曲線を示す理由は何か?この挙動は理論的に説明可能か?
  • RQ3SPINの理論的コストモデルは、さまざまな行列サイズおよびブロックサイズにおける実測実行時間とどの程度一致するか?
  • RQ4SPINは、実行エクsekューター数と行列サイズを増加させた場合、理想のスケーリングと既存の手法に比べてどのようにスケーリングするか?
  • RQ5ストラッセン法における行列乗算回数の削減は、分散行列逆行列処理において測定可能なパフォーマンス向上をもたらすか?

主な発見

  • SPINは、4096×4096、8192×8192、16384×16384のすべてのテスト行列サイズおよびブロックサイズにおいて、LU分解ベースの手法を上回っており、行列サイズが大きくなるにつれて性能差が広がっている。
  • SPINの理論的ウォールクロック時間モデルは、実測値と非常に良く一致しており、コスト解析の正確性が裏付けられ、ブロックサイズに関するU字型の性能曲線の説明が可能である。
  • 4096×4096行列の場合、SPINはLUベースのベースラインと比較して実行時間を最大47%短縮した。ブロックサイズが小さい(例:b=2)と葉ノードの逆行列計算コストが支配的となり、ブロックサイズが大きい(例:b=16)と行列乗算コストが支配的になる。
  • SPINはほぼ理想のスケーラビリティを示し、実行エクステンダー数を増加させた場合、すべての行列サイズにおいて理想のスケーリングからわずかに逸脱するにとどまった。
  • LU法の再帰レベルごとの行列乗算回数12回を、SPINでは6回に削減しており、これが計算オーバーヘッドの低減と高速実行に直接寄与している。
  • 分析により、実行時間のU字型曲線は、ブロックサイズが大きくなると減少する葉ノードの逆行列計算コストと、再帰が深くなるにつれて増加する行列乗算コストのトレードオフに起因することが判明した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。