最適化問題に対する超高速&安定計算

クラスタ&グリッド&クラウド、さらにマルチコアなどの並列計算の技術を用いて行う最適化の話など。

自己紹介と重要リンク

2013年06月19日 22時11分55秒 | Weblog
大規模最適化問題に対する超高速&安定計算。
半正定値計画問題(SDP)の対するソフトウェア SDPA, SDPARA の開発者及び SDP の超大規模計算に対する世界記録保持者。
JST CREST ポストペタスケールシステムにおける超大規模グラフ最適化基盤:研究代表者

1: SDPA ホームページ
2: SDPA ホームページ(sourceforge)
3: SDPA Online Solver
4: 最短路問題 Online Solver
5: 研究室用ブログ(日本語 & English)
6: SCOPE(「計算と最適化の新展開」研究部会)
7: Twitter : sdpaninf

コメント (0) |  トラックバック (0) | 

JST CREST : ポストペタスケールシステムにおける超大規模グラフ最適化基盤

2012年08月27日 23時53分47秒 | Weblog
JST CREST (Core Research for Evolutional Science & Technology)
応募研究領域 : ポストペタスケール高性能計算に資するシステムソフトウェア技術の創出
研究課題名 : ポストペタスケールシステムにおける超大規模グラフ最適化基盤

◯研究課題要旨
 大規模災害等は突発的に発生するため事前予測による防災計画だけでなく、動的なデータ収集等とスパコン上での高速計算によって速やかに避難、誘導計画を策定する必要がある。すでに研究代表者らのグループでは首都圏道路網や鉄道網を精密なグラフデータに変換して、超大規模なグラフ処理を用いた避難、誘導計画の策定を進めているが、非常に計算量やデータ量などの規模が大きく従来の手法では処理が困難である。ポストペタスケールスーパーコンピュータ(スパコン)における最重要カーネルのひとつでもある超大規模グラフ処理を実現するためには、理論的性能限界等からボトルネック箇所を特定、数値演算能力とメモリバンド等のトレードオフ関係を把握、計算量とデータ移動量の正確な推定、疎性やサイズなどのデータ特性と性能値の見極め、などが必要とされる。しかし、従来手法では、数千万規模の並列性を備え、ストレージの階層性が深化したポストペタスケールシステム上でのスケーラブルな実行は困難であり、アルゴリズム、システムソフトウェアと同時並行的な解決が求められている。我々は、これらの問題に対応した超大規模グラフ最適化システムを提案する。本システムは、大規模グラフデータに対するリアルタイムストリーミング処理、計算量とデータ移動量を考慮したグラフ最適化アルゴリズム、ストレージの階層性を考慮した大規模グラフデータストア、超大規模グラフのリアルタイム可視化など従来のスパコンでは実現されてこなかった新しい問題を解決する。これらのシステムは TSUBAME2.0のようなペタスケールスパコン上で構築と評価を行い、今後、出現が想定されるポストペタスケールスパコンのアーキテクチャ上での実行に適したソフトウェア基盤を構築し、エクサスケールスーパーコンピューティングへの方向性づくりに大いに貢献する。



◯研究組織
◇研究代表者
藤澤克樹(中央大学)
◇研究グループ
1: 超大規模データを伴う最適化問題に対する高速計算システムの構築と評価 (グループリーダ : 藤澤克樹 (中央大学))
ー グラフ探索(最短路、幅優先探索、重要性計算)、数理計画問題(半正定値計画問題:SDP, 混合整数計画問題 MIP or MINLP 等)

2: リアルタイム大規模グラフストリーム処理系及びグラフ最適化ライブラリの開発 (グループリーダ : 鈴村豊太郎 (東京工業大学))

3: 大規模グラフ処理向けオンデマンド階層型データストアの開発 (グループリーダ : 佐藤仁 (東京工業大学))

