Changes between Version 15 and Version 16 of Public/User_Guide/Offloading_hybrid_apps
- Timestamp:
- Sep 17, 2019, 5:55:11 PM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Public/User_Guide/Offloading_hybrid_apps
v15 v16 10 10 == Quick Overview == 11 11 12 Current and near-future High Performance Computing (HPC) systems consist sof12 Current and near-future High Performance Computing (HPC) systems consist of 13 13 thousands of parallel computing nodes, connected by high-bandwidth network 14 14 interconnections, and in most of the cases, each node leveraging one or more … … 28 28 we can execute on the DEEP system. 29 29 30 On the one hand, OpenMP provides the `target` directive which is the one used for 31 offloading computational parts of OpenMP programs to the GPUs. It provides multiple 32 clauses for specifying the copy directionality of the data, how the computational workload 33 is distributed, the data dependencies, etc. The user can annotate a part of the program 34 inside using the `target` directive and without having to program that part with a special 35 programming language. For instance, when offloading a part of the program to NVIDIA GPUs, 36 the user is not required to provide any implementation in CUDA. That part of the program 37 is handled transparently by the compiler. 38 39 On the other hand, !OmpSs-2 proposes another approach targeting NVIDIA Unified Memory 40 devices. CUDA kernels can be annotated as tasks declaring the corresponding data dependencies 41 on the data buffers, so that, when all the dependencies of a task are satisfied, the CUDA 42 kernel associated is offloaded to one of the available GPUs. In order to use that functionality, 43 the user only has to allocate the buffers that CUDA kernels will access as a Unified Memory 44 buffers (using the `cudaMallocManaged()` function). 45 30 46 == N-Body Benchmark == 31 47 32 Users can clone or download this examples from the [https://pm.bsc.es/gitlab/DEEP-EST/apps/NBody]33 repository and transfer it to a DEEP working directory.34 35 36 === Description ===37 48 An N-Body simulation numerically approximates the evolution of a system of 38 49 bodies in which each body continuously interacts with every other body. A … … 46 57 global illumination computation in computer graphics are other examples of 47 58 problems that use N-Body simulation. 59 60 Users can clone or download this examples from the [https://pm.bsc.es/gitlab/DEEP-EST/apps/NBody] 61 repository and transfer it to a DEEP working directory. 48 62 49 63 === Requirements ===