Skip to content

Commit 30b846e

Browse files
author
Damian Rouson
committed
Update the PDE solver tests README file.
1 parent 9921696 commit 30b846e

File tree

1 file changed

+44
-44
lines changed

1 file changed

+44
-44
lines changed
Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,47 @@
1-
This directory contains three one-dimensional partial differential equation
2-
(PDE) solvers that exercise the parallel programming features of Fortran
3-
2008: coarrays and "do concurrent". The solvers are in the following three
4-
directories:
5-
6-
(1) coarrayHeatSimplified
7-
(2) coarrayBurgers
8-
(3) coarrayBurgersStaticTau
9-
10-
The first second and third directories above depend on files in the include-files
11-
and library directories.
12-
13-
The heat equation solver (1) is the most stringent in terms of correctness
14-
because it checks for the exact solution at every point across the problem
15-
domain. I suggest starting with the heat equation solver to check compiler
16-
correctness before moving to the other solvers.
17-
18-
The raw Burgers equation solver (2) is slightly more complicated than the
19-
heat equation solver in that the Burgers solver adds one additional term
20-
(a nonlinear term), the calculation of which imposes an additional
21-
synchronization requirement. However, the correctness test in the Burgers
22-
equation solver is weak: it checks only one value in the problem domain and
23-
that point is a point that should remain zero for all time.
24-
25-
The instrumented Burgers solver (3) is best for performance studies. It has
26-
been instrumented for performance analysis witih the Tuning and Analysis
27-
Utilities (TAU), which is open-source software available at
28-
http://tau.uoregon.edu. Because of a memory leak in the Intel compiler,
29-
the instrumented solver uses static rather than dynamic memory. For this
30-
reason, the code needs to be recompiled for each desired problem size. See
31-
coarrayBurgersStaticTau/math_constants.F90 for an important comment regarding
32-
matching the problem size with the number of images.
33-
34-
The instrumented Burgers solver has been demonstrated to execute with 99%
35-
parallel efficiency on over 13,000 cores and 87% parallel efficiency on 16,384
1+
[This document is formatted with GitHub-Flavored Markdown. ]:#
2+
[For better viewing, including hyperlinks, read it online at ]:#
3+
[https://github.com/sourceryinstitute/opencoarrays/edit/master/src/tests/integration/pde_solvers/README.txt]:#
4+
5+
Partial Differential Equation (PDE) Solvers
6+
===========================================
7+
8+
This directory contains three PDE solvers listed here in order from simplest to most complex:
9+
10+
* A one-dimensional (1D) finite-difference, unsteady [heat equation solver],
11+
* A 1D finite-difference, unsteady, nonlinear [Burgers equation solver], and
12+
* A three-dimensional (3D), unsteady, spectral [Navier-Stokes equation solver].
13+
14+
The first two solvers contain correctness checks that result in the printing of the
15+
message "Test passed" before terminating a correct execution. For more details on the
16+
heat equation solver please view the [Sourcery Institute] [tutorial videos] online.
17+
18+
For more details on the Burgers solver, please see Chapter 12 of the textbook
19+
[Scientific Sofware Design] or the open-access journal article
20+
"[High Performance Design Patterns for Modern Fortran]." The [coarrayBurgers]
21+
subdirectory includes a [run.sh] launch script that works inside the open-source
22+
Linux virtual machine available in the Sourcery Institute [store].
23+
24+
The launch script instruments the Burgers solver for performance analysis using the
25+
open-source Tuning and Analysis Utilities ([TAU]) package. The instrumented Burgers
26+
solver has been demonstrated to execute with 87% parallel efficiency on 16,384
3627
cores in weak scaling when compiled with the Cray Compiler Environment. For
3728
new scalabiliby studies, it is important to run problems of sufficient size.
38-
See one of the following two publications for additional information:
39-
40-
[1] Haveraaen, M., K. Morris, D. W. I. Rouson, H. Radhakrishnan, and C. Carson
41-
(2014) “High- performance design patterns for modern Fortran,” Scientific
42-
Programming, in review.
4329

44-
[2] Haveraaen, M., K. Morris, and D. W. I. Rouson (2013) “High-performance design
45-
patterns for modern Fortran,” First International Workshop on Software
46-
Engineering for High Performance Computing in Computational Science and
47-
Engineering, Denver, Colorado, USA. November 22.
30+
The Navier-Stokes solver uses Fourier-spectral methods and Runge-Kutta time advancement
31+
to simulate the evolution of statistically homogeneous turbulent flow in a 3D box with
32+
periodic boundary conditions. For performance and complexity comparisons, the
33+
[navier-stokes] subdirectory contains both a Message Passing Interface (MPI) version
34+
and a coarray Fortran (CAF) version of the same solution algorithm.
35+
36+
[heat equation solver]: ./coarrayHeatSimplified
37+
[Burgers equation solver]: ./coarrayBurgers
38+
[Navier-Stokes equation solver]: ./navier-stokes
39+
[Sourcery Institute]: http://www.sourceryinstitute.org
40+
[tutorial videos]: http://www.sourceryinstitute.org/videos
41+
[Scientific Sofwtware Design]: http://www.cambridge.org/rouson
42+
[High Performance Design Patterns for Modern Fortran]: http://www.hindawi.com/journals/sp/2015/942059/
43+
[store]: http://www.sourceryinstitute.org/store
44+
[coarrayBurgers]: ./coarrayBurgers
45+
[run.sh]: ./coarrayBurgers/run.sh
46+
[TAU]: http://tau.uoregon.edu
47+
[navier-stokes]: ./navier-stokes

0 commit comments

Comments
 (0)