PartitionedArrays.jl

This package provides distributed (a.k.a. partitioned) vectors and sparse matrices like the ones needed in distributed finite differences, finite volumes, or finite element computations.

13
contributors

Cite this software

Description

What

This package provides distributed (a.k.a. partitioned) vectors and sparse matrices like the ones needed in distributed finite differences, finite volumes, or finite element computations. Packages such GridapDistributed have shown weak and strong scaling up to tens of thousands of CPU cores in the distributed assembly of sparse linear systems when using PartitionedArrays as their distributed linear algebra back-end.

Why

The main objective of this package is to avoid to interface directly with MPI or MPI-based libraries when prototyping and debugging distributed parallel codes. MPI-based applications are executed in batch mode with commands like mpiexec -np 4 julia input.jl, which break the Julia development workflow. In particular, one starts a fresh Julia session at each run, making difficult to reuse compiled code between runs. In addition, packages like Revise and Debugger are also difficult to use in combination with MPI computations on several processes.

To overcome these limitations, PartitionedArrays considers a data-oriented programming model that allows one to write distributed algorithms in a generic way, independent from the message passing back-end used to run them. MPI is one of the possible back-ends available in PartitionedArrays, used to deploy large computations on computational clusters. However, one can also use other back-ends that are able to run on standard serial Julia sessions, which allows one to use the standard Julia workflow to develop and debug complex codes in an effective way.

Logo of PartitionedArrays.jl
Keywords
Programming language
  • Julia 100%
License
</>Source code

Contributors

FV
Francesc Verdugo
VU Amsterdam
AFM
Alberto F. Martin
Australian National University
JMF
Jordi Manyer Fuertes
Monash university
FE
Fredrik Ekre
LT
Lambert Theisen
RWTH Aachen University
DO
Dennis Ogiermann
Ruhr University Bochum
RR
Robin Richardson
Netherlands eScience Center
DB
Dalvie Benu
Royal Institute of Technology
YT
Yung-sheng Tu
HR
Hendrik Ranocha
Johannes Gutenberg University Mainz
OC
Oriol Colomés
MG
Mosè Giordano
@UCL-ARC

Related projects

HP2SIM

Democratizing multi-physics simulations with high-productivity high-performance finite element software

Updated 1 week ago
In progress

Related software

GalerkinToolkit.jl

GA

GalerkinToolkit is a high-performance finite element (FE) toolbox fully implemented in the Julia programming language. It provides modular building blocks to easily implement custom finite element codes to solve partial differential equations (PDEs) using a variety of numerical schemes.

Updated 4 hours ago