ALIs
kommt nochParallel common software platform for discretized numerical schemes
PCP is a parallel software general platform based on domain decomposition scheme for various numerical schemes such as finite element method, finite difference method, and finite volume method and so on, to accelerate a smooth shift to parallel computational world for non-specialists in parallel computations, which only requires ordinary input data and the subroutine to construct his stiffness matrix. Since our platform can be used as a template of the parallel code, a user can quickly change his code for parallel analysis by inserting his stiffness matrix subroutine based on copy & paste process.
Authors and Copyright
Research Institute for Computational Science
The National Institute of Advanced Industrial Science and Technologie
(AIST)
Japan
Center for Computational Science and Engineering
Fuji Research Institute Corporation (Fuji RIC)
Japan
Overview
It is a time consuming and very skillful task for a researcher on computational mechanics to modify his numerical code for a single processor to the one for parallel computations. This is a serious bottleneck for parallel computation, even though general-purpose parallel computational library such as MPI is applied in his modification. Free parallel matrix solvers on FEM codes such as PETSc[1], Aztec[2], ADVENTURE[3], GEOFEM[4] and so forth[5] are for professional researchers on parallel computations and too complicated for the use of his modifications as a template.
The National Institute of Advanced Industrial Science and Technology, Fuji Research Institute Corporation Center for Computational Science and Engineering developed a parallel software general platform based on domain decomposition scheme for various numerical schemes such as finite element method, finite difference method, and finite volume method and so on, to accelerate a smooth shift to parallel computational world for non-specialists in parallel computations, which only requires ordinary input data and the subroutine to construct his stiffness matrix. Since the platform can be used as a template of the parallel code, a user can quickly change his code for parallel analysis by inserting his stiffness matrix subroutine based on copy & paste process.
Iterative matrix solvers (GMRES and Bi-CGSTAB with some pre-conditioners) and banded matrix solver with renumbering are equipped in the platform. The built-in subroutines for matrix-index generation (CRS form), for BC/loads setting and for the setting of Lagrange multiplier are also prepared. Although the final purpose of parallel computations is for larger and faster calculation at the parts of matrix solver and stiffness matrix construction, four methods of modifications are set up in the platform depending on uers' intermediate purpose. Since the free partitioning software "MeTis"[6] just supports only mesh either with TRI3, QUAD4, TETRA4 or HEXA8, graph generator for arbitrary types of mesh and its interface to "MeTis" is developed for mesh partitioning.
The parallel efficiency of the platform is more than 70% at Hitachi SR8000 with 32 nodes.
This research was funded by Tsukuba Advanced Computing Center at AIST and NEDO.
REFERENCES
[1]http://www-fp.mcs.anl.gov/petsc/index.html
[2]http://www.cs.sandia.gov/CRF/aztec1.html
[3]http://adventure.q.t.u-tokyo.ac.jp/
[4]http://geofem.tokyo.rist.or.jp/index_jp.html
[5]http://www.netlib.org/utk/people/JackDongarra/la-sw.htm
[6]http://www-users.cs.umn.edu/~karypis/metis/
More Information
For more information see: PCP-Homepage
For METIS and PARMETIS on SR8000 see: METIS
Compiling and Linking on SR8000
The libraries are located in /usr/local/lib/PCP:
- libqsol-{32|64}.a 32/64-bit intra-node MPI version
- libqsol-{32|64}p.a22 32/64-bit inter-node hybrid COMPAS/MPI version
- libqsol-nompi-{32|64}.a 32/64-bit sequential single CPU version
- libqsol-nompi-{32|64}p.a 32/64-bit single node version
Compile and link with:
- mpif90 -L/usr/local/lib/PCP -llqsol-32 myprog.f
- mpif90 -L/usr/local/lib/PCP -llqsol-32p -rdma myprog.f
- f90 -L/usr/local/lib/PCP -llqsol-nompi-32 myprog.f
Examples
Examples are in: /usr/local/src/lib/PCP/PCP0.9/test