Skip to content

Commit

Permalink
Merge pull request #2204 from betterscientificsoftware/curfman-patch-1
Browse files Browse the repository at this point in the history
Update ReviewCFDPerformancePortability.md
  • Loading branch information
curfman authored Nov 26, 2024
2 parents f7226fb + 14bd0ed commit 57d1505
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions CuratedContent/ReviewCFDPerformancePortability.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## Balancing Productivity, Portability and Performance in CFD

<!--- deck text start --->
How to identify the appropriate level of abstraction when balancing the "Three Ps" in CFD applications.
This article discusses how to identify an appropriate level of abstraction when balancing the "Three Ps" in CFD applications.
<!--- deck text end --->

#### Contributed by [Mark C. Miller](https://github.com/markcmiller86)
Expand All @@ -14,15 +14,15 @@ Authors | István Z. Reguly, Gihan R. Mudalige
Publication | Year 2020, Computers and Fluids, DOI: [10.1016/j.compfluid.2020.104425](https://doi.org/10.1016/j.compfluid.2020.104425)

This journal article discusses the evolving landscape of high performance computing (HPC) architectures over the past decade and their implications for computational fluid dynamics (CFD) applications in particular.
It focuses on balancing the "Three Ps"; Productivity, Portability and Performance.
The paper focuses on balancing the "Three Ps"; Productivity, Portability and Performance.
Traditional programming approaches struggle to adequately address all three goals simultaneously.
Some recent technology introductions involving template libraries and Domain Specific Languages (DSLs) offer potential solutions by sacrificing generality for specialized focus.

The paper reviews various high-level libraries and low-level techniques that aid in describing partial differential equations (PDEs) symbolically and targeting specific algorithmic patterns respectively.
It also examines the benefits and challenges of these methods, including their performance on different hardware architectures and with different programming models.
The article also examines the benefits and challenges of these methods, including their performance on different hardware architectures and with different programming models.

Significantly, the paper details the tension between maximizing performance and ensuring portability and productivity.
It discusses the adoption of separate computational accelerators like GPUs, which have led to a heterogeneous computing environment.
It discusses the adoption of separate computational accelerators like GPUs, which have led to heterogeneous computing environments.
This has necessitated the development of new programming paradigms and tools that separate the *what* of computation from the *how*, moving away from traditional imperative programming languages like C or Fortran.

Furthermore, the article discusses various software libraries and tools that have been developed to target specific problem domains in CFD, which help address these challenges by offering a balance between performance, portability, and productivity.
Expand Down

0 comments on commit 57d1505

Please sign in to comment.