Close

Presentation

Flood simulation: An assignment for OpenMP, MPI, and CUDA/HIP/OpenCL
DescriptionWe present an assignment successfully implemented in a third-year Parallel Computing course of a Computer Engineering degree program. Since 2017/2018, we have proposed a different problem each academic year to illustrate the conceptual and technical differences of using different parallel programming models. The problem chosen for this year implements a flood simulation. Cloud fronts move across a scenario, dropping water. The simulation computes the flow of water from the highest ground to the lowest ground, leaking out at the scenario boundaries or accumulating in sinks and dams to form pools and lakes. The assignment addresses foundational concepts, such as race conditions, reductions, collective operations, and point-to-point communications. It also offers critical choices related to cache-aware programming or using atomic operations vs. more memory accesses with ancillary structures. The supporting materials for previous assignments in this series are available at https://gamuva.infor.uva.es/peachy-assignments/