adarshyoga / TaskProf_RegionDiffSched

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

INSTRUCTIONS TO BUILD TASKPROF WITH AUTOMATIC REGION IDENTIFICATION,DIFFERENTIAL ANALYSIS,SCHEDULING OVERHEAD
-------------------------------------------------------------------------------------------------------------

OFFLINE ANALYSIS
----------------

1. First build original TBB library without modification for TaskProf
   > source build_orig_tbb.sh

2. Install TaskProf in a separate shell session.
   > source build_tprof.sh

TaskProf generates 3 profiles
1) regions_automatic.csv - shows the regions that need to optimized to improve parallelism.
2) step_diff_file.csv - The differential profile
3) sc_ov_profile.csv - The scheduling overhead profile.
Try false sharing and scheduling overhead test programs in tests/tbb_tests/false_sharing and tests/tbb_tests/sched_overhead respectively.

PROCESS FOR SELECTING PERFORMANCE COUNTERS
------------------------------------------
TaskProf can use a number of hardware performance counter types to profile applications. For instance, TaskProf can use hardware cycles, instructions, page faults, etc to measure work performed in a program.
The programmer can control the profiling by specifying the type of hardware performance counter to use while profiling.
The program counter type can be specified using TD_Activate function call, which is called at the beginning of the program.
   TD_Activate(__FILE__,__LINE__,<counter_type>);
<counter_type> accepts integer values. If <counter_type> is not provided, TaskProf uses 0 which corresponds to harware cycles.
The following are the integer <counter_type> values for hardware performance counter types currently supported by TaskProf.
  CYCLES = 0
  INSTRUCTIONS = 1
  LOCAL_HITM = 2
  REMOTE_HITM = 3
  LOCAL_DRAM = 4
  REMOTE_DRAM = 5
  PAGE_FAULTS = 6
  LLC_MISS = 7
  L1_M_REPLACE = 8
  L1_EVICTION = 9
  L1_REPLACEMENT = 10
  FP_DIVIDE = 11
  
  ONLINE ANALYSIS
  ---------------
  
  Install TaskProf online profiler in a separate shell session.
   > source build_online.sh
  
  Build the input program.  
  We provide a Python script that automates the what-if analysis and generates the profiles.
  
  > cd <path_to_TaskProf>/src/ptprof_lib/online_profiling/scripts
  
  Use the help option with causal_profiler.py script to specify command line options.
  > python causal_profiler.py --help
   -p -> Full path to program executable (required)
   -b -> name of executable binary (required)
   -a -> arguments to the program
   -f -> optimization factor
   -t -> threshold parallelism
   
   The python script after performing analysis generates the parallelism profile in parallelism_profile.csv, 
   what-if profile in causal_profile.csv and differential profile in step_diff_file.csv.

About


Languages

Language:C++ 70.2%Language:HTML 13.9%Language:C 9.4%Language:Python 3.9%Language:Makefile 1.1%Language:Assembly 0.8%Language:Shell 0.2%Language:PHP 0.1%Language:JavaScript 0.1%Language:CSS 0.1%Language:Batchfile 0.1%Language:Objective-C 0.0%Language:Java 0.0%Language:Pascal 0.0%