Welcome    Usage    Browse    Find CID    Search     Log in
Program tuning pipeline

Pipeline color legend:
Characteristics
Properties
State
Cost
Coarse-grain choices
Fine-grain choices
Shortcuts: Save pipeline input and output in cTuning space   Init pipeline   Detected system information   Initialize parameters   Prepare dataset   Clean program   Use likwid for hardware counters   Source to source polyhedral transformation (by PLUTO)   Prepare compiler flags   Use compiler profiling   Use cTuning CC/MILEPOST GCC for fine-grain program analysis and tuning   Use universal Alchemist plugin (with any OpenME-compatible compiler or tool)   Use Alchemist plugin (currently for GCC)   Build program   Get objdump and md5sum (if supported)   Use OpenME for fine-grain program analysis and online tuning (build & run)   Use 'Intel VTune Amplifier' to collect hardware counters   Use 'perf' to collect hardware counters   Set frequency (in Unix, if supported)   Get system state before execution   Run program   Check output for correctness (use dataset UID to save different outputs)   Finish OpenME   Misc info   Observed characteristics   Observed statistical characteristics   Finalize pipeline
 
cTuning space (reproducibility and graphs)
Save pipeline input and output in cTuning space
Input
Select existing cTuning space Add new object
Enter (existing) cTuning space UOA
Exploration pipeline
Init pipeline
Input
Working repository Add new object
Collective tuning setup Add new object
Host OS Add new object
Target OS Add new object
Target processor Add new object
Prune program by class
Program
Add new object
Command line
Dataset UOA
Add new object
Compiler
Add new object
CTuning compiler description Add new object
Compilation type
Build script name
Tuning objective
Notes
User-friendly system name
Accelerator in the system
Target accelerator processor Add new object
Accelerator compiler
Add new object
CTuning accelerator compiler description Add new object
Benchmark internal execution ID
Detected system information
Turn on this pipeline section
Input
System description
Processor description
OS description
Initialize parameters
Output
Program Add new object
Dataset name
Dataset UID
Program name
Program UID
Prepare dataset
Turn on this pipeline section
Input
Clean program
Turn on this pipeline section
Input
Build script type Add new object
Cleaning script name
Skip target file check
Refresh from templates if exist
Use likwid for hardware counters
Turn on this pipeline section
Input
Likwid installation Add new object
Use kernel/codelet instrumentation
Use sudo
Processor pinning (0; 0-1; 1,2-3,4; etc)
Measure performance group (DATA, ENERGY, FLOPS_DP, L2, L2CACHE, MEM, TLB, BRANCH, etc)
Measure using event set (INSTR_RETIRED_ANY:FIXC0,CPU_CLK_UNHALTED_CORE:FIXC1)
Source to source polyhedral transformation (by PLUTO)
Turn on this pipeline section
Input
PLUTO compiler Add new object
Parallelize (OpenMP)?
Tile?
Tile factor
Tile factors topology (dim1;dim2;dim3;;...)
Unroll?
Unroll factor
Prepare compiler flags
Turn on this pipeline section
Input
Use only base flag
Use OpenMP parallelization flag
All compiler flags
Compiler flag: -O3
Compiler flag: openmp
Additional compiler flags
Output
Prepared compiler flags
Use compiler profiling
Turn on this pipeline section
Use cTuning CC/MILEPOST GCC for fine-grain program analysis and tuning
Turn on this pipeline section
Input
MILEPOST GCC Compiler Add new object
Extract after this pass in MILEPOST GCC
CTuning CC Compiler Add new object
CTuning CC Plugins Add new object
Mode
Use universal Alchemist plugin (with any OpenME-compatible compiler or tool)
Turn on this pipeline section
Input
Universal Alchemist plugin Add new object
Mode
Force output file
Force input file
Fine-grain transformations: force unroll factor
Individual factors can be selected through a json file.
Use Alchemist plugin (currently for GCC)
Turn on this pipeline section
Input
Alchemist plugin Add new object
Alchemist sub-plugin Add new object
Mode
Build program
Turn on this pipeline section
Input
Dependencies on other code
Build script type Add new object
Compilation type
Compilation type of linked libraries
Build script name
Program build properties (compiler vars)
New key:
Output
Build exit code
Program binary size (bytes)
Program compilation time (with module overhead) (sec.)
Get objdump and md5sum (if supported)
Turn on this pipeline section
Input
Output
Use OpenME for fine-grain program analysis and online tuning (build & run)
Turn on this pipeline section
Input
OpenME library Add new object
OpenME cTuning plugin Add new object
CJSON library Add new object
Use 'Intel VTune Amplifier' to collect hardware counters
Turn on this pipeline section
Input
Intel VTune Add new object
Use 'perf' to collect hardware counters
Turn on this pipeline section
Input
Installed perf supports output to file?
Set frequency (in Unix, if supported)
Turn on this pipeline section
Input
Use sudo
Frequency (Hz)
Frequency string (Hz)
Get system state before execution
Turn on this pipeline section
Output
System state
All properties
Measured CPU frequency
Run program
Turn on this pipeline section
Input
Program run-time environment variables
New key:
If OpenMP is used, number of threads
Prefix command line
Calibrate
Calibrate until max iterations
Calibrate to time (sec.)
Output
Benchmark score
Number of kernel repetitions (if supported)
Program execution time (with module overhead) (sec.)
Program execution time normalized (with module overhead) (sec.)
Run exit code
Check output for correctness (use dataset UID to save different outputs)
Turn on this pipeline section
Input
Output
Output correct?
Finish OpenME
Output
Kernel execution time in seconds
Misc info
User
Date/time started
Date/time finished
Dissemination of results
Publications
0 Add new object
1 Add new object
2 Add new object
Observed characteristics
Program execution CPI
Program execution instructions retired
Observed statistical characteristics
Run program
Output
Program execution time (with module overhead) (sec.)
Statistical characteristic: Program execution time (with module overhead) (NUM)
Statistical characteristic: Program execution time (with module overhead) (sec.) (MIN)
Statistical characteristic: Program execution time (with module overhead) (sec.) (MAX)
Statistical characteristic: Program execution time variation (DELTA)
Statistical characteristic: Program execution time variation (DELTA PERCENT / 100)
Normality test through R (CVM)
CVM P value
Normality test through R (Lillie)
Lillie P value
Normality test through R (Person)
Pearson P value
Aggregation
Program execution time normalized (with module overhead) (sec.)
Statistical characteristic: Program execution time normalized (with module overhead) (sec.) (MIN)
Statistical characteristic: Program execution time normalized (with module overhead) (sec.) (MAX)
Statistical characteristic: Program execution time normalized (with module overhead) variation (DELTA)
Statistical characteristic: Program execution time normalized (with module overhead) variation (DELTA PERCENT / 100)
Aggregation
Build program
Output
Program compilation time (with module overhead) (sec.)
Statistical characteristic: Program compilation time (with module overhead) (sec.) (MIN)
Statistical characteristic: Program compilation time (with module overhead) (sec.) (MAX)
Statistical characteristic: Program compilation time (with module overhead) variation (DELTA)
Statistical characteristic: Program compilation time (with module overhead) variation (DELTA PERCENT / 100)
Aggregation
Finalize pipeline
Input
Output
Pipeline failed?
 
Debug/Developer mode
Show input json (without running pipeline to prepare for off-line tuning)
Save input json to file (for reproducibility/off-line tuning) - pipeline will not run!
Show output json
Save output json to file
Keep all produced files