SlideShare a Scribd company logo
1 of 9
evaluate: revise tool default behavior
Luba Tang
replayer
Evaluate - Swiss knife to revise tool
behavior
 Intercept commands to the tool and revise it
 replayer (burglar) - intercept the control to original tool. Modify
the options to the original tool
 evaluate (hobbit) - controller of replayer
original
tool
evaluate
control
revised command
intercept
original
tool
command
Compiler Sensitivity - evaluate compiler optimization
 high watermark/low watermark
– Trivial upper bound/lower bound for a compilation
 Compiler sensitivity - The performance distance between
watermarks
compiler sensitivity
high watermark
low watermark
Set up high/low watermark
-mark-high [tool path]
• set target compiler to high watermark
-mark-low [tool path]
• set target compiler to low watermark
[local: ~]$ sudo evaluate -mark-high /usr/bin/gcc
[local: ~]$ gcc ./main.c -o ./a.out # build your project as usual
[local: ~]$ time ./a.out # evaluate performance as usual
real 0m0.002s
user 0m0.000s
sys 0m0.000s
[local: ~] sudo evaluate -mark-low /usr/bin/gcc
[local: ~] gcc ./main.c ./b.out
[local: ~] time ./b.out
real 0m0.004s
user 0m0.000s
sys 0n0.001s
clean watermarks
-unmark [tool path]
• clean up the watermarks on the target compiler
[local: ~]$ sudo evaluate -mark-high /usr/bin/gcc
[local: ~]$ gcc ./main.c -o ./a.out # build your project as usual
[local: ~]$ time ./a.out # evaluate performance as usual
real 0m0.002s
user 0m0.000s
sys 0m0.000s
[local: ~] sudo evaluate -unmark /usr/bin/gcc
List all watermarks
-l, -list
• list all watermarks
[local: ~]$ evaluate -l
/// *///
......... /// ....... ... ... .... .... ... ......... ......... ... ...
///////// /// //// /// *//////*////,//// */// ///////// ///////// ///*///
/// /// //// /// */// /// /// /// */// //// /// /// ////
///////// /////// ///./// /// /// /// */// ///// ///////// ///
/// /// ///. ////// /// /// /// */// .//// /// ///
///////// /// ///* //// /// /// /// */// ///////// ///////// ///
/////
Copyright (c) 2017 Skymizer Taiwan, Inc.
------------------------------------------------------------------------------
• low-mark -O0
locate in file://home/luba/skymizer-dev/build-trunk-dbg/echo.sh
• high-mark -O3
locate in file://usr/bin/gcc
------------------------------------------------------------------------------
Set customized watermarks
-tool [path of tool] -mark [strings]
– -tool and -mark must be used together
– All strings after -mark will be treated as new watermarks
 After settings customized watermarks, you can revise the behavior of target tool
[local: ~]$ evaluate -tool `which gcc` -mark -flto -O3 -finline
Show more details: -v
-verbose=N
set up verbose level, from zero to five
-v -v -v …
The number of -v represents the verbose level as well
[local: ~]$ evaluate -v -v -v # set up verbose level to 3
[local: ~]$ evaluate -verbose=2 # set up verbose level to 2
[local: ~]$ evaluate -quiet # set up verbose level to 0
Download
File format URL OS
static tar ball https://dl.skymizer.com/evaluate-1.0-
3.tar.gz
Ubuntu, CentOS
static rpm https://dl.skymizer.com/evaluate-1.0-
3.rpm
CentOS and can be
installed in all RPM system
static deb https://dl.skymizer.com/evaluate-1.0-
3.deb
ubuntu 14 LTS

More Related Content

Similar to Evaluate r1 0-3

Virtual dj 5 user guide
Virtual dj 5   user guideVirtual dj 5   user guide
Virtual dj 5 user guide
luis177p
 
Virtual dj 5 user guide
Virtual dj 5   user guideVirtual dj 5   user guide
Virtual dj 5 user guide
pabloisrael15
 

Similar to Evaluate r1 0-3 (20)

SAP WEBDYNPRO ABAP ONLINE TRAINING
SAP WEBDYNPRO ABAP ONLINE TRAININGSAP WEBDYNPRO ABAP ONLINE TRAINING
SAP WEBDYNPRO ABAP ONLINE TRAINING
 
Virtual dj 5 user guide
Virtual dj 5   user guideVirtual dj 5   user guide
Virtual dj 5 user guide
 
Virtual dj5
Virtual dj5   Virtual dj5
Virtual dj5
 
Virtual dj 5 user guide
Virtual dj 5   user guideVirtual dj 5   user guide
Virtual dj 5 user guide
 
Virtual dj 5 user guide
Virtual dj 5   user guideVirtual dj 5   user guide
Virtual dj 5 user guide
 
Update manual
Update manualUpdate manual
Update manual
 
Update manual
Update manualUpdate manual
Update manual
 
002207866
002207866002207866
002207866
 
Deploy hadoop cluster
Deploy hadoop clusterDeploy hadoop cluster
Deploy hadoop cluster
 
computer science c++ project class xii
computer science c++ project class xiicomputer science c++ project class xii
computer science c++ project class xii
 
Hands-on VeriFast with STM32 microcontroller @ Osaka
Hands-on VeriFast with STM32 microcontroller @ OsakaHands-on VeriFast with STM32 microcontroller @ Osaka
Hands-on VeriFast with STM32 microcontroller @ Osaka
 
SAP WEBDYNPRO ABAP ONLINE TRAINING
SAP WEBDYNPRO ABAP ONLINE TRAININGSAP WEBDYNPRO ABAP ONLINE TRAINING
SAP WEBDYNPRO ABAP ONLINE TRAINING
 
SAP WEBDYNPRO ABAP ONLINE TRAINING
SAP WEBDYNPRO ABAP ONLINE TRAININGSAP WEBDYNPRO ABAP ONLINE TRAINING
SAP WEBDYNPRO ABAP ONLINE TRAINING
 
Web dynpro abap
Web dynpro abapWeb dynpro abap
Web dynpro abap
 
SAP WEBDYNPRO ABAP ONLINE TRAINING
SAP WEBDYNPRO ABAP ONLINE TRAININGSAP WEBDYNPRO ABAP ONLINE TRAINING
SAP WEBDYNPRO ABAP ONLINE TRAINING
 
Training WEBDYNPRO ABAP Online SAP Course
Training WEBDYNPRO ABAP Online SAP CourseTraining WEBDYNPRO ABAP Online SAP Course
Training WEBDYNPRO ABAP Online SAP Course
 
Web dynpro abap
Web dynpro abapWeb dynpro abap
Web dynpro abap
 
SAP WEBDYNPRO ABAP COURSE ONLINE TRAINING
SAP WEBDYNPRO ABAP COURSE ONLINE TRAININGSAP WEBDYNPRO ABAP COURSE ONLINE TRAINING
SAP WEBDYNPRO ABAP COURSE ONLINE TRAINING
 
SAP WEBDYNPRO ABAP ONLINE TRAINING
SAP WEBDYNPRO ABAP ONLINE TRAININGSAP WEBDYNPRO ABAP ONLINE TRAINING
SAP WEBDYNPRO ABAP ONLINE TRAINING
 
ONLINE TRAINING SAP WEBDYNPRO ABAP COURSE
ONLINE TRAINING SAP WEBDYNPRO ABAP COURSEONLINE TRAINING SAP WEBDYNPRO ABAP COURSE
ONLINE TRAINING SAP WEBDYNPRO ABAP COURSE
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 

Evaluate r1 0-3

  • 1. evaluate: revise tool default behavior Luba Tang
  • 2. replayer Evaluate - Swiss knife to revise tool behavior  Intercept commands to the tool and revise it  replayer (burglar) - intercept the control to original tool. Modify the options to the original tool  evaluate (hobbit) - controller of replayer original tool evaluate control revised command intercept original tool command
  • 3. Compiler Sensitivity - evaluate compiler optimization  high watermark/low watermark – Trivial upper bound/lower bound for a compilation  Compiler sensitivity - The performance distance between watermarks compiler sensitivity high watermark low watermark
  • 4. Set up high/low watermark -mark-high [tool path] • set target compiler to high watermark -mark-low [tool path] • set target compiler to low watermark [local: ~]$ sudo evaluate -mark-high /usr/bin/gcc [local: ~]$ gcc ./main.c -o ./a.out # build your project as usual [local: ~]$ time ./a.out # evaluate performance as usual real 0m0.002s user 0m0.000s sys 0m0.000s [local: ~] sudo evaluate -mark-low /usr/bin/gcc [local: ~] gcc ./main.c ./b.out [local: ~] time ./b.out real 0m0.004s user 0m0.000s sys 0n0.001s
  • 5. clean watermarks -unmark [tool path] • clean up the watermarks on the target compiler [local: ~]$ sudo evaluate -mark-high /usr/bin/gcc [local: ~]$ gcc ./main.c -o ./a.out # build your project as usual [local: ~]$ time ./a.out # evaluate performance as usual real 0m0.002s user 0m0.000s sys 0m0.000s [local: ~] sudo evaluate -unmark /usr/bin/gcc
  • 6. List all watermarks -l, -list • list all watermarks [local: ~]$ evaluate -l /// */// ......... /// ....... ... ... .... .... ... ......... ......... ... ... ///////// /// //// /// *//////*////,//// */// ///////// ///////// ///*/// /// /// //// /// */// /// /// /// */// //// /// /// //// ///////// /////// ///./// /// /// /// */// ///// ///////// /// /// /// ///. ////// /// /// /// */// .//// /// /// ///////// /// ///* //// /// /// /// */// ///////// ///////// /// ///// Copyright (c) 2017 Skymizer Taiwan, Inc. ------------------------------------------------------------------------------ • low-mark -O0 locate in file://home/luba/skymizer-dev/build-trunk-dbg/echo.sh • high-mark -O3 locate in file://usr/bin/gcc ------------------------------------------------------------------------------
  • 7. Set customized watermarks -tool [path of tool] -mark [strings] – -tool and -mark must be used together – All strings after -mark will be treated as new watermarks  After settings customized watermarks, you can revise the behavior of target tool [local: ~]$ evaluate -tool `which gcc` -mark -flto -O3 -finline
  • 8. Show more details: -v -verbose=N set up verbose level, from zero to five -v -v -v … The number of -v represents the verbose level as well [local: ~]$ evaluate -v -v -v # set up verbose level to 3 [local: ~]$ evaluate -verbose=2 # set up verbose level to 2 [local: ~]$ evaluate -quiet # set up verbose level to 0
  • 9. Download File format URL OS static tar ball https://dl.skymizer.com/evaluate-1.0- 3.tar.gz Ubuntu, CentOS static rpm https://dl.skymizer.com/evaluate-1.0- 3.rpm CentOS and can be installed in all RPM system static deb https://dl.skymizer.com/evaluate-1.0- 3.deb ubuntu 14 LTS