Multi-block/multi-core SSOR preconditioner for the QCD quark solver for K computer
We study the algorithmic optimization and performance tuning of the Lattice QCD clover-fermion solver for the K computer. We implement the Lüscher's SAP preconditioner with sub-blocking in which the lattice block in a node is further divided to several sub-blocks to extract enough parallelism for the 8-core CPU SPARC64$^\mathrmTM$ VIIIfx of the K computer. To achieve a better convergence property we use the symmetric successive over-relaxation (SSOR) iteration with locally-lexicographical ordering for the sub-blocks in obtaining the block inverse. The SAP preconditioner is included in the single precision BiCGStab solver of the nested BiCGStab solver. The single precision part of the computational kernel are solely written with the SIMD oriented intrinsics to achieve the best performance of the \SPARC on the K computer. We benchmark the single precision BiCGStab solver on the three lattice sizes: $12^3× 24$, $24^3× 48$ and $48^3× 96$, with fixing the local lattice size in a node at $6^3× 12$. We observe an ideal weak-scaling performance from 16 nodes to 4096 nodes. The performance of a computational kernel exceeds 50% efficiency, and the single precision BiCGstab has $∼26% susutained efficiency.