001033842 001__ 1033842 001033842 005__ 20250822121437.0 001033842 0247_ $$2doi$$a10.5281/ZENODO.12586484 001033842 037__ $$aFZJ-2024-06683 001033842 041__ $$aEnglish 001033842 1001_ $$00000-0002-5699-1793$$aGarcia de Gonzalo, Simon$$b0 001033842 1112_ $$aThe International Conference for High Performance Computing, Networking, Storage, and Analysis 2024$$cAtlanta, GA$$d2024-11-17 - 2024-11-22$$gSC24$$wUSA 001033842 245__ $$aEfficient Distributed GPU Programming for Exascale 001033842 260__ $$c2024 001033842 3367_ $$033$$2EndNote$$aConference Paper 001033842 3367_ $$2DataCite$$aOther 001033842 3367_ $$2BibTeX$$aINPROCEEDINGS 001033842 3367_ $$2DRIVER$$aconferenceObject 001033842 3367_ $$2ORCID$$aLECTURE_SPEECH 001033842 3367_ $$0PUB:(DE-HGF)6$$2PUB:(DE-HGF)$$aConference Presentation$$bconf$$mconf$$s1736234695_13392$$xAfter Call 001033842 520__ $$aOver the past decade, GPUs became ubiquitous in HPC installations around the world, delivering the majority of performance of some of the largest supercomputers (e.g. Summit, Sierra, JUWELS Booster). This trend continues in the recently deployed and upcoming Pre-Exascale and Exascale systems (JUPITER, LUMI, Leonardo; El Capitan, Frontier, Aurora): GPUs are chosen as the core computing devices to enter this next era of HPC.To take advantage of future GPU-accelerated systems with tens of thousands of devices, application developers need to have the proper skills and tools to understand, manage, and optimize distributed GPU applications.In this tutorial, participants will learn techniques to efficiently program large-scale multi-GPU systems. While programming multiple GPUs with MPI is explained in detail, also advanced tuning techniques and complementing programming models like NCCL and NVSHMEM are presented. Tools for analysis are shown and used to motivate and implement performance optimizations. The tutorial teaches fundamental concepts that apply to GPU-accelerated systems in general, taking the NVIDIA platform as an example. It is a combination of lectures and hands-on exercises, using a development system for JUPITER (JEDI), for interactive learning and discovery. 001033842 536__ $$0G:(DE-HGF)POF4-5122$$a5122 - Future Computing & Big Data Systems (POF4-512)$$cPOF4-512$$fPOF IV$$x0 001033842 536__ $$0G:(DE-HGF)POF4-5112$$a5112 - Cross-Domain Algorithms, Tools, Methods Labs (ATMLs) and Research Groups (POF4-511)$$cPOF4-511$$fPOF IV$$x1 001033842 536__ $$0G:(DE-Juel-1)ATML-X-DEV$$aATML-X-DEV - ATML Accelerating Devices (ATML-X-DEV)$$cATML-X-DEV$$x2 001033842 588__ $$aDataset connected to DataCite 001033842 7001_ $$0P:(DE-Juel1)145478$$aHerten, Andreas$$b1$$eCorresponding author 001033842 7001_ $$0P:(DE-Juel1)180799$$aHrywniak, Markus$$b2$$ufzj 001033842 7001_ $$0P:(DE-Juel1)137023$$aKraus, Jiri$$b3$$ufzj 001033842 7001_ $$0P:(DE-Juel1)188270$$aOden, Lena$$b4$$ufzj 001033842 773__ $$a10.5281/ZENODO.12586484 001033842 8564_ $$uhttps://github.com/FZJ-JSC/tutorial-multi-gpu/ 001033842 909CO $$ooai:juser.fz-juelich.de:1033842$$pVDB 001033842 9101_ $$0I:(DE-588b)5008462-8$$6P:(DE-Juel1)145478$$aForschungszentrum Jülich$$b1$$kFZJ 001033842 9101_ $$0I:(DE-588b)5008462-8$$6P:(DE-Juel1)180799$$aForschungszentrum Jülich$$b2$$kFZJ 001033842 9101_ $$0I:(DE-588b)5008462-8$$6P:(DE-Juel1)137023$$aForschungszentrum Jülich$$b3$$kFZJ 001033842 9101_ $$0I:(DE-588b)5008462-8$$6P:(DE-Juel1)188270$$aForschungszentrum Jülich$$b4$$kFZJ 001033842 9131_ $$0G:(DE-HGF)POF4-512$$1G:(DE-HGF)POF4-510$$2G:(DE-HGF)POF4-500$$3G:(DE-HGF)POF4$$4G:(DE-HGF)POF$$9G:(DE-HGF)POF4-5122$$aDE-HGF$$bKey Technologies$$lEngineering Digital Futures – Supercomputing, Data Management and Information Security for Knowledge and Action$$vSupercomputing & Big Data Infrastructures$$x0 001033842 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-5112$$aDE-HGF$$bKey Technologies$$lEngineering Digital Futures – Supercomputing, Data Management and Information Security for Knowledge and Action$$vEnabling Computational- & Data-Intensive Science and Engineering$$x1 001033842 9141_ $$y2024 001033842 920__ $$lyes 001033842 9201_ $$0I:(DE-Juel1)JSC-20090406$$kJSC$$lJülich Supercomputing Center$$x0 001033842 980__ $$aconf 001033842 980__ $$aVDB 001033842 980__ $$aI:(DE-Juel1)JSC-20090406 001033842 980__ $$aUNRESTRICTED