INVESTIGADORES
D'ELIA Jorge
congresos y reuniones científicas
Título:
Parallel FEM Application Development in Python
Autor/es:
DALCIN, LISANDRO; PAZ, RODRIGO; ANCA, ANDRÉS; STORTI, MARIO; D'ELÍA, JORGE
Lugar:
Buenos Aires
Reunión:
Congreso; MECOM 2005 (VIII Congreso Argentino de Mecánica Computacional).; 2005
Institución organizadora:
Facultad de Ingeniería y Ciencias Exactas y Centro de Estudios Avanzados de la UADE
Resumen:
Python is a modern but mature, easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python codes are quickly developed, easily debugged and maintained, and can achieve a high degree of integration with other libraries written in compiled languages. Those characteristics make Python an ideal candidate for writing the higher-level parts of large-scale scientific applications and driving simulations in parallel architectures like clusters of PC´s or SMP´s. In this work, we discuss finite element application development using the Python programming language using previously developed packages providing access to widely used  parallel libraries like MPI, PETSc and ParMETIS. The Message Passing Interface (MPI) is a standardized and portable message-passing system designed to function on a wide variety of parallel computers; it allows users to write portable programs in the main scientific programming languages (Fortran, C, or C++). PETSc is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. ParMETIS extends the functionality provided by METIS in partitioning graphs and finite element meshes; it includes routines that are especially suited for parallel computations and large-scale numerical simulations involving unstructured meshes. The MPI, PETSc and ParMETIS packages are used together to deploy a model parallel implementation of a finite element application based in domain decomposition techniques. Our main concern is in showing the advantages of using high-level scripting languages for the high-level part of that kind of codes, where parallelization introduces some extra complexities. With this aim in mind, the physics of problems to solve are deliberately kept simple.