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

大規模最適化問題、グラフ探索、機械学習やデジタルツインなどの研究のお話が中心

SDPARA(LP64) と SDPARA(ILP64)

2011年05月08日 01時44分42秒 | Weblog
SDPARA(LP64) と SDPARA(ILP64) の違いを示してみる。以下の問題を 16 ノード x 12 スレッド で解いてみる。LP64 では int = 4bytes を用いているので、行列の要素数が 2^31 - 1 を越えるとオーバーフローを起こし、メモリを確保する関数(malloc 等)の引数がマイナスになって、以下のように ScaLAPACK 内で xxmr2d 関数でエラーが発生する。一方、ILP64 ではこの制限は 2^63 - 1 まで大幅に緩和される。

○問題 C2.1Sigmag+.VDZ.pqg.dat-s
mDIM = 76554
nBLOCK = 14
bLOCKsTRUCT = 18 18 18 18 153 153 324 153 153 324 648 324 324 -694

○ SDPARA 7.3.1 (LP64)
SDPA start at [Sat May 7 23:29:11 2011]
param is ./param.sdpa
data is /home/fujisawa/data/quantum/C2.1Sigmag+.VDZ.pqg.dat-s : sparse
out is out.C2.1Sigmag+.VDZ.pqg
NumNodes is set as 16
NumThreads is set as 12
Schur computation : DENSE
m = 76554, maxnp = 4785 maxnp2 = 19200, m*maxnp = 366310890
mu thetaP thetaD objP objD alphaP alphaD beta
xxmr2d:out of memory
xxmr2d:out of memory
xxmr2d:out of memory
xxmr2d:out of memory
xxmr2d:out of memory
xxmr2d:out of memory
xxmr2d:out of memory
xxmr2d:out of memory
xxmr2d:out of memory
xxmr2d:out of memory
xxmr2d:out of memory
xxmr2d:out of memory
xxmr2d:out of memory
xxmr2d:out of memory
xxmr2d:out of memory
xxmr2d:out of memory

○ SDPARA 7.3.3 (ILP64)
SDPA start at [Sat May 7 23:45:04 2011]
param is ./param.sdpa
data is /home/fujisawa/data/quantum/C2.1Sigmag+.VDZ.pqg.dat-s : sparse
out is out.C2.1Sigmag+.VDZ.pqg
NumNodes is set as 16
NumThreads is set as 12
Schur computation : DENSE
mu thetaP thetaD objP objD alphaP alphaD beta
0 1.0e+04 1.0e+00 1.0e+00 +0.00e+00 -6.66e+04 9.0e-01 1.0e+00 2.00e-01
1 1.5e+03 1.0e-01 2.3e-14 -4.57e+01 -9.47e+04 7.7e-01 7.7e-01 2.00e-01
2 4.6e+02 2.4e-02 3.5e-14 -5.97e+01 -1.19e+05 7.0e-01 7.0e-01 2.00e-01
3 1.9e+02 7.2e-03 5.0e-14 -5.60e+01 -1.31e+05 8.5e-01 1.1e+00 2.00e-01
4 5.6e+01 1.1e-03 6.9e-14 -5.27e+01 -1.07e+05 8.0e-01 1.2e+00 2.00e-01
5 1.1e+01 2.2e-04 1.9e-13 -5.25e+01 -2.52e+04 8.6e-01 1.1e+00 2.00e-01
6 1.8e+00 3.1e-05 7.2e-13 -5.26e+01 -4.31e+03 9.0e-01 1.1e+00 2.00e-01
7 2.6e-01 3.1e-06 3.4e-11 -5.36e+01 -6.87e+02 8.7e-01 8.3e-01 2.00e-01
8 7.8e-02 4.0e-07 1.3e-09 -6.01e+01 -2.81e+02 4.1e-01 3.9e-01 2.00e-01
9 5.4e-02 2.4e-07 1.1e-08 -6.69e+01 -2.18e+02 5.9e-01 5.8e-01 2.00e-01
10 2.9e-02 9.8e-08 2.9e-08 -7.68e+01 -1.57e+02 7.1e-01 2.2e-01 2.00e-01
11 2.0e-02 2.9e-08 4.9e-08 -8.29e+01 -1.44e+02 9.0e-01 7.9e-01 2.00e-01
12 6.5e-03 2.9e-09 2.3e-07 -8.58e+01 -1.07e+02 6.3e-01 5.5e-01 2.00e-01
13 3.5e-03 1.1e-09 5.1e-06 -8.75e+01 -9.84e+01 5.5e-01 5.7e-01 2.00e-01
14 1.9e-03 4.8e-10 8.4e-05 -8.86e+01 -9.44e+01 6.8e-01 6.8e-01 2.00e-01
15 8.7e-04 4.8e-10 3.0e-04 -8.98e+01 -9.24e+01 4.7e-01 5.6e-01 2.00e-01
16 5.1e-04 4.8e-10 1.2e-04 -9.03e+01 -9.18e+01 4.3e-01 4.7e-01 2.00e-01
17 3.3e-04 4.8e-10 1.6e-04 -9.06e+01 -9.16e+01 6.2e-01 3.4e-01 2.00e-01
18 2.0e-04 4.8e-10 1.0e-04 -9.08e+01 -9.14e+01 5.4e-01 5.0e-01 2.00e-01
19 1.2e-04 4.8e-10 5.1e-05 -9.09e+01 -9.13e+01 6.2e-01 4.7e-01 2.00e-01
20 7.0e-05 4.8e-10 2.6e-05 -9.10e+01 -9.12e+01 6.2e-01 5.4e-01 2.00e-01
21 3.9e-05 4.8e-10 1.2e-05 -9.10e+01 -9.11e+01 6.6e-01 6.6e-01 2.00e-01
22 1.8e-05 4.8e-10 4.0e-06 -9.10e+01 -9.11e+01 6.6e-01 6.6e-01 2.00e-01
23 8.7e-06 4.8e-10 1.5e-06 -9.10e+01 -9.10e+01 6.9e-01 6.7e-01 2.00e-01
24 4.0e-06 4.8e-10 4.1e-07 -9.10e+01 -9.10e+01 7.7e-01 6.7e-01 2.00e-01
25 1.8e-06 4.8e-10 1.3e-07 -9.10e+01 -9.10e+01 8.4e-01 7.6e-01 2.00e-01
26 6.9e-07 4.8e-10 3.0e-08 -9.10e+01 -9.10e+01 8.7e-01 8.8e-01 2.00e-01
27 2.1e-07 4.8e-10 4.4e-09 -9.10e+01 -9.10e+01 9.5e-01 9.8e-01 2.00e-01
28 4.5e-08 4.8e-10 1.1e-10 -9.10e+01 -9.10e+01 8.8e-01 8.6e-01 1.00e-01
29 1.0e-08 4.8e-10 2.2e-11 -9.10e+01 -9.10e+01 8.8e-01 8.6e-01 1.00e-01

phase.value = pdOPT
Iteration = 29
mu = +9.9622227166179228e-09
relative gap = +1.5611599753812549e-16
gap = +1.4210854715202004e-14
digits = +1.5806552591578518e+01
objValPrimal = -9.1027536827105337e+01
objValDual = -9.1027536827105351e+01
p.feas.error = +8.0242073846257632e-08
d.feas.error = +2.6342414430335914e-09
total time = 5872.847594
main loop time = 5871.814951
total time = 5872.847594
file check time = 0.000000
file change time = 0.006954
file read time = 1.025689
SDPA end at [Sun May 8 01:25:46 2011]
ALL TIME = 6042.547544

○新クラスタ計算機
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.5 for x86_64
コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする