Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Paper on performance, portability and productivity trade offs #542

Open
markcmiller86 opened this issue Jun 22, 2020 · 7 comments
Open

Paper on performance, portability and productivity trade offs #542

markcmiller86 opened this issue Jun 22, 2020 · 7 comments
Assignees
Labels
content: curated For curated content

Comments

@markcmiller86
Copy link
Member

markcmiller86 commented Jun 22, 2020

I ran across a paper addressing at a high level the topics of performance, portability and productivity.
DOI: https://doi.org/10.1016/j.compfluid.2020.104425
Didn't read the entire paper but what I did read I found interesting. One weak area is that all of the arguments are expositions as opposed to tabularized or plotted quantitative analyses. Still, I think it potentially captures some of the high level trade offs quite well.

@markcmiller86 markcmiller86 changed the title Possible paper to reference Paper on performance, portability and productivity trade offs Jun 22, 2020
@rinkug rinkug added the content: curated For curated content label Jun 25, 2020
@bartlettroscoe
Copy link
Member

Seems like at least one person should read the entire paper before we endorse it by putting up a curated content article. I think we need to discuss what an "up" vote means at this stage of "Topic Review". Does it mean we like the area covered in the article and think it should be read in detail before deciding to create a PR or does it mean we will commit to create a PR for the article?

@bernhold
Copy link
Member

If I were reviewing this paper, I'd have some feedback for the authors. Assuming it has been successfully reviewed and published (Mark's link is a preprint), I think it could have some value as a CC article. Though we're opening the door to a vast number of individual performance portability studies, which might bear consideration. This particular paper summarizes a lot of other work. Would we be open to all of those individual articles, or only "reviews" like this one? I'd like to have a +0.5 thumb to vote on this one.

@pagrubel
Copy link
Member

Would this be the paper we should link to?
https://www.sciencedirect.com/science/article/pii/S0045793020300013

@pagrubel
Copy link
Member

@markcmiller86 markcmiller86 self-assigned this Sep 5, 2024
@markcmiller86 markcmiller86 added this to the 2024-10 Digest milestone Sep 5, 2024
@markcmiller86
Copy link
Member Author

I'll take this for October

@rinkug
Copy link
Member

rinkug commented Oct 2, 2024

@markcmiller86 : Can you take this up for november?

@rinkug rinkug modified the milestones: 2024-10 Digest, 2024-11 Digest Oct 2, 2024
@markcmiller86
Copy link
Member Author

Sure thing.

Capturing a ChatGPT summary here...

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. It highlights three main challenges faced by developers: achieving good performance, ensuring portability across current and future hardware, and maintaining productivity. Traditional programming approaches struggle to meet all three goals simultaneously, but recent advances in 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 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. 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. It mentions several notable libraries and frameworks, such as Kokkos and RAJA, which provide abstraction layers to facilitate portability across different computing environments while still aiming to harness optimal performance from the underlying hardware.

Overall, the article provides a comprehensive overview of the state-of-the-art techniques in programming for CFD within the context of modern and evolving HPC architectures, highlighting both the progress and ongoing challenges in the field.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
content: curated For curated content
Projects
Status: Ready to write
Development

No branches or pull requests

5 participants