Using PLAPACK: parallel linear algebra package
Using PLAPACK: parallel linear algebra package
ScaLAPACK user's guide
Representation-transparent matrix algorithms with scalable performance
Proceedings of the 21st annual international conference on Supercomputing
Productive cluster programming with OmpSs
Euro-Par'11 Proceedings of the 17th international conference on Parallel processing - Volume Part I
The Boost C++ Libraries
Hi-index | 0.00 |
Scientific software often relies on complex vector- and matrix algebra, sometimes combined with more elaborate linear algebra problems, such as systems of linear equations or eigenvalue problems. Its efficient parallel computation is well studied, and there is a variety of parallel libraries for this task available. However, the user still has to cope with many technical details, such as library-specific data distribution or complicated routine calls, which, if not carefully used, easily result in confusing, difficult to maintain code. This paper presents a Fortran 90 programming interface and its library implementation, which specifies easy-to-use distributed data objects, combined with a set of linear algebra operators. The interface allows matrix algebra to be expressed in a high-level mathematical notation, while operating internally with parallel routines. Thus, linear algebra can be expressed in a clear, comprehensible way, while low-level tasks, such as data organization and communication, are hidden from the user. We evaluate this approach with an existing code from relativistic quantum chemistry, which includes complex operations with dense- and diagonal matrices, solving the generalized eigenvalue problem and several domain specific operations. The results show that the required relativistic transformations can be implemented quickly, while producing clear, light-weight code which scales up to 81 processor cores with efficiency of about 50% for our test cases.