Giter VIP home page Giter VIP logo

numalize's Introduction

Numalize: Detect memory access patterns of parallel applications

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/).

Requirements

  • 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 the Makefile. Note that Pin version 3.x is currently required.

Usage

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}

Publication

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.

Notes by Hyokeun Lee

  • 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.

numalize's People

Contributors

harrylee365 avatar matthiasdiener avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.