多次元非線形ナップザック問題に対するGPGPUの適用関西大学総合情報学部総合情報学科4年尾上 洋介1
1. 本研究の目的2
多次元非線形ナップザック問題の高速厳密解法の必要性多次元非線形ナップザック問題Multidimensional Nonlinear Knapsack Problem (MNKP)MNKPは現実的な社会問題にも適用されるモデル金融工学マーケティング信頼性最適化厳密性の保証は現実的な社会問題を扱う上で重要比較的小規模な問題でも計算が困難な場合もある3
GPGPUの発展GPUの演算性能はCPUを上回る速度で成長しているGPUを汎目的計算に利用する環境が整備され,専用プロセッサも市場に現れている一方で,GPUの演算性能を十分に活用するには適切な並列化モデルにあてはめなければならない4
本研究の目的MNKPに対する動的計画法アルゴリズムをGPU向けに並列化問題規模は比較的小さいが,従来解法では計算が困難だった問題に適用し高速化が可能であることを示す今後のGPUの発展の恩恵を受けることが可能か,スケーラビリティの検証を行う5
2. 本研究の背景6
多次元非線形ナップザック問題定義7
MNKPに対する分枝限定法大規模な問題を厳密に解くとき主流計算時間は枝刈りの性能に大きく依存計算時間の予測は困難分枝限定法をベースにしたアプローチ分枝カット法改良代理制約(ISC)法8
MNKPに対する動的計画法実装が単純計算時間の見積もりが可能制約値が大きい,又は制約数が多いとき解くのが困難GPUコアでスケールさせて高速化9
GPU処理の特徴豊富なコア数ハイエンドGPUでは200〜500コア2013年には2000コア前後(NVIDIAロードマップ)高速なメモリアクセスGPU処理の性能はメモリアクセス速度に強く依存費用対効果が高くスーパーコンピュータへの利用もされつつある近年の性能向上率が高い10
GPUの性能と価格理論値数百GFLOPS〜1TFLOPSのプロセッサが数万円で入手可能11
GPGPUのデザインパターンアムダールの法則高速化率S, 並列化割合p, プロセッサ台数NStreaming FormulationU.D. Bordoloi, S. Chakraborty「GPU-based Acceleration of System-level Design Tasks」Int J Parallel Prog, 38, pp.225-253, 2010.12
アムダールの法則並列化による高速化の指標大量のGPUコアを活かすには,高い並列性を持ったアルゴリズムの設計が必要13
Streaming FormulationGPUで効率的に並列処理できるモデル行列の大きさが変化しない現在のスレッド間に依存関係がないlastサイズ一定current独立図2. Streaming Formulation14
GPGPUの適用分野画像処理,音声処理,流体計算,天体シミュレーションなどで成果を挙げているOR分野でも線形計画法,0-1 ナップザック問題,スケジューリング問題など利用が広がっているGPUで効果的に処理を行えるパターンが存在MNKPに対する動的計画法をパターンにあてはめ並列化15
3. 計算機実験と考察16
Coit and Konakの信頼性最適化問題D.W. Coit, A. Konak「Multiple weighted objectives heuristic for the redundancy allocation problem」IEEE Trans. Reliab., 55(3), pp.551-558, 2006.部品間のトレードオフを考慮して作成されている17
Coit and Konakの信頼性最適化問題20のサブシステムによる並直列システム各サブシステムに4個の部品各サブシステムで合計1〜8個部品を使う問題規模18………
Coit and Konakの信頼性最適化問題定式化19
MNKP化とおき,目的関数の対数をとる20
測定方法部品案の異なる3問C,Wをそれぞれ100から250まで30おきに変化計108問の合計計算時間を測定ソルバ並列動的計画法(GPU)動的計画法HOPE(ISC法)CPLEX(分枝カット法など)21
計算時間の比較GPU並列化によって高速化を実現22
考察CPU1スレッドによる動的計画法ではHOPEより計算時間がかかっていたGPU並列化により従来解法では時間のかかっていた問題を高速に計算することができたTesla C2050ではCPU比およそ50倍を達成実用上は深則操作(Fathoming Test)で問題規模を縮小することで,更なる高速化が可能23
スケーラビリティGPUのコア数が増えてもオーバヘッドによる性能低下は見られないメモリ転送などGPU環境の整備により,最新ハードほど計算速度は向上している24
GPUプログラムのチューニンググローバルメモリアクセスを減らすシェアードメモリを使うレジスタを使うコンスタントメモリを使う理論スループット値に近づけるためにはメモリアクセスの最適化が必須本研究でも,レジスタを使用しグローバルメモリアクセスを半分にすることで3倍以上の高速化25
4. まとめ26
まとめ近年のGPUの発展は目まぐるしいが,汎目的計算で有効活用するには特定のパターンに沿う必要があるMNKPに対する動的計画法がGPUを用いることで高速化できることを示した27
GPUの将来性あるアルゴリズムがGPU上で効果的に動作するかは自明ではないプロセッサのクロック周波数は近年伸び悩んでいるCPUにおける性能問題を時間が解決してくれる時代ではなくなりつつあるGPUプログラムはGPUの成長に応じて高速化アルゴリズムがGPU上で動作するアドバンテージ28
今後の課題複数GPUでの並列化GPUクラスタへの対応制約値が大きい場合の対応制約数が多い場合の対応29

201010ksmap