大規模最適化問題、グラフ探索、機械学習やデジタルツインなど

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

SDPARA(LP64) と SDPARA(ILP64) その2

前回の記事では以下の問題は SDPARA 7.3.1 (LP64) では解けないような書き方をしていたが、ノード数を増やしてスレッド数を減らすと (16ノード x 8スレッド から 32ノード x 4 スレッド)、以下のように解くこともできる。ノード数を増やすと1ノードあたりの SCM (Schur Complement Matrix)のメモリサイズを減らすことができるのだが、その代わりに実際に使用できるサーバの台数が増えないと1サーバ内で使用するメモリ量が約2倍に増大することになる。ILP64 対応版ではこのような工夫を行う必要がないので、最適なノード数とスレッド数の組み合わせを選ぶことができる。

○問題 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 [Wed Mar 24 00:09:12 2010]
param is /home/fujisawa/sdpa-src/sdpara.7.3.2.src-RC2.rdm/param.sdpa.C2
data is /home/fujisawa/data/quantum/C2.1Sigmag+.VDZ.pqg.dat-s : sparse
out is /home/fujisawa/sdpa-src/sdpara.7.3.2.src-RC2.rdm/output/out.C2.1Sigmag+.VDZ.pqg
rdm is /home/fujisawa/sdpa-src/sdpara.7.3.2.src-RC2.rdm/rdm/out.C2.1Sigmag+.VDZ.pqg.rdm
NumNodes is set as 32
NumThreads is set as 4
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 1.4e-14 -4.57e+01 -9.47e+04 7.7e-01 7.7e-01 2.00e-01
2 4.6e+02 2.4e-02 1.6e-14 -5.97e+01 -1.19e+05 7.0e-01 7.0e-01 2.00e-01
3 1.9e+02 7.2e-03 2.3e-14 -5.60e+01 -1.31e+05 8.5e-01 1.1e+00 2.00e-01
4 5.6e+01 1.1e-03 5.4e-14 -5.27e+01 -1.07e+05 8.0e-01 1.2e+00 2.00e-01
5 1.1e+01 2.2e-04 4.9e-14 -5.25e+01 -2.52e+04 8.6e-01 1.1e+00 2.00e-01
6 1.8e+00 3.1e-05 1.1e-13 -5.26e+01 -4.31e+03 9.0e-01 1.1e+00 2.00e-01
7 2.6e-01 3.1e-06 3.8e-11 -5.36e+01 -6.87e+02 8.7e-01 8.3e-01 2.00e-01
8 7.8e-02 4.0e-07 8.0e-10 -6.01e+01 -2.81e+02 4.1e-01 3.9e-01 2.00e-01
9 5.4e-02 2.4e-07 1.7e-08 -6.69e+01 -2.18e+02 5.9e-01 5.8e-01 2.00e-01
10 2.9e-02 9.8e-08 5.0e-08 -7.68e+01 -1.57e+02 7.1e-01 2.2e-01 2.00e-01
11 2.0e-02 2.9e-08 2.7e-08 -8.29e+01 -1.44e+02 9.0e-01 7.9e-01 2.00e-01
12 6.5e-03 2.9e-09 2.4e-07 -8.58e+01 -1.07e+02 6.3e-01 5.5e-01 2.00e-01
13 3.5e-03 1.1e-09 3.2e-06 -8.75e+01 -9.84e+01 5.5e-01 5.7e-01 2.00e-01
14 1.9e-03 4.9e-10 3.6e-05 -8.86e+01 -9.44e+01 6.8e-01 6.7e-01 2.00e-01
15 8.9e-04 4.9e-10 3.1e-04 -8.98e+01 -9.25e+01 4.8e-01 5.5e-01 2.00e-01
16 5.2e-04 4.9e-10 1.4e-04 -9.03e+01 -9.18e+01 4.4e-01 4.4e-01 2.00e-01
17 3.4e-04 4.9e-10 9.7e-05 -9.06e+01 -9.16e+01 6.2e-01 3.3e-01 2.00e-01
18 2.1e-04 4.9e-10 7.0e-05 -9.08e+01 -9.14e+01 5.2e-01 5.0e-01 2.00e-01
19 1.3e-04 4.9e-10 2.4e-05 -9.09e+01 -9.13e+01 6.2e-01 4.9e-01 2.00e-01
20 7.4e-05 4.9e-10 1.8e-05 -9.10e+01 -9.12e+01 6.2e-01 5.4e-01 2.00e-01
21 4.1e-05 4.9e-10 8.6e-06 -9.10e+01 -9.11e+01 6.6e-01 6.5e-01 2.00e-01
22 2.0e-05 4.9e-10 2.8e-06 -9.10e+01 -9.11e+01 6.5e-01 6.7e-01 2.00e-01
23 9.2e-06 4.9e-10 1.2e-06 -9.10e+01 -9.10e+01 6.9e-01 6.7e-01 2.00e-01
24 4.2e-06 4.9e-10 3.9e-07 -9.10e+01 -9.10e+01 7.8e-01 6.5e-01 2.00e-01
25 2.0e-06 4.9e-10 1.3e-07 -9.10e+01 -9.10e+01 8.5e-01 8.1e-01 2.00e-01
26 6.9e-07 4.9e-10 2.7e-08 -9.10e+01 -9.10e+01 8.9e-01 8.8e-01 2.00e-01
27 2.0e-07 4.9e-10 3.2e-09 -9.10e+01 -9.10e+01 9.6e-01 9.8e-01 2.00e-01
28 4.4e-08 4.9e-10 7.3e-11 -9.10e+01 -9.10e+01 8.8e-01 8.6e-01 1.00e-01
29 1.0e-08 4.9e-10 2.1e-11 -9.10e+01 -9.10e+01 8.8e-01 8.6e-01 1.00e-01

phase.value = pdOPT
Iteration = 29
mu = +1.0004998835837842e-08
relative gap = +1.4050439748045537e-15
gap = -1.2789769243681803e-13
digits = +1.4852310083078407e+01
objValPrimal = -9.1027537023963333e+01
objValDual = -9.1027537023963205e+01
p.feas.error = +8.0578912030470867e-08
d.feas.error = +2.5773488968039437e-09
total time = 7918.803502
** Paramters **
maxIteration = 1000
epsilonStar = +9.9999999999999995e-08
lambdaStar = +1.0000000000000000e+02
omegaStar = +2.0000000000000000e+00
lowerBound = -1.0000000000000000e+20
upperBound = +1.0000000000000000e+20
betaStar = +1.0000000000000001e-01
betaBar = +2.0000000000000001e-01
gammaStar = +9.0000000000000002e-01
epsilonDash = +9.9999999999999995e-08

○ SDPA クラスタ
16 Nodes, 32 CPUs, 128 CPU cores;
CPU : Intel Xeon 5460 3.16GHz (quad cores) x 2 / node
Memory : 48GB / node
Disk : 6TB(RAID 5)
NIC : GbE x 2 and Myrinet-10G x 1 / node
OS : CentOS 5.5 for x86_64