4: 大規模グラフストリームデータの対話的な閲覧システム (グループリーダ : 脇田建 (東京工業大学))
コメント (0) |  トラックバック (0) | 

TSUBAME 2.0 写真

2012年06月04日 00時38分34秒 | Weblog
TSUBAME2.0 の計算ノードが搭載されているラック。普段は全面のドアで密封されている(騒音と空調のため)。この写真はドアを開けたもので、良く見ると Infiniband のケーブルが1本外れて垂れている。その代わりにこのラックの外から1本ケーブルが入ってきている。


バキュームリフターで床を開けたもの。銀色の部分は冷却水のパイプでオレンジ色のケーブルは Infiniband。ここに落ちてどちらを踏み潰しても大惨事になることは間違いなし。


コメント (0) |  トラックバック (0) | 

大きな SDP の問題

2012年06月03日 02時26分33秒 | Weblog
以下のような大きな問題が送られてきた。mDIM が大きいということは GPU 計算の効果が大きいように見えるのだが、それ以前に bLOCKsTRUCT の値も大きめなので、ELEMENTS の部分の計算割合が高く、現時点での実装では CPU コア数が多い方が有利となる。

170543 = mDIM
1 = nBLOCK
4896 = bLOCKsTRUCT

◯ソフトウェア SDPARA 7.5.0 (CPU 192 コア)
ELEMENTS : 106432.26s
CHOLESKY : 43445.12s
Total : 151172.82s

○ OPT クラスタ
1:PowerEdge M1000e(ブレードエンクロージャー) x 1台
2:PowerEdge M710HD(ブレードサーバ) x 16台
ブレードサーバの仕様:
CPU : インテル(R) Xeon(R) プロセッサー X5670(2.93GHz、12MB キャッシュ、6.4 GT/s QPI) x 2個
メモリ: 128GB (16X8GB/2R/1333MHz/DDR3 RDIMM/CPUx2)
Disk : 73GB x 2(1台のみ 300GB x 2)
NIC : GbE x 1 & Inifiniband QDR(40Gbps) x 1
OS : CentOS 5.6 for x86_64
コメント (0) |  トラックバック (0) | 

第24回 RAMP シンポジウム 続報

2012年06月02日 10時17分25秒 | Weblog
現在、正式なホームページは作成中だそうです。以下のOR学会の RAMP ホームページです。近日中に更新される予定ですので以下のリンクもご覧下さい。

日本OR学会 RAMP シンポジウムホームページ

日時 : 2012年9月27日(木),28日(金)
会場 : 東北大学
実行委員長 : 村松正和(電気通信大学), 塩浦昭義(東北大学)

28日の午後に海外招待セッションを予定しています。RAMP 幹事の私自身も講演する予定です。
Robert Bixby (Gurobi)
Thorsten Koch (ZIB)
Ted Ralph (Lehigh Univ.)
コメント (0) |  トラックバック (0) | 

SDPARA 7.5.0-G と SDPARA 7.5.0

2012年06月01日 11時49分15秒 | Weblog
以下の比較だが、CPU 192 コアに CPU 32 コア + GPU 8 枚で勝てるようになった。GPU 計算の CHOLESKY ばかりに注目がいくが、ELEMENTS の部分もやはりボトルネックの一つで、こちらは CPU コアが多くないと速く計算することは難しい。

◯問題 tai26a.dat-s
◯ソフトウェア SDPARA 7.5.0 (CPU 192 コア)
ELEMENTS : 1322.15s
CHOLESKY : 94236.85s
Total : 95838.68s

○ OPT クラスタ
1:PowerEdge M1000e(ブレードエンクロージャー) x 1台
2:PowerEdge M710HD(ブレードサーバ) x 16台
ブレードサーバの仕様:
CPU : インテル(R) Xeon(R) プロセッサー X5670(2.93GHz、12MB キャッシュ、6.4 GT/s QPI) x 2個
メモリ: 128GB (16X8GB/2R/1333MHz/DDR3 RDIMM/CPUx2)
Disk : 73GB x 2(1台のみ 300GB x 2)
NIC : GbE x 1 & Inifiniband QDR(40Gbps) x 1
OS : CentOS 5.6 for x86_64


◯ソフトウェア SDPARA 7.5.0-G (CPU 32 コア + GPU TeslaC2075 8枚)
ELEMENTS : 7743.98s
CHOLESKY : 59448.47s
Total : 75346.06s

◯ 計算サーバ:Intel Xeon + 4 GPU マシン(2台)
CPU:Xeon X5690(3.46GHz,6コア)×2
メモリ:192GB(16GB×12)
HDD:SATA500GB×2(システム、システムバックアップ)
NIC : GbE x 1 & Inifiniband x 1
GPGPU:Tesla C2075×4
OS:CentOS 6.2
コメント (0) |  トラックバック (0) | 

Tesla C1060 と SDPA

2012年05月31日 11時20分30秒 | Weblog
2009 年に Tesla C1060 を購入したが、倍精度演算の性能が低く SDPA の計算等にはあまり役に立たなかった。もちろん Tesla C2075 等を使えば GPU の方が計算が高速となる。

1: SDPA 7.4.0 では ELEMENTS も CHOLESKY も CPU 4コアのみ
2: SDPARA 7.5.0 では ELEMENTS は CPU 4 コアのみで、CHOLESKY は GPU(C1060 1台)のみ。ELEMENTS も計算時間が大きいのは、直接 block-cyclic matrix を生成するため。

◯問題 tai13a.dat-s
◯ソフトウェア SDPA 7.4.0 (CPU 4 コアのみ)
ELEMENTS : 23.87s
CHOLESKY : 254.93s
Total : 284.46s

◯ソフトウェア SDPARA 7.5.0-G (CPU 4 コア + GPU TeslaC1060 1台)
ELEMENTS : 71.49s
CHOLESKY : 458.79s
Total : 568.00s

○計算サーバ (1 CPU x 4 コア = 4 コア)
CPU : Intel Corei7 2600K (3.40GHz / 8MB L3) x 2
Memory : 8GB (4 x 2GB)
OS : CentOS 6.2 for x86_64
コメント (0) |  トラックバック (0) | 

講演会「GPUコンピューティングの新しい方向性」

2012年05月30日 00時51分05秒 | Weblog
講演会「GPUコンピューティングの新しい方向性」が今週の金曜日に開催される予定になっています。現時点ではあまり情報量の多くない OpenACC のチュートリアルも開催されます。私も参加予定です。

主催:    東京工業大学学術国際情報センター・クレイジャパン 共同開催
協賛:    GPUコンピューティング研究会
日時:    2012年6月1日(金)13:30〜17:00
場所:    学術国際情報センター・情報棟2F会議室 (キャンパスマップ)
参加費:   無料 (自由参加ですので、会場に直接お越し下さい。)
問合せ:   office-gpu-computing@sim.gsic. (「@」を半角へ変換し、 titech.ac.jp を付けて下さい。)

低消費エネルギーで高速計算を可能にするデバイスとして GPU は注目されてきたが、既存のプログラムをCUDAやOpen CL で書き換えるなどの必要があり、その利用を妨げている面がありました。OpenACC は既存のコードを変更せず、指示行(ディレクティブ)の追加のみでGPUを利用する取り組みの標準化であり、大きな期待が寄せられています。それと合わせるように、新しい世代のGPUも登場し、GPUコンピューティングが新しい方向に進もうとしています。
コメント (0) |  トラックバック (0) | 

SDPARA 7.5.0-G の計算結果 その5

2012年05月29日 00時09分24秒 | Weblog
今度は OpenMPI と mvapich2 との性能比較(両者との最新版を使用)。意外と OpenMPI の方が速かった。

