The Pipelined Hybrid-parallel Iterative Solver Toolkit (PHIST) was developed as a sparse iterative solver framework within the ESSEX project. The aim of PHIST is to provide an environment for developing iterative solvers for sparse linear systems and eigenvalue problems that can tackle the challenges of today's increasingly complex CPUs and arithmetic coprocessors. Reaching beyond the pure integration framework, PHIST also includes a variety of linear solvers and the powerful block Jacobi-Davidson QR method for solving sparse eigenvalue problems.
'Pipelined' indicates in the broadest sense that algorithms are optimized for processors with wide 'vector units' (SIMD/SIMT on CPUs/GPUs). Standard schemes may not expose sufficient parallelism to allow performing the same operation on 4, 8 or 32 elements independently. Hence PHIST may for instance solve multiple systems with different shifts and right-hand sides (but the same matrix) simultaneously. Pipelining of operations during block orthogonalization allows one to use faster fused kernels.
'Hybrid parallel' means that we assume an 'MPI+X' programming model, where only MPI communication between processes is assumed and 'X' may be any additional accelerator, CPU or core level programming scheme supported by the kernel library used. GHOST for instance uses OpenMP, SIMD intrinsics and CUDA.
Official project homepages