Changes between Version 8 and Version 9 of Public/User_Guide/Offloading_hybrid_apps
- Timestamp:
- Sep 17, 2019, 3:12:32 PM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Public/User_Guide/Offloading_hybrid_apps
v8 v9 13 13 == N-Body Benchmark == 14 14 15 Users can clone or download this examples from the https://pm.bsc.es/gitlab/DEEP-EST/apps/NBody15 Users can clone or download this examples from the [https://pm.bsc.es/gitlab/DEEP-EST/apps/NBody] 16 16 repository and transfer it to a DEEP working directory. 17 17 … … 36 36 * '''!OmpSs-2''': !OmpSs-2 is the second generation of the '''!OmpSs''' programming model. It is a task-based 37 37 programming model originated from the ideas of the OpenMP and !StarSs programming models. The 38 specification and user-guide are available at https://pm.bsc.es/ompss-2-docs/spec/and39 https://pm.bsc.es/ompss-2-docs/user-guide/, respectively. !OmpSs-2 requires both '''Mercurium''' and38 specification and user-guide are available at [https://pm.bsc.es/ompss-2-docs/spec/] and 39 [https://pm.bsc.es/ompss-2-docs/user-guide/], respectively. !OmpSs-2 requires both '''Mercurium''' and 40 40 '''Nanos6''' tools. Mercurium is a source-to-source compiler which provides the necessary support for 41 41 transforming the high-level directives into a parallelized version of the application. The Nanos6 42 42 runtime system library provides the services to manage all the parallelism in the application 43 (e.g., task creation, synchronization, scheduling, etc). Downloads at https://github.com/bsc-pm.43 (e.g., task creation, synchronization, scheduling, etc). Downloads at [https://github.com/bsc-pm]. 44 44 * '''Clang + LLVM OpenMP''' (derived): 45 45 * '''MPI''': This application requires an MPI library supporting the multi-threading level of … … 51 51 the N-body kernels are executed on the available GPU devices. 52 52 * '''Task-Aware MPI (TAMPI)''': The Task-Aware MPI library provides the interoperability mechanism 53 for MPI and OpenMP/!OmpSs-2. Downloads and more information at https://github.com/bsc-pm/tampi.53 for MPI and OpenMP/!OmpSs-2. Downloads and more information at [https://github.com/bsc-pm/tampi]. 54 54 55 55 === Versions === … … 98 98 $ source ./setenv_deep.sh 99 99 100 # Compile the code100 # Compile all N-Body variants 101 101 $ make 102 102 }}} … … 104 104 The benchmark versions are built with a specific block size, which is 105 105 decided at compilation time (i.e., the binary names contain the block 106 size). The default block size of the benchmark is `2048`. Optionally,107 you can indicatea different block size when compiling by doing:106 size). The default block size is `2048`. Optionally, you can indicate 107 a different block size when compiling by doing: 108 108 109 109 {{{#!bash … … 114 114 this benchmarks targets the offloading of computational tasks to the Unified 115 115 Memory GPU devices, we must execute it in a DEEP partition that features this 116 kind of devices. A good example is the `dp-dam` partition, where each nodes117 features:116 kind of devices. A good example is the [wiki:Public/User_Guide/DEEP-EST_DAM dp-dam] 117 partition, where each nodes features: 118 118 119 119 * 2x Intel® Xeon® Platinum 8260M CPU @ 2.40GHz (24 cores/socket, 2 threads/core), '''96 CPUs/node''' … … 161 161 is kept but the CUDA tasks are replaced by regular CPU tasks. 162 162 163 Finally, the OpenMP variants can be executed similarly, but setting the `OMP_NUM_THREADS` 164 t o the corresponding number of CPUs per process. As an example, we could execute the165 following command:163 Similarly, the OpenMP variants can be executed following the same steps but setting 164 the `OMP_NUM_THREADS` to the corresponding number of CPUs per process. As an example, 165 we could execute the following command: 166 166 167 167 {{{#!bash … … 169 169 }}} 170 170 171 Finally, if you want to execute the benchmark without using an interactive session, you 172 can modify the `submit.job` script and submit it into the job queue through the `sbatch` 173 command. 174 171 175 == References == 172 176 173 177 * [https://pm.bsc.es/ompss-2] 178 * [https://github.com/bsc-pm] 179 * [https://github.com/bsc-pm/tampi] 180 * [https://en.wikipedia.org/wiki/N-body_simulation] 181 * [https://pm.bsc.es/gitlab/DEEP-EST/apps/NBody]