◯ソフトウェア SDPARA 7.5.0-G
◯問題:tai26a.dat-s
◯mvapich2 1.8
[gpdpotrf] ### END n=211926, nb=1024 took 1637.971177sec --> 1936.980342GFlops ###
◯OpenMPI 1.5.5
[gpdpotrf] ### END n=211926, nb=1024 took 1613.675045sec --> 1966.144287GFlops ###:

◯ 計算サーバ:Intel Xeon + 4 GPU マシン(2台)
CPU:Xeon X5690(3.46GHz,6コア)×2
メモリ:192GB(16GB×12)
HDD:SATA500GB×2(システム、システムバックアップ)
NIC : GbE x 1 & Inifiniband x 1
GPGPU:Tesla C2075×4
OS:CentOS 6.2
コメント (0) |  トラックバック (0) | 

SuperMicro 4GPU マシン

2012年05月28日 02時50分14秒 | Weblog
現在は以下の 4GPU 搭載マシンを2台導入している。アプリと性能は最近のブログに書いた通り。

SuperServer 7046GT-TRF-FC475



80PLUS Gold Level 7046GT-TRF-FC475
• Up to 4 Double-Width GPUs:
4x NVIDIA Fermi C2075 GPU Cards (SYS-7046GT-TRF-FC475)
• Dual Quad/Dual-Core Intel® Xeon® processor 5600/5500 series
• Dual Intel® 5520 chipset with QPI up to 6.4 GT/s each
• Up to 192GB DDR3 1333/1066/800 MHz ECC Registered DIMM
• 4 (x16) PCI-E 2.0, 2 (x4) PCI-E 2.0 (in x16 slots),
1 (x4) PCI-E (in x8 slot), 2x PCI 33MHz slots
• 8x 3.5" hot-swap drives trays support up to 6 SATA drives
• Dual LAN with Intel® 82574L Gigabit Ethernet controller
• Redundant 1400W Gold Level high-efficiency power supply

次の導入については、同じ製品を購入するのか、以下の SandyBridge 版を購入するのか検討中。

7047GR-TRF
• GPU Server, Mission-critical app., enterprise server, large database,
e-business, on-line transaction processing, oil & gas, medical app.
• Dual Intel® Xeon® processor E5-2600 family; Socket R (LGA 2011)
• 8 Hot-swap 3.5" SATA HDD Bays, 3x 5.25" peripheral drive bays, 1x 3.5" fixed drive bay
• 16 DIMMs support up to 512GB DDR3 1600MHz reg. ECC memory
• 4 (x16) PCI-E 3.0 (support 4 double width GPU cards),
2 (x8) PCI-E 3.0 (1 in x16), and 1 (x4) PCI-E 2.0 (in x8) slot
• I/O ports: 2 GbE, 1 Video, 1 COM/Serial, 9 USB 2.0
• System management: Built-in Server management tool
(IPMI 2.0, KVM/media over LAN) with dedicated LAN port
• 4 Hot-swap PWM cooling fans and 2 Hot-swap rear fans
• 1620W Redundant Platinum Level Power Supplies

コメント (0) |  トラックバック (0) | 

SDPARA 7.5.0-G の計算結果 その4

2012年05月27日 02時20分58秒 | Weblog
今度は以下の計算サーバを2台並べて Infiniband で接続して実行を行ってみた。4CPU, 8GPU で Cholesky 分解については 1966 GFlops の性能だった。

◯ソフトウェア SDPARA 7.5.0-G
◯問題:tai26a.dat-s
[gpdpotrf] ### END n=211926, nb=1024 took 1613.675045sec --> 1966.144287GFlops ###:

◯ 計算サーバ:Intel Xeon + 4 GPU マシン(2台)
CPU:Xeon X5690(3.46GHz,6コア)×2
メモリ:192GB(16GB×12)
HDD:SATA500GB×2(システム、システムバックアップ)
NIC : GbE x 1 & Inifiniband x 1
GPGPU:Tesla C2075×4
OS:CentOS 6.2

