001052674 001__ 1052674 001052674 005__ 20260127203443.0 001052674 0247_ $$2datacite_doi$$a10.34734/FZJ-2026-01046 001052674 037__ $$aFZJ-2026-01046 001052674 041__ $$aEnglish 001052674 1001_ $$0P:(DE-Juel1)132590$$aMohanty, Sandipan$$b0$$eCorresponding author 001052674 1112_ $$aJSC - as part of the Training Programme of Forschungszentrum Jülich$$cJülich$$d2025-10-27 - 2025-10-30$$wGermany 001052674 245__ $$aHigh Performance Scientific Computing in C++ – 2025 001052674 260__ $$c2025 001052674 3367_ $$2DRIVER$$alecture 001052674 3367_ $$031$$2EndNote$$aGeneric 001052674 3367_ $$2BibTeX$$aMISC 001052674 3367_ $$0PUB:(DE-HGF)17$$2PUB:(DE-HGF)$$aLecture$$blecture$$mlecture$$s1769441467_4222$$xOther 001052674 3367_ $$2ORCID$$aLECTURE_SPEECH 001052674 3367_ $$2DataCite$$aText 001052674 520__ $$aModern C++, with its support for procedural, objected oriented, generic and functional programming styles, offers many powerful abstraction mechanisms to express complexity at a high level while remaining very efficient. It is therefore the language of choice for many scientific projects. The arrival of the newer language standards such as C++23, every three years, regularly opens up new abstraction mechanisms and new exciting ways to organize code at all levels. However, achieving high performance by today's standards requires understanding and exploiting multiple levels of parallelism, as well as understanding C++ code from a performance centric viewpoint.In this course, the participants learn how to write C++ programs which better utilize typical HPC hardware resources of the present day. The course is geared towards scientists and engineers already familiar with C++20 (at least C++17), who wish to develop maintainable and fast applications. The course introduces novel ways, now available to C++ programmers, to write expressive, maintainable and fast code. The participants learn techniques to better utilize CPU caches, instruction pipelines, SIMD functionality and multi-threading. Shared memory parallel programming on multiple CPU cores will be introduced using standard C++ parallel STL and Intel (R) Threading Building Blocks. The participants will also learn basic GPGPU programming using C++ template based generic programming techniques. 001052674 536__ $$0G:(DE-HGF)POF4-5111$$a5111 - Domain-Specific Simulation & Data Life Cycle Labs (SDLs) and Research Groups (POF4-511)$$cPOF4-511$$fPOF IV$$x0 001052674 8564_ $$uhttps://gitlab.jsc.fz-juelich.de/sdlbio-courses/hpcxx2025 001052674 8564_ $$uhttps://juser.fz-juelich.de/record/1052674/files/hpcxx2025.pdf$$yOpenAccess 001052674 909CO $$ooai:juser.fz-juelich.de:1052674$$popenaire$$popen_access$$pVDB$$pdriver 001052674 9101_ $$0I:(DE-588b)5008462-8$$6P:(DE-Juel1)132590$$aForschungszentrum Jülich$$b0$$kFZJ 001052674 9131_ $$0G:(DE-HGF)POF4-511$$1G:(DE-HGF)POF4-510$$2G:(DE-HGF)POF4-500$$3G:(DE-HGF)POF4$$4G:(DE-HGF)POF$$9G:(DE-HGF)POF4-5111$$aDE-HGF$$bKey Technologies$$lEngineering Digital Futures – Supercomputing, Data Management and Information Security for Knowledge and Action$$vEnabling Computational- & Data-Intensive Science and Engineering$$x0 001052674 915__ $$0StatID:(DE-HGF)0510$$2StatID$$aOpenAccess 001052674 920__ $$lyes 001052674 9201_ $$0I:(DE-Juel1)JSC-20090406$$kJSC$$lJülich Supercomputing Center$$x0 001052674 9801_ $$aFullTexts 001052674 980__ $$alecture 001052674 980__ $$aVDB 001052674 980__ $$aUNRESTRICTED 001052674 980__ $$aI:(DE-Juel1)JSC-20090406