Numalize is a memory tracing tool to detect communication (i.e. accesses to shared memory areas) and page usage of parallel applications that use shared-memory APIs (e.g. OpenMP and Pthreads). It is based on the Intel Pin Dynamic Binary Instrumentation (DBI) tool (https://software.intel.com/en-us/articles/pintool/).
- Intel Pin installation (https://software.intel.com/en-us/articles/pintool/). The
Makefile
tries to find your Pin installation in/home
and/opt
. You can override the path manually in the top of theMakefile
. Note that Pin version 3.x is currently required.
Compile numalize:
$ make PIN_ROOT=${YOUR_PIN_PATH}
Generate communication pattern:
$ ./run.sh -c -- ${YOUR PROGRAM AND ARGS}
Generate page access pattern:
$ ./run.sh -p -- ${YOUR PROGRAM AND ARGS}
Numalize is described in:
- Matthias Diener, Eduardo H. M. Cruz, Laércio L. Pilla, Fabrice Dupros, Philippe O. A. Navaux. “Characterizing Communication and Page Usage of Parallel Applications for Thread and Data Mapping.” Performance Evaluation, 2015. http://dx.doi.org/10.1016/j.peva.2015.03.001
- Matthias Diener, Edurado H. M. Cruz, Philippe O. A. Navaux. "Modeling Memory Access Behavior for Data Mapping." International Journal of High Performance Computing Applications, 2017.
-
Fewer issues are discovered at PIN 3.2. Please download PIN 3.2 as follows: $ wget http://software.intel.com/sites/landingpage/pintool/downloads/pin-3.2-81205-gcc-linux.tar.gz
-
I found there are random occurrences of segmentation fault due to the contention of global variables, e.g., commmap and pagemap. So, I chanaged 'unordered_map' as a slower 'map' and added GetLock-ReleaseLock pairs for commmap parts. It should be also noted that standard C/C++ library are not thread-safe for Unix platform, unlike Windows, as guided by Intel Pin 3.2 User Guide.
-
Page granularity profiling (option '-p') may output some undesired ',' for some entries, leading to wrong decoding of csv file by numalize utility (e.g., page.R). We replace ","-print in print_page( ) with "|"-print. Also, all page-related R scripts are modified accordingly.
-
*.R scripts provided by numalize requires R installation. Please refer to https://www.linuxcapable.com/how-to-install-r-programming-language-on-fedora-35/ for Fedora OS.