Abstract
In this paper, we present PyPANCG, a Python library-interface that implements both the conjugate gradient method and the preconditioned conjugate gradient method for solving nonlinear systems. We describe the use of the library and its advantages in order to get fast development. 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. Experimental results report the performance of our approach on different parallel computers.
Similar content being viewed by others
References
Adams L (1985) M-step preconditioned conjugate gradient methods. SIAM J Sci Stat Comput 6:452–462
Averick BM, Carter RG, More JJ, Xue G (1991) The MINPACK-2 test problem collection. Technical Report MCS-P153-0692, Mathematics and Computer Science Division, Argonne
Drummond LA, Galiano V, Marques O, Migallón V, Penadés J (2007) PyACTS: a high-level framework for fast development of high performance applications. In: Lect notes comput sci, vol 4395. Springer, Berlin, pp 417–425
Fletcher R, Reeves C (1964) Function minimization by conjugate gradients. Comput J 7:49–154
Galiano V, Migallón H, Migallón V, Penadés J (2009) Parallel nonlinear preconditioners on multicore architectures. J Supercomput. doi:10.1007/s11227-009-0351-0
Hinsen K (2002) Scientific Python user’s guide. Centre de Biophysique Moleculaire CNRS, Grenoble
Langtangen HP (1989) Conjugate gradient methods and ILU preconditioning of nonsymmetric matrix systems with arbitrary sparsity patterns. Int J Numer Methods Fluids 9:213–233
Message Passing Interface (2011) http://www-unix.mcs.anl.gov/mpi/
Migallón V, Penadés J (1997) Convergence of two-stage iterative methods for Hermitian positive definite matrices. Appl Math Lett 10(3):79–83
Miller P (2002) PyMPI—an introduction to parallel Python using MPI. http://www.llnl.gov/computing/develop/python/pyMPI.pdf
Painter J, Merritt EA (2004) mmLib Python toolkit for manipulating annotated structural models of biological macromolecules. J Appl Crystallogr 37(1):174–178
Sáenz J, Zubillaga J, Fernández J (2002) Geophysical data analysis using Python. Comput Geosci 24(4):457–465
Sala M, Spotz W, Heroux M (2008) PyTrilinos: high-performance distributed-memory solvers for Python. ACM Trans Math Softw 34(2):1–33
Scherer D, Dubois P, Sherwood B (2000) VPython: 3D interactive scientific graphics for students. Comput Sci Eng 2(5):56–62
van Rossum G, Drake FL Jr (2003) An introduction to Python. Network Theory Ltd., Bristol
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Migallón, H., Migallón, V. & Penadés, J. A Parallel Python library for nonlinear systems. J Supercomput 58, 438–448 (2011). https://doi.org/10.1007/s11227-011-0609-1
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-011-0609-1