Changes between Version 24 and Version 25 of Public/User_Guide/OmpSs-2
- Timestamp:
- Jun 11, 2019, 5:10:07 PM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Public/User_Guide/OmpSs-2
v24 v25 75 75 76 76 System affinity can be used to specify, for example, the ratio of MPI and OmpSs-2 processes for a hybrid application and can be modified by user request in different ways: 77 * Via SLURM. However, if the affinity does not correspond to the resources requested like in the previous example, it should be reported to system admins.77 * Via SLURM. However, if the affinity does not correspond to the resources requested like in the previous example, it should be reported to the system administrators. 78 78 * Via the command `numactl`. 79 79 * Via the command `taskset`. … … 94 94 == Controlling available threads == 95 95 96 In order to limit or constraint the available threads for an application, the Unix ''taskset'' tool can be used to launch applications with a given thread affinity. In order to use taskset, simply precede the application's binary with ''taskset''followed by a list of CPU IDs specifying the desired affinity:96 In order to limit or constraint the available threads for an application, the Unix **taskset** tool can be used to launch applications with a given thread affinity. In order to use taskset, simply precede the application's binary with taskset followed by a list of CPU IDs specifying the desired affinity: 97 97 98 98 `taskset -c 0,2-4 ./application` 99 99 100 The example above will run ''application''with 4 cores: 0, 2, 3, 4.100 The example above will run **application** with 4 cores: 0, 2, 3, 4. 101 101 102 102 == Dependency graphs == 103 103 104 Nanos6 allows for a graphical representation of data dependencies to be extracted. In order to generate said graph, run the application with the ''NANOS6'' environment variable set to ''graph'':104 Nanos6 allows for a graphical representation of data dependencies to be extracted. In order to generate said graph, run the application with the **NANOS6** environment variable set to **graph**: 105 105 106 106 `NANOS6=graph ./application` … … 110 110 `NANOS6_GRAPH_SHORTEN_FILENAMES=1` 111 111 112 The result will be a PDF file with several pages, each representing the graph at a certain point in time. For best results, we suggest to display the PDF with ''single page''view, showing a full page and to advance page by page.112 The result will be a PDF file with several pages, each representing the graph at a certain point in time. For best results, we suggest to display the PDF with **single page** view, showing a full page and to advance page by page. 113 113 114 114 == Obtaining statistics == … … 116 116 Another equally interesting feature of Nanos6 is obtaining statistics. To do so, simply run the application as: 117 117 118 `NANOS6=stats ./application` or `NANOS6=stats-papi ./application`118 `NANOS6=stats ./application` or also `NANOS6=stats-papi ./application` 119 119 120 120 The first collects timing statistics while the second also records hardware counters (compilation with PAPI is needed for the second). By default, the statistics are emitted standard error when the program ends. … … 122 122 == Tracing with Extrae == 123 123 124 A ''trace.sh''file can be used to include all the environment variables needed to get an instrumentation trace of the execution. The content of this file is as follows:124 A **trace.sh** file can be used to include all the environment variables needed to get an instrumentation trace of the execution. The content of this file is as follows: 125 125 126 126 {{{ … … 131 131 }}} 132 132 133 Additionally, you will need to change your running script in order to invoke the program through this ''trace.sh'' script. Although you can also edit your running script adding all the environment variables related with the instrumentation, it is preferable to use this extra script to easily change between instrumented and non-instrumented executions. When in need to instrument your execution, simply include ''trace.sh'' before the program invocation. Note that the ‘’extrae.xml’’file, which is used to configure the Extrae library to get a Paraver trace, is also needed.133 Additionally, you will need to change your running script in order to invoke the program through this trace.sh script. Although you can also edit your running script adding all the environment variables related with the instrumentation, it is preferable to use this extra script to easily change between instrumented and non-instrumented executions. When in need to instrument your execution, simply include trace.sh before the program invocation. Note that the **extrae.xml** file, which is used to configure the Extrae library to get a Paraver trace, is also needed. 134 134 135 135 = Example: Multisaxpy = 136 137 The examples shown here are publicly available at [https://pm.bsc.es/gitlab/ompss-2/examples].138 136 139 137 Users must clone/download this example's repository from [https://pm.bsc.es/gitlab/ompss-2/examples/multisaxpy] and transfer it to a DEEP working directory.