"All codes use the message passing interface (MPI) library to achieve
parallelism. In addition, each code uses external libraries for features
such as

I/O (HDF, NetCDF, CGNS, or Panda);

mesh operations, including adaptive mesh refinement (ParaMesh,
Mesquite, Metis, MeshSim, or SAMRAI);

computational geometry (CGAL);

linear algebra (BLAS, LAPACK), and tools for solving sparse linear
systems and systems modeled by partial differential equations
(PETSc, Hypre, or Clawpack).

While these codes use parallel libraries that sit atop MPI, developers
still had to write raw MPI code to achieve desired functionality."