Computational & Technology Resources
an online resource for computational,
engineering & technology publications
Civil-Comp Proceedings
ISSN 1759-3433
CCP: 94
PROCEEDINGS OF THE SEVENTH INTERNATIONAL CONFERENCE ON ENGINEERING COMPUTATIONAL TECHNOLOGY
Edited by:
Paper 31

A Parallel High-Level Library for Solving Sparse Nonlinear Systems

H. Migallón1, V. Migallón2 and J. Penadés2

1Department of Physics and Computer Architectures, University Miguel Hernández, Elche, Alicante, Spain
2Department of Computer Science and Artificial Intelligence, University of Alicante, Spain

Full Bibliographic Reference for this paper
, "A Parallel High-Level Library for Solving Sparse Nonlinear Systems", in , (Editors), "Proceedings of the Seventh International Conference on Engineering Computational Technology", Civil-Comp Press, Stirlingshire, UK, Paper 31, 2010. doi:10.4203/ccp.94.31
Keywords: parallel libraries, multicore, nonlinear conjugate gradient algorithms, parallel preconditioners, Python high-level interfaces, two-stage methods, ILU factorizations.

Summary
In this paper we present PyPANCG, a parallel library treated as a high-level interface for solving nonlinear systems. This work follows the guidelines of a high-level interface in terms of usability, but in fact it is a library developed using a mixed model in relation to the utilization of different programming languages. In order to create the high-level interfaces, we have chosen the Python language due to several reasons, for example, its remarkable power combined with a very clear syntax. On the other hand, the developed Fortran routines offer all the performance of the low-level language. The desired objective is to unite the development features offered by Python in a single platform and to approach the execution features offered by, in this case, Fortran. To do this, equivalent routines were developed in both languages. This library, distributed as a standard Python package, consists of two modules, PySParNLCG and PySParNLPCG. The PySparNLCG module parallelizes the conjugate gradient method [1] for solving nonlinear systems, and the PySParNLPCG module implements the preconditioning technique based on block two-stage methods [2]. Given the nonlinear nature of the problem, the generated library cannot be a static library. That is, it must be a dynamic library able to solve nonlinear problems. PyPANCG can work with different tools to manage the parallel environment through MPI, by using PyMPI or mpipython included in Scientific Python.

The aim of this library is to develop high performance scientific codes for high-end computers hiding many of the underlying low-level programming complexities from users with the use of a high-level Python interface. The library has been designed for adapting to different stages of the design process, depending on whether the purpose is computational performance or fast development.

We have described the use of the library and its advantages to achieve fast development. Moreover, in order to illustrate the behavior of PyPANCG, we have tested the algorithms provided by this library on two multicore computers. Numerical experiments show good behavior but obviously not comparable with lower level developments. The best results are obtained using routines fully developed in Fortran such that the computation of the nonlinearity is performed inside these routines. The worst results are obtained with the option that uses pure Python routines and it should only be used in the development process. On the other hand, the options that combine Fortran and Python code achieve a performance that is similar.

References
1
R. Fletcher, C. Reeves, "Function Minimization by Conjugate Gradients", The Computer Journal, 7, 149-154, 1964. doi:10.1093/comjnl/7.2.149
2
R. Bru, V. Migallón, J. Penadés, D.B. Szyld, "Parallel, Synchronous and Asynchronous Two-Stage Multisplitting Methods", Electronic Transactions on Numerical Analysis, 3, 24-38, 1995.

purchase the full-text of this paper (price £20)

go to the previous paper
go to the next paper
return to the table of contents
return to the book description
purchase this book (price £125 +P&P)