Back to Browse

Vectorizing Computational Fluid Dynamics (CFD) Code in C++ Using std::simd - Olaf Krzikalla - CppCon

4.5K views
Jan 7, 2025
1:00:11

https://cppcon.org​ --- Vectorizing a Computational Fluid Dynamics (CFD) Code in C++ Using std::simd Supplemented by (Almost) Transparent Loading and Storing - Olaf Krzikalla - CppCon 2024 --- Computational Fluid Dynamics (CFD) codes are ubiquitous in high performance computing. Their computational demands require the use of all levels of parallelism provided by the hardware. This includes the SIMD units of today's processors, which provide one level of data parallelism. With `std::simd`, it becomes possible to address these units directly from C++. The talk reports on our work on the vectorization of a CFD code. The focus will be primarily on the way we have expressed vectorization using `std::experimental::simd` and less on the achieved performance gains. In this context, we have developed a library that complements `std::simd`. The goal of this library is to make loading and saving `std::simd` variables syntactically equivalent to loading and saving their scalar counterparts. Loop bodies written for scalar variables can then be used for `std::simd` variables without modification. The talk also discusses some possible improvements to C++, since this goal can currently only be achieved by using a macro. --- Slides: https://github.com/CppCon/CppCon2024/blob/main/Presentations/Vectorizing_a_CFD_Code_With_stdsimd.pdf Sponsored by JetBrains: https://www.jetbrains.com/clion/ --- Olaf Krzikalla Olaf Krzikalla started using C++ as a student at the Technical University of Dresden in the mid-90s. After that he worked as a software developer for several companies. During this time he also contributed the first version of `boost::intrusive`. In 2009 Olaf joined the HPC Center of the TU Dresden and developed the vectorizing source-to-source compiler Scout. His PhD in computer science, also in Dresden, was on memory access analysis in distributed systems. Since 2017 Olaf works at the German Aerospace Center (DLR), where he can apply the results of his university work to the various CFD codes developed by the DLR. --- CppCon is the annual, week-long face-to-face gathering for the entire C++ community. The conference is organized by the C++ community for the community. You will enjoy inspirational talks and a friendly atmosphere designed to help attendees learn from each other, meet interesting people, and generally have a stimulating experience. Taking place this year in Aurora, Colorado, near the Denver airport, and including multiple diverse tracks, the conference will appeal to anyone from C++ novices to experts. Annual CppCon Conference - https://www.cppcon.org https://www.linkedin.com/company/cppcon https://x.com/cppcon https://www.facebook.com/CppConference https://www.reddit.com/r/cppcon/ https://mastodon.social/@CppCon --- Videos Filmed & Edited by Bash Films: http://www.BashFilms.com YouTube Channel Managed by Digital Medium Ltd: https://events.digital-medium.co.uk --- #cfd #cpp #cplusplus #cppcon #cppprogramming #cplusplusprogramming #softwaredevelopment #softwareengineering #coding #code #computerscience #technology #programming #programmer

Download

1 formats

Video Formats

360pmp4148.2 MB

Right-click 'Download' and select 'Save Link As' if the file opens in a new tab.

Vectorizing Computational Fluid Dynamics (CFD) Code in C++ Using std::simd - Olaf Krzikalla - CppCon | NatokHD