Giter Site home page Giter Site logo

bootcamp2018-perf-tuning's Introduction

Princeton Research Computing Bootcamp 2018

Get Started With Performance Optimization And Tuning

Sample Matrix-Matrix multiplication code for Bootcamp 2018

This is intended to use as a example to profile with performance tuning tools such as VTune. The code does not do anything useful and is for illustrative/educational use only. It is not meant to be exhaustive or demostrating optimal matrix-matrix multiplication techniques.

Instructions for Running on Adroit

  1. Log into Adroit with X11 forwarding enabled
    ssh -Y -C <username>@adroit.princeton.edu
  2. Load environment modules
    module load intel
    module load intel-vtune
  3. Build the example code and call executable "mm.out"
    (What happens if you forget the -g?)
    e.g. icpc -g -mkl -O3 -xhost matmul_test.cpp -o mm.out
    Short test on head node: ./mm.out 250 (250x250 matrix)
  4. Run the provided script to submit a VTune wrapped job to the scheduler
    ./submit_to_scheduler
    This will, by default, run a 500x500 matrix example on a compute node using the VTune "Hotspots" analysis. When it finishes it will create a directory with the results named something like r000hs, where 000 is incremented by 1 for each new analysis.
  5. Open the resulting directory with VTune GUI
    e.g. amplxe-gui r000hs
  6. Explore "Bottom-up" and "Top-down Tree" and double click on hotspots to look at line-by-line performance
  7. Edit the file "submit.slurm" to increase the matrix size (originally 500) and rerun the analysis. WARNING: don't go over 1500!
  8. Load environment module for Advisor e.g. module load intel-advisor
  9. Run the script to submit a Advisor wrapped job to the schedule 1)In ./submit.slurm, change the job execution command to advisor command line with survey analysis 2)Run ./submit_to_scheduler
  10. Open the resulting directory with Advisor e.g., advixe-gui <RESULT_DIR>
  11. Explore "Survey" report
  12. Run the script to submit a Advisor wrapped job to the schedule with tripcounts analysis
  1. In ./submit.slurm, change the job execution command to advisor command line with tripcounts analysis
  2. Run ./submit_to_scheduler
  1. Open the resulting directory with Advisor e.g., advixe-gui <RESULT_DIR>
  2. Explore "Tripcounts & Roofline" report




Contact

Ian A. Cosden
Princeton University
[email protected]

bootcamp2018-perf-tuning's People

Contributors

beiwang2003 avatar

Stargazers

Emmanuel Ekwedike 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.