Computational & Technology Resources
an online resource for computational,
engineering & technology publications
PROCEEDINGS OF THE ELEVENTH INTERNATIONAL CONFERENCE ON CIVIL, STRUCTURAL AND ENVIRONMENTAL ENGINEERING COMPUTING
Edited by: B.H.V. Topping
PyPLiC: A High-Level Interface to the Parallel Model Reduction Library PLiCMR
V. Galiano1, A. Martín2, H. Migallón1, V. Migallón3, J. Penadés3 and E.S. Quintana-Ortí2
1Department of Physics and Computer Architectures, University Miguel Hernández, Elche, Alicante, Spain
, "PyPLiC: A High-Level Interface to the Parallel Model Reduction Library PLiCMR", in B.H.V. Topping, (Editor), "Proceedings of the Eleventh International Conference on Civil, Structural and Environmental Engineering Computing", Civil-Comp Press, Stirlingshire, UK, Paper 62, 2007. doi:10.4203/ccp.86.62
Keywords: parallel libraries, Python interfaces, model reduction, dynamical linear time-invariant systems.
Scripting languages have gained popularity in the computational sciences community, in part because of the complexity of codes, limited computational resources, large volumes of data produced and setup of large simulation runs. Python is one of these scripting languages, and it provides reduced development times with a high integration of the fairly large individual codes. In this paper we present a Python based high level interface to a parallel library for model reduction of dynamical linear time-invariant (LTI) systems, called PLiCMR . The parallel model reduction addressed by the PLiCMR library provides absolute error methods, based on similarity transformations. The functionality and naming convention of the parallel routines closely follow analogous routines from SLICOT . These routines have been implemented in Fortran using the kernels in ScaLAPACK .
The proposed interfaces, named PyPLiC, reduce the time users spend prototyping and deploying high-end software tools like PLiCMR. Implementations details and capabilities of the developed interfaces are given. PyPLiC reduces the number of input parameters to only those that modify the behaviour of the PLiCMR routines. The rest of parameters, such as the desired order of the resulting reduced-order system, working arrays or ScaLAPACK descriptors of matrices, are initialized to values-by-default, or are automatically computed by the interface. Nevertheless, these default values can still be modified by the user. Also, PyPLiC offers access to all three PLiCMR driver routines under the umbrella of a single routine, so that the PLiCMR routine to be used is selected via one additional parameter of the interface. Another improvement of PyPLiC is how it manages the input data matrices and the data distribution across the processors. PyPLiC has three different options to store the data matrices: in Matrix Market format files, in a Numerical Python array, (using a two-dimensional array), and stored as a 2D block-cyclic ScaLAPACK distributed matrix (using a one-dimensional array). On the other hand, PyPLiC has four options to perform the data distribution: PLiCMR.so, PyPLiC, Num2PyACTS and Not distribute option.
The results show not only the many advantages of using the simplified interfaces but also that there are not major performance degradations to pay for the use of the PyPLiC interfaces. The high level interfaces enable the possibility of adding further improvements, specially in the management and distribution of matrices.
purchase the full-text of this paper (price £20)