Update Documentation authored by Camille Coti's avatar Camille Coti
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
``` ```
module use $HOME/x86/modulefiles module use $HOME/x86/modulefiles
module load openblas/git cuda gcc hwloc cmake automake autoconf cmake module load openblas/git cuda gcc hwloc cmake automake autoconf cmake starpu tau2
``` ```
## StarPU ## StarPU
...@@ -39,6 +39,8 @@ with this line: ...@@ -39,6 +39,8 @@ with this line:
## Apex ## Apex
### Installation
Clone it. The StarPU support is on my fork: Clone it. The StarPU support is on my fork:
``` ```
git clone git@github.com:coti/apex.git git clone git@github.com:coti/apex.git
...@@ -57,6 +59,8 @@ Apex installs some dependencies if it cannot find them, so we need to set the `L ...@@ -57,6 +59,8 @@ Apex installs some dependencies if it cannot find them, so we need to set the `L
export LD_LIBRARY_PATH=~/x86/apex/install//binutils/lib:~/x86/apex/install/otf2/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=~/x86/apex/install//binutils/lib:~/x86/apex/install/otf2/lib:$LD_LIBRARY_PATH
``` ```
### Run StarPU applications using Apex
Then... voilà Then... voilà
``` ```
~/x86/apex/install/bin/apex_exec --apex:cuda ./axpy ~/x86/apex/install/bin/apex_exec --apex:cuda ./axpy
...@@ -147,6 +151,8 @@ dot -Tpng taskgraph.0.dot > taskgraph.0.png ...@@ -147,6 +151,8 @@ dot -Tpng taskgraph.0.dot > taskgraph.0.png
## TAU ## TAU
### Installation
Clone it from the public repository: Clone it from the public repository:
``` ```
git clone https://github.com/UO-OACISS/tau2.git git clone https://github.com/UO-OACISS/tau2.git
...@@ -171,6 +177,8 @@ A few notes: ...@@ -171,6 +177,8 @@ A few notes:
- Support for Cuda can be added, with options like `-cupti` and `-cuda`. I don't have first-hand experience with the OpenCl support, but I know it exists. - Support for Cuda can be added, with options like `-cupti` and `-cuda`. I don't have first-hand experience with the OpenCl support, but I know it exists.
- The last configure command that was executed is kept in `.last_config`. All the configure commands that were executed previously are kept in `.all_config`. - The last configure command that was executed is kept in `.last_config`. All the configure commands that were executed previously are kept in `.all_config`.
### Profile a StarPU application using TAU
I have put an example in `examples/starpu`. Compile it with `make`. An executable `mult` is created, execute it using: I have put an example in `examples/starpu`. Compile it with `make`. An executable `mult` is created, execute it using:
``` ```
...@@ -200,6 +208,18 @@ Makefile mult mult.o profile.0.0.1 profile.0.0.11 profile.0.0.13 ...@@ -200,6 +208,18 @@ Makefile mult mult.o profile.0.0.1 profile.0.0.11 profile.0.0.13
README mult.c profile.0.0.0 profile.0.0.10 profile.0.0.12 profile.0.0.14 profile.0.0.2 profile.0.0.4 profile.0.0.6 profile.0.0.8 README mult.c profile.0.0.0 profile.0.0.10 profile.0.0.12 profile.0.0.14 profile.0.0.2 profile.0.0.4 profile.0.0.6 profile.0.0.8
``` ```
They can be packed into a single file using `paraprof`:
```
coti@voltar:~/x86/tau2/examples/starpu$ paraprof --pack starpu_mult.ppk
Loading data...
Packing data...
coti@voltar:~/x86/tau2/examples/starpu$ ls *ppk
starpu_mult.ppk
```
### Text-based profiling information
You can see the text-based representation of the profile using `pprof`: You can see the text-based representation of the profile using `pprof`:
``` ```
coti@voltar:~/x86/tau2/examples/starpu$ pprof coti@voltar:~/x86/tau2/examples/starpu$ pprof
...@@ -287,3 +307,17 @@ FUNCTION SUMMARY (mean): ...@@ -287,3 +307,17 @@ FUNCTION SUMMARY (mean):
For instance, we have the file and line number where `cpu_mult` is defined. For instance, we have the file and line number where `cpu_mult` is defined.
### Visualization
This profiling information can also be visualized using `paraprof`.
```
$ paraprof starpu_mult.ppk
```
Paraprof's interface is quite rich and I don't know each of its bits. Don't hesitate to click everywith in the `window` menu.
NB: if you want to install TAU on your local machine only to have tools such as `paraprof`, you can simply configure it with `./configure`.
### Tracing using TAU
TAU can be used to trace programs by setting the `TAU_TRACE` environment variable to 1.
\ No newline at end of file