CAMP First GPU Solver: A Solution to Accelerate Chemistry in Atmospheric Models
7th ENES workshop
Christian Guzman Ruiz, Mario C. Acosta, Matthew Dawson*, Oriol Jorba, Carlos Pérez García-Pando, Kim Serradell
Barcelona SuperComputing Center
*National Center for Atmospheric Research (NCAR)
BSC Departments
2
Introduction | Background | Implementation | Test environment | Results | Conclusions
Background
Atmospheric models
Atmospheric models are a mathematical representation of atmospheric water, gas, and aerosol cycles.
Introduction | Background | Implementation | Test environment | Results | Conclusions
Atmospheric models
Atmospheric models are a mathematical representation of atmospheric water, gas, and aerosol cycles.
Resolution of chemical processes can take up to 90% of the time execution! (Christou et al., 2016)
Introduction | Background | Implementation | Test environment | Results | Conclusions
State of the art - KPP GPU
6
Michail Alvanos and Theodoros Christoudia, GPU-accelerated atmospheric chemical kinetics in the ECHAM/MESSy (EMAC) Earth system model , 2017
Introduction | Background | Implementation | Test environment | Results | Conclusions
CAMP: Chemistry Across Multiple Phases
Dawson, Guzman, Curtis, Acosta, et. al., Chemistry Across Multiple Phases (CAMP) version 1.0, GMD 2022
Introduction | Background | Implementation | Test environment | Results | Conclusions
CAMP: Chemistry Across Multiple Phases
Dawson, Guzman, Curtis, Acosta, et. al., Chemistry Across Multiple Phases (CAMP) version 1.0, GMD 2022
Our objective!
Introduction | Background | Implementation | Test environment | Results | Conclusions
CAMP CPU Solver
Introduction | Background | Implementation | Test environment | Results | Conclusions
Implementation
Block-cells (GPU parallelization strategy)
Guzman et. al. Studying a new GPU treatment for chemical modules inside CAMP, 19th ECMWF Workshop
Introduction | Background | Implementation | Test environment | Results | Conclusions
Block-cells (GPU parallelization strategy)
Guzman et. al. Studying a new GPU treatment for chemical modules inside CAMP, 19th ECMWF Workshop
Introduction | Background | Implementation | Test environment | Results | Conclusions
Communicating data between threads
Introduction | Background | Implementation | Test environment | Results | Conclusions
Test environment
Hardware
15
Introduction | Background | Implementation | Test environment | Results | Conclusions
Software configuration
16
Architecture | Parallel resources | Parallelization language |
CPU | 1, 40 | MPI |
GPU | Nº of different chemical concentrations (species x cells) | CUDA |
Introduction | Background | Implementation | Test environment | Results | Conclusions
Results
Speed-up
Introduction | Background | Implementation | Test environment | Results | Conclusions
Speed-up against 40 processes
Introduction | Background | Implementation | Test environment | Results | Conclusions
Kernel profiling
Introduction | Background | Implementation | Test environment | Results | Conclusions
Conclusions
Conclusions
22
Introduction | Background | Implementation | Test environment | Results | Conclusions
Future work
23
Introduction | Background | Implementation | Test environment | Results | Conclusions
Thank you
christian.guzman@bsc.es