001049812 001__ 1049812 001049812 005__ 20260108204824.0 001049812 0247_ $$2doi$$a10.5281/ZENODO.17804012 001049812 037__ $$aFZJ-2025-05596 001049812 1001_ $$00000-0002-5699-1793$$aGarcia de Gonzalo, Simon$$b0 001049812 1112_ $$aThe International Conference for High Performance Computing$$cSt. Louis$$d2025-11-16 - 2025-11-22$$gSC25$$wUSA 001049812 245__ $$aEfficient Distributed GPU Programming for Exascale 001049812 260__ $$c2025 001049812 3367_ $$033$$2EndNote$$aConference Paper 001049812 3367_ $$2DataCite$$aOther 001049812 3367_ $$2BibTeX$$aINPROCEEDINGS 001049812 3367_ $$2DRIVER$$aconferenceObject 001049812 3367_ $$2ORCID$$aLECTURE_SPEECH 001049812 3367_ $$0PUB:(DE-HGF)6$$2PUB:(DE-HGF)$$aConference Presentation$$bconf$$mconf$$s1767859557_29667$$xAfter Call 001049812 500__ $$aTutorial 001049812 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, steadily increasing the available compute capacity. Finally, four exascale systems are deployed (Frontier, Aurora, El Capitan, JUPITER), using GPUs as the core computing devices for this era of HPC. To take advantage of these 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 of any vendor in general, taking the NVIDIA platform as an example. It is a combination of lectures and hands-on exercises, using the JUPITER system for interactive learning and discovery. 001049812 536__ $$0G:(DE-HGF)POF4-5112$$a5112 - Cross-Domain Algorithms, Tools, Methods Labs (ATMLs) and Research Groups (POF4-511)$$cPOF4-511$$fPOF IV$$x0 001049812 536__ $$0G:(DE-HGF)POF4-5122$$a5122 - Future Computing & Big Data Systems (POF4-512)$$cPOF4-512$$fPOF IV$$x1 001049812 536__ $$0G:(DE-Juel-1)ATML-X-DEV$$aATML-X-DEV - ATML Accelerating Devices (ATML-X-DEV)$$cATML-X-DEV$$x2 001049812 588__ $$aDataset connected to DataCite 001049812 7001_ $$0P:(DE-Juel1)145478$$aHerten, Andreas$$b1$$eCorresponding author 001049812 7001_ $$0P:(DE-Juel1)180799$$aHrywniak, Markus$$b2$$ufzj 001049812 7001_ $$0P:(DE-Juel1)137023$$aKraus, Jiri$$b3$$ufzj 001049812 7001_ $$0P:(DE-Juel1)188270$$aOden, Lena$$b4$$ufzj 001049812 7001_ $$00000-0003-1433-9198$$aAppelhans, David$$b5 001049812 773__ $$a10.5281/ZENODO.17804012 001049812 8564_ $$uhttps://github.com/FZJ-JSC/tutorial-multi-gpu/ 001049812 909CO $$ooai:juser.fz-juelich.de:1049812$$pVDB 001049812 9101_ $$0I:(DE-588b)5008462-8$$6P:(DE-Juel1)145478$$aForschungszentrum Jülich$$b1$$kFZJ 001049812 9101_ $$0I:(DE-588b)5008462-8$$6P:(DE-Juel1)180799$$aForschungszentrum Jülich$$b2$$kFZJ 001049812 9101_ $$0I:(DE-588b)5008462-8$$6P:(DE-Juel1)137023$$aForschungszentrum Jülich$$b3$$kFZJ 001049812 9101_ $$0I:(DE-588b)5008462-8$$6P:(DE-Juel1)188270$$aForschungszentrum Jülich$$b4$$kFZJ 001049812 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$$x0 001049812 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$$x1 001049812 920__ $$lyes 001049812 9201_ $$0I:(DE-Juel1)JSC-20090406$$kJSC$$lJülich Supercomputing Center$$x0 001049812 980__ $$aconf 001049812 980__ $$aVDB 001049812 980__ $$aI:(DE-Juel1)JSC-20090406 001049812 980__ $$aUNRESTRICTED