
SDPA 7.2.1 に Schur complement 行列生成のマルチスレッド化を行ってみた。現時点では、OpenMP や Intel Threading Building Blocks などで並列化するのとあまり違いは無いが、これからの拡張で差が出てくるはずだ(多分)。
Nehalem マシン
CPU : Intel Core i7-965 (Nehalem) 3.2GHz
メモリ : DDR3-1600 12GB (2GB x 6) トリプルチャンネル
OS : Fedora 10 for X86_64
1: 問題 theta6.dat-s
SDPA 7.2.1 (1スレッド : GotoBLAS 1.28)
55.524s (18反復)
SDPA 7.2.1 (4スレッド : GotoBLAS 1.28)
23.966s (18反復)
SDPA 7.2.1 (4スレッド: Pthread + GotoBLAS 1.28)
16.350s (18反復)
CSDP 6.0.1 (1スレッド : OpenMP + GotoBLAS 1.28)
51.933s (17反復)
CSDP 6.0.1 (4スレッド : OpenMP + GotoBLAS 1.28)
19.617s (17反復)
2: 問題 large.dat-s
SDPA 7.2.1 (1スレッド : GotoBLAS 1.28)
1m59.259s (18反復)
SDPA 7.2.1 (4スレッド : GotoBLAS 1.28)
43.794s (18反復)
SDPA 7.2.1 (4スレッド: Pthread + GotoBLAS 1.28)
34.262s (18反復)
CSDP 6.0.1 (1スレッド : OpenMP + GotoBLAS 1.28)
2m16.980s (19反復)
CSDP 6.0.1 (4スレッド : OpenMP + GotoBLAS 1.28)
46.499s (19反復)