SDPA と同様に(実際には異なる部分もあるが)、SDPARA に対しても Schur complement 行列の部分のマルチスレッド化を行ってみた。SDPA とは異なり SDPARA は最初に各プロセスに SDP のデータを送る必要があるのだが、メモリアクセスが速いデータ構造 != MPI での転送が速いデータ構造ではない。この部分をどうやって行くのかは今後真面目に考える必要があるだろう。今回は SDPARA 以外に GotoBLAS 1.29 と MUMPS 4.8.3 を用いている。
○問題1: thetaG51.dat-s
SDPARA 7.2.1 (16プロセス x 4スレッド) : 1m7.892s
SDPARA 7.2.1.rev7 (16プロセス x 4スレッド) : 55.389s
○問題2: D512.dat
SDPARA 7.2.1 (32プロセス x 4スレッド) : 2m33.100s
SDPARA 7.2.1.rev7 (32プロセス x 4スレッド) : 1m37.235s
○問題3: CH4.1A1.STO6G.noncore.pqg.dat-s
SDPARA 7.2.1 (32プロセス x 4スレッド) : 7m30.175s
SDPARA 7.2.1.rev7 (32プロセス x 4スレッド) : 7m10.323s
○ SDPA クラスタ
16 Nodes, 32 CPUs, 128 CPU cores;
CPU : Intel Xeon 5460 3.16GHz (quad cores) x 2 / node
Memory : 48GB / node
HDD : 6TB(RAID 5) / node
NIC : GbE x 2 and Myrinet-10G x 1 / node
OS : CentOS 5.2 for x86_64
Linpack : R_max = 1.435TFlops, R_peak = 1.618TFlops, R_max / R_peak = 88.69%
○問題1: thetaG51.dat-s
SDPARA 7.2.1 (16プロセス x 4スレッド) : 1m7.892s
SDPARA 7.2.1.rev7 (16プロセス x 4スレッド) : 55.389s
○問題2: D512.dat
SDPARA 7.2.1 (32プロセス x 4スレッド) : 2m33.100s
SDPARA 7.2.1.rev7 (32プロセス x 4スレッド) : 1m37.235s
○問題3: CH4.1A1.STO6G.noncore.pqg.dat-s
SDPARA 7.2.1 (32プロセス x 4スレッド) : 7m30.175s
SDPARA 7.2.1.rev7 (32プロセス x 4スレッド) : 7m10.323s
○ SDPA クラスタ
16 Nodes, 32 CPUs, 128 CPU cores;
CPU : Intel Xeon 5460 3.16GHz (quad cores) x 2 / node
Memory : 48GB / node
HDD : 6TB(RAID 5) / node
NIC : GbE x 2 and Myrinet-10G x 1 / node
OS : CentOS 5.2 for x86_64
Linpack : R_max = 1.435TFlops, R_peak = 1.618TFlops, R_max / R_peak = 88.69%