コメント (0) |  トラックバック (0) | 

SDPARA 7.5.0-G の計算結果 その3

2012年05月26日 03時03分09秒 | Weblog
以下の opt クラスタ(16ノード, 32CPU, 192コア)と 4 GPU 搭載の計算サーバ(1ノード, 2CPU, 12コア)で SDPARA 7.5.0 の比較実験を行った。

◯Cholesky 分解について
opt クラスタ : 35446秒
計算サーバ : 39768秒

32 CPU と 4 GPU では、Cholesky 分解に関してはあまり大きな差が無いことがわかる。

◯問題: tai24a.dat-s
Time(sec) Ratio(% : MainLoop)
Predictor time = 36111.259667, 99.795704
Corrector time = 56.431848, 0.155953
Make bMat time = 597.748313, 1.651915
Make bDia time = 73.065560, 0.201921
Make bF1 time = 0.000000, 0.000000
Make bF2 time = 0.000000, 0.000000
Make bF3 time = 0.000000, 0.000000
Make bPRE time = 0.000000, 0.000000
Make rMat time = 0.517326, 0.001430
Make gVec Mul = 0.159244, 0.000440
Make gVec time = 0.557191, 0.001540
copy gVec time = 0.000011, 0.000000
copy bMat time = 0.000000, 0.000000
symm bMat time = 0.000649, 0.000002
Cholesky bMat = 35446.006529, 97.957235
Ste Pre time = 0.007873, 0.000022
Ste Cor time = 0.411851, 0.001138
solve = 108.443750, 0.299691
copy DyVec = 0.144751, 0.000400
sumDz = 1.708230, 0.004721
makedX = 0.682788, 0.001887
symmetriseDx = 0.042061, 0.000116
makedXdZ = 2.433124, 0.006724
xMatTime = 0.358543, 0.000991
zMatTime = 0.495879, 0.001370
invzMatTime = 0.000000, 0.000000
xMatzMatTime = 0.000000, 0.000000
EigxMatTime = 0.172718, 0.000477
EigzMatTime = 0.176140, 0.000487
EigxMatzMatTime = 0.000000, 0.000000
updateRes = 1.600494, 0.004423
EigTime = 0.348858, 0.000964
sub_total_bMat = 35587.436326, 98.348085
Main Loop = 36185.184639, 100.000000
File Check = 0.000000, 0.000000
File Change = 0.006056, 0.000017
File Read = 11.672031, 0.032256
File Trans = 3.281213, 0.009068
Total = 36196.862726, 100.032273

○ OPT クラスタ
1:PowerEdge M1000e(ブレードエンクロージャー) x 1台
2:PowerEdge M710HD(ブレードサーバ) x 16台
ブレードサーバの仕様:
CPU : インテル(R) Xeon(R) プロセッサー X5670(2.93GHz、12MB キャッシュ、6.4 GT/s QPI) x 2個
メモリ: 128GB (16X8GB/2R/1333MHz/DDR3 RDIMM/CPUx2)
Disk : 73GB x 2(1台のみ 300GB x 2)
NIC : GbE x 1 & Inifiniband QDR(40Gbps) x 1
OS : CentOS 5.6 for x86_64

