Computational & Technology Resources
an online resource for computational,
engineering & technology publications
Civil-Comp Proceedings
ISSN 1759-3433
CCP: 90
PROCEEDINGS OF THE FIRST INTERNATIONAL CONFERENCE ON PARALLEL, DISTRIBUTED AND GRID COMPUTING FOR ENGINEERING
Edited by:
Paper 12

OOFEM: A Parallel Finite Element Toolkit

B. Patzák

Faculty of Civil Engineering, Czech Technical University, Prague, Czech Republic
doi:10.4203/ccp.90.12

Full Bibliographic Reference for this paper
, "OOFEM: A Parallel Finite Element Toolkit", in , (Editors), "Proceedings of the First International Conference on Parallel, Distributed and Grid Computing for Engineering", Civil-Comp Press, Stirlingshire, UK, Paper 12, 2009. doi:10.4203/ccp.90.12
Keywords: parallel computing, distributed computing, dynamic load balancing, finite element method.

Summary
The recent developments in many scientific and engineering disciplines bring in new challenges for computational science. The engineering community is facing growing demands for state-of-the-art modeling and realistic predictions in many fields. Such complex analyses initiate demands for large-scale computing, which must be feasible from the view of both time and available resources. The parallel processing not only enables results to be obtained within acceptable time by significantly speeding up the analysis, but also performs large and complex analyses, which often do not fit into a single, even well equipped, machine.

The present contribution deals with the design of an object-oriented framework for dynamic load balancing implemented in the frame of the object-oriented finite element solver OOFEM [1,2]. The adopted parallelization strategy is based on the mesh partitioning and message passing paradigm. The partitioning of the problem can be fixed at runtime (static load balancing) or can change during the solution (dynamic load balancing). The latter option is often necessary in order to achieve good load balancing of work among processors and thus optimal scalability.

The design of communication layer is described in detail. High-level communication services were developed on the top of the message passing library. On the lower level, classes representing static and dynamic communcation buffers are described and their efficiency discussed and compared. On the application level, several high-level communication classes are introduced to facilitate the mutual data exchange between sub-domains. The overall design of the communication layer naturally profits from application buffering, non-blocking communication and message packing/unpacking concepts, that are necessary in order to achieve good scalability and computational performance.

Later, the design of dynamic load ballancing layer is described. The framework introduces several classes representing the fundamental components of the load balancing algorithm: (i) load monitor, keeping track of the solution process and detecting load imbalance, (ii) load balancer, responsible for transparent work transfer, (iii) load balancer plug-ins to implement analysis-specific data migration, (iv) external domain partitioner interface, and (v) high-level communication services. In the paper, the implementation of key services is proposed and discussed in detail.

The described approach is demonstrated using the large scale nonlinear fracture analysis of a three-dimensional specimen using a heterogeneous parallel computer. Both static and dynamic load ballancig approaches are used and their efficiency is compared. A significant reduction of the computation time and reasonable parallel efficiency are demonstrated.

References
1
B. Patzák, Z. Bittnar, "Design of object oriented finite element code", Advances in Engineering Software, 32(10-11):759-767, 2001. doi:10.1016/S0965-9978(01)00027-8
2
B. Patzák, "OOFEM project home page", 2007, http://www.oofem.org

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 £72 +P&P)