Interfaces for parallel numerical linear algebra libraries in high level languages

In many high performance engineering and scientific applications there is a need to use parallel software libraries. Researchers behind these applications find it difficult to understand the interfaces to these libraries because they carry arguments that are related to the parallel environment and performance in addition to arguments related to the problem at hand. In this paper we introduce the use of high level user interfaces for ScaLAPACK. Concretely, a Python-based interface to ScaLAPACK is proposed. Numerical experiments comparing traditional programming practices with our proposed approach are presented. These experiments evaluate not only the performance of the Python interfaces but also how user friendlier they are, compared to the original calls, and show that PyScaLAPACK does not hinder the performance deliverance of ScaLAPACK. Finally, an example of a real scientific application code, whose functionality can be prototyped or extended with the use of PyScaLAPACK, is presented.

[1]  J. Sáenz,et al.  Geophysical data analysis using Python , 2002 .

[2]  Jianwei Li,et al.  Parallel netCDF: A High-Performance Scientific I/O Interface , 2003, ACM/IEEE SC 2003 Conference (SC'03).

[3]  Guido van Rossum,et al.  An Introduction to Python , 2003 .

[4]  Jack Dongarra,et al.  ScaLAPACK user's guide , 1997 .

[5]  Jay Painter,et al.  mmLib Python toolkit for manipulating annotated structural models of biological macromolecules , 2004 .

[6]  Vicente Hernández,et al.  A Survey of High-Quality Computational Libraries and Their Impact in Science and Engineering Applications , 2004, VECPAR.

[7]  J. Demmel,et al.  Sun Microsystems , 1996 .

[8]  Jack J. Dongarra,et al.  NetSolve: Grid enabling scientific computing environments , 2004, High Performance Computing Workshop.

[9]  Violeta Migallón,et al.  Improving Ease of Use in BLACS and PBLAS with Python , 2005, PARCO.

[10]  Kathryn A. Kelly Comment on “Empirical orthogonal function analysis of advanced very high resolution radiometer surface temperature patterns in Santa Barbara Channel” by G. S. E. Lagerloef and R. L. Bernstein , 1988 .

[11]  Tony Drummond The ACTS collection robust and high-performance tools for scientific computing: Guidelines for tool inclusion and retirement , 2002 .

[12]  Jeremy Kepner,et al.  Parallel Matlab: The Next Generation , 2003 .

[13]  Jaeyoung Choi,et al.  A Proposal for a Set of Parallel Basic Linear Algebra Subprograms , 1995, PARA.

[14]  Hans Petter Langtangen,et al.  Python scripting for computational science , 2004 .

[15]  Zizhong Chen,et al.  Self-adapting software for numerical linear algebra and LAPACK for clusters , 2003, Parallel Comput..

[16]  Sudarshan Raghunathan,et al.  Making a Supercomputer Do What You Want: High-Level Tools for Parallel Programming , 2006, Computing in Science & Engineering.

[17]  James Demmel,et al.  LAPACK Users' Guide, Third Edition , 1999, Software, Environments and Tools.

[18]  Jack Dongarra,et al.  MPI: The Complete Reference , 1996 .

[19]  Konrad Hinsen,et al.  Numerical Python , 1996 .

[20]  Ed Anderson,et al.  LAPACK Users' Guide , 1995 .

[21]  Gary S. E. Lagerloef,et al.  Empirical orthogonal function analysis of advanced very high resolution radiometer surface temperature patterns in Santa Barbara Channel , 1988 .