Development of an Object-Oriented Parallel Finite Element Code for Unsaturated Soils

Author(s):  
Youliang Zhang ◽  
Domenico Gallipoli
2017 ◽  
Vol 25 (2) ◽  
pp. 195-271 ◽  
Author(s):  
Santiago Badia ◽  
Alberto F. Martín ◽  
Javier Principe

2001 ◽  
Vol 32 (10-11) ◽  
pp. 759-767 ◽  
Author(s):  
B Patzák ◽  
Z Bittnar

1993 ◽  
Vol 2 (4) ◽  
pp. 133-144 ◽  
Author(s):  
Jon B. Weissman ◽  
Andrew S. Grimshaw ◽  
R.D. Ferraro

The conventional wisdom in the scientific computing community is that the best way to solve large-scale numerically intensive scientific problems on today's parallel MIMD computers is to use Fortran or C programmed in a data-parallel style using low-level message-passing primitives. This approach inevitably leads to nonportable codes and extensive development time, and restricts parallel programming to the domain of the expert programmer. We believe that these problems are not inherent to parallel computing but are the result of the programming tools used. We will show that comparable performance can be achieved with little effort if better tools that present higher level abstractions are used. The vehicle for our demonstration is a 2D electromagnetic finite element scattering code we have implemented in Mentat, an object-oriented parallel processing system. We briefly describe the application. Mentat, the implementation, and present performance results for both a Mentat and a hand-coded parallel Fortran version.


1994 ◽  
Vol 37 (22) ◽  
pp. 3921-3937 ◽  
Author(s):  
Gordon W. Zeglinski ◽  
Ray P. S. Han ◽  
Peter Aitchison

2020 ◽  
Vol 60 (1) ◽  
pp. 25-37
Author(s):  
Michal Bošanský ◽  
Bořek Patzák

The efficient codes can take an advantage of multiple threads and/or processing nodes to partition a work that can be processed concurrently. This can reduce the overall run-time or make the solution of a large problem feasible. This paper deals with evaluation of different parallelization strategies of assembly operations for global vectors and matrices, which are one of the critical operations in any finite element software. Different assembly strategies for systems with a shared memory model are proposed and evaluated, using Open Multi-Processing (OpenMP), Portable Operating System Interface (POSIX), and C++11 Threads. The considered strategies are based on simple synchronization directives, various block locking algorithms and, finally, on smart locking free processing based on a colouring algorithm. The different strategies were implemented in a free finite element code with object-oriented architecture OOFEM [1].


Sign in / Sign up

Export Citation Format

Share Document