Changes between Version 15 and Version 16 of Public/User_Guide/Offloading_hybrid_apps


Ignore:
Timestamp:
Sep 17, 2019, 5:55:11 PM (5 years ago)
Author:
Kevin Sala
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Public/User_Guide/Offloading_hybrid_apps

    v15 v16  
    1010== Quick Overview ==
    1111
    12 Current and near-future High Performance Computing (HPC) systems consists of
     12Current and near-future High Performance Computing (HPC) systems consist of
    1313thousands of parallel computing nodes, connected by high-bandwidth network
    1414interconnections, and in most of the cases, each node leveraging one or more
     
    2828we can execute on the DEEP system.
    2929
     30On the one hand, OpenMP provides the `target` directive which is the one used for
     31offloading computational parts of OpenMP programs to the GPUs. It provides multiple
     32clauses for specifying the copy directionality of the data, how the computational workload
     33is distributed, the data dependencies, etc. The user can annotate a part of the program
     34inside using the `target` directive and without having to program that part with a special
     35programming language. For instance, when offloading a part of the program to NVIDIA GPUs,
     36the user is not required to provide any implementation in CUDA. That part of the program
     37is handled transparently by the compiler.
     38
     39On the other hand, !OmpSs-2 proposes another approach targeting NVIDIA Unified Memory
     40devices. CUDA kernels can be annotated as tasks declaring the corresponding data dependencies
     41on the data buffers, so that, when all the dependencies of a task are satisfied, the CUDA
     42kernel associated is offloaded to one of the available GPUs. In order to use that functionality,
     43the user only has to allocate the buffers that CUDA kernels will access as a Unified Memory
     44buffers (using the `cudaMallocManaged()` function).
     45
    3046== N-Body Benchmark ==
    3147
    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 ===
    3748An N-Body simulation numerically approximates the evolution of a system of
    3849bodies in which each body continuously interacts with every other body.  A
     
    4657global illumination computation in computer graphics are other examples of
    4758problems that use N-Body simulation.
     59
     60Users can clone or download this examples from the [https://pm.bsc.es/gitlab/DEEP-EST/apps/NBody]
     61repository and transfer it to a DEEP working directory.
    4862
    4963=== Requirements ===