Time(sec) Ratio(% : MainLoop)
Predictor time = 52208.489161, 98.972120
Corrector time = 491.645597, 0.932017
Make bMat time = 6818.326969, 12.925566
Make bDia time = 143.903450, 0.272799
Make bF1 time = 0.000000, 0.000000
Make bF2 time = 0.000000, 0.000000
Make bF3 time = 0.000000, 0.000000
Make bPRE time = 0.000000, 0.000000
Make rMat time = 1.138909, 0.002159
Make gVec Mul = 0.260366, 0.000494
Make gVec time = 0.974972, 0.001848
copy gVec time = 0.000013, 0.000000
copy bMat time = 0.000001, 0.000000
symm bMat time = 5120.677215, 9.707316
Cholesky bMat = 39768.736191, 75.389965
Ste Pre time = 0.013926, 0.000026
Ste Cor time = 0.519987, 0.000986
solve = 985.750276, 1.868696
copy DyVec = 0.142678, 0.000270
sumDz = 2.018698, 0.003827
makedX = 2.146520, 0.004069
symmetriseDx = 0.061528, 0.000117
makedXdZ = 4.228492, 0.008016
xMatTime = 0.637930, 0.001209
zMatTime = 0.960215, 0.001820
invzMatTime = 0.000000, 0.000000
xMatzMatTime = 0.000000, 0.000000
EigxMatTime = 0.228020, 0.000432
EigzMatTime = 0.201835, 0.000383
EigxMatzMatTime = 0.000000, 0.000000
updateRes = 1.776776, 0.003368
EigTime = 0.429855, 0.000815
sub_total_bMat = 45932.375920, 87.074434
Main Loop = 52750.702889, 100.000000
File Check = 0.000000, 0.000000
File Change = 0.009525, 0.000018
File Read = 4.627067, 0.008772
File Trans = 0.051329, 0.000097
Total = 52755.339481, 100.008790

◯ 計算サーバ:Intel Xeon + 4 GPU マシン(1台)
CPU:Xeon X5690(3.46GHz,6コア)×2
メモリ:192GB(16GB×12)
HDD:SATA500GB×2(システム、システムバックアップ)
NIC : GbE x 1 & Inifiniband x 1
GPGPU:Tesla C2075×4
OS:CentOS 6.2
コメント (0) |  トラックバック (0) | 

SDPARA 7.5.0-G の計算結果 その2

2012年05月25日 01時28分36秒 | Weblog
いろいろと実行してみたが、現状では 1057GFlops 程度の性能が 4GPU での Cholesky 分解の限界となっている。

行列サイズ:152928 :理論計算量 1.1922e+15
[gpdpotrf] ### END n=152928, nb=1024 took 1127.052278sec --> 1057.780875GFlops ###

◯ 計算サーバ:Intel Xeon + 4 GPU マシン(2台)
CPU:Xeon X5690(3.46GHz,6コア)×2
メモリ:192GB(16GB×12)
HDD:SATA500GB×2(システム、システムバックアップ)
NIC : GbE x 1 & Inifiniband x 1
GPGPU:Tesla C2075×4
OS:CentOS 6.2

ちなみに Tesla C1060 だと以下ぐらいの性能になる。
[gpdpotrf] ### END n=16758, nb=1024 took 30.387413sec --> 51.623991GFlops ###
コメント (0) |  トラックバック (0) | 

SDPARA 7.5.0-G の計算結果

2012年05月24日 12時59分21秒 | Weblog
とりあえず1ノードだけで、どれだけ性能が上がるかを確認する実験。以下のサーバ1台を使用した。1台でも4GPU で 1TFlops ぐらいの性能はとりあえず出ます。

行列サイズ:88641 :理論計算量 2.3216e+14
[gpdpotrf] ### END n=88641, nb=1024 took 232.007348sec --> 1000.647111GFlops ###

◯ 計算サーバ:Intel Xeon + 4 GPU マシン(2台)
CPU:Xeon X5690(3.46GHz,6コア)×2
メモリ:192GB(16GB×12)
HDD:SATA500GB×2(システム、システムバックアップ)
NIC : GbE x 1 & Inifiniband x 1
GPGPU:Tesla C2075×4
OS:CentOS 6.2
コメント (0) |  トラックバック (0) | 

Cholesky 分解の並列アルゴリズム:3種類

2012年05月23日 02時05分39秒 | Weblog
最新版 SDPARA 7.5.0-G で採用している並列 Cholesky 分解について。性能が良いのはやはり一番下のアルゴリズムとなる。






コメント (0) |  トラックバック (0) |