SlideShare a Scribd company logo
The Popper
Experimentation
Protocol and
CLI tool
Ivo Jimenez, UC Santa Cruz (@ivotron)
Problem of Reproducibility in Computation
and Data Exploration
2
• What compiler was used?
• Which compilation flags?
• How was subsystem X configured?
• How does the workload look like?
• What if I use input dataset Y?
• And if I run on platform Z?
• …
3
Lab Notebook
End-to-end Scientific Experimentation Pipelines
observation or
simulation
input data
data cleaning
and processing
data analysis
output data
and figures
Manage
Code
Build
and
Package
Execute
Data
Mgmnt
Analyze/
Visualize
Manuscript
Analogies With Modern SE Practices (aka DevOps)
Scientific exploration Software project
Experiment code Source code
Data management Test examples
Analysis / visualization Test analysis
Validation CI / Regression testing
Manuscript / notebook Documentation / reports
Key Idea: manage a scientific exploration like software projects
Manage
Code
Build
and
Package
Execute
Data
Mgmnt
Analyze/
Visualize
Manuscript
DevOps View of The Experimentation Pipeline
SciOps
observation or
simulation
input data
data cleaning
and processing
data analysis
output data
and figures
What is DevOps?
myscript.sh
Typical DevOps
$ bash myscript.sh
The Popper Convention
1. Pick one or more tools from the DevOps toolkit
2. Write scripts for an experiment pipeline
3. Put all scripts in a version control repository
[1]: Jimenez et al. Standing on the Shoulders of Giants by Managing Scientific Experiments Like Software, ;login: Winter 2016, Vol. 41, No. 4.
[2]: Jimenez et al. The Popper Convention: Making Reproducible Systems Evaluation Practical, REPPAR 2017.
Popper CLI tool
• Make it super easy to automate execution and
validation of experimentation pipelines
• If it’s easy/low-overhead, it’s more likely it’ll be used
• Common convention to organize the contents of a repo
• CLI tool that helps users to implement pipeline stages
• Provide domain-specific examples
• Today: Genomics, MPI, Ceph
• Looking for domain-experts to contribute more examples
mypaper/
├── pipelines
│ ├── experiment1
│ │ ├── README.md
│ │ ├── output
│ │ │ ├── exp1.csv
│ │ │ ├── post.sh
│ │ │ └── view.ipynb
│ │ ├── run.sh
│ │ ├── setup.sh
│ │ ├── teardown.sh
│ │ └── validate.sh
│ ├── analysis1
│ │ ├── README.md
│ │ └── ...
│ └── analysis2
│ ├── README.md
│ └── ...
└── paper
├── build-pdf.sh
├── figures/
├── paper.tex
└── refs.bib
Common convention
to organize the
contents of a repo
$ cd my-paper-repo
$ git init
Initialized empty Git repository in my-paper-repo/.git
$ popper init
Initialized popper repository.
$ popper pipeline init myexp
-- Initialized exp1 pipeline.
$ ls -l pipelines/
total 20K
-rw-r----- 1 ivo ivo 8 Apr 29 23:58 README.md
-rwxr-x--- 1 ivo ivo 210 Apr 29 23:58 run.sh
-rwxr-x--- 1 ivo ivo 206 Apr 29 23:58 setup.sh
-rwxr-x--- 1 ivo ivo 61 Apr 29 23:58 teardown.sh
-rwxr-x--- 1 ivo ivo 61 Apr 29 23:58 validate.sh
#!/bin/bash
# request remote resources
docker run google/cloud-sdk gcloud init
...
#!/bin/bash
# trigger execution of experiment
docker run google/kubectl run ...
...
CLI tool
mypaper/pipelines/exp1
├── ansible/
│ ├── ansible.cfg
│ ├── machines.txt
│ └── playbook.yml
├── docker/
│ ├── Dockerfile
│ └── entrypoint.sh
├── enos/
│ └── reservation.yml
├── results/
│ ├── figure1.png
│ ├── postprocess.py
│ └── visualize.ipynb
├── run.sh
├── setup.sh
├── teardown.sh
├── validate.sh
└── vars.yml
provider:
type: chameleonbaremetal
image_name: CC-Ubuntu14.04-Docker
subnet: {name: shared-subnet1}
walltime: '00:30:00'
resources:
storage:
compute: 10
docker run --rm 
-e OS_AUTH_URL=$OS_AUTH_URL 
-e OS_TENANT_ID=$OS_TENANT_ID 
-e OS_TENANT_NAME=$OS_TENANT_NAME 
-e OS_PROJECT_NAME=$OS_PROJECT_NAME 
-e OS_USERNAME=$OS_USERNAME 
-e OS_PASSWORD=$OS_PASSWORD 
-e OS_KEYNAME=$OS_KEYNAME 
-v `pwd`/enos:/enos 
--workdir=/enos 
ivotron/enos:2.3.0 up
$ popper check exp1
Popper check started
Stage: setup.sh .....
Stage: run.sh ................
Stage: validate.sh ..
Stage: teardown.sh ...
Popper check finished
Status: SUCCESS
$ ls -l myrepo/
total 20K
-rw-r----- 1 ivo ivo 8 Apr 29 23:58 .git/
-rwxr-x--- 1 ivo ivo 210 Apr 29 23:58 pipelines/
-rwxr-x--- 1 ivo ivo 206 Apr 29 23:58 paper/
$ popper ci travis
Created .travis.yml file.
$ ls -l myrepo/
total 20K
-rw-r----- 1 ivo ivo 8 Apr 29 23:58 .git/
-rw-r----- 1 ivo ivo 8 Apr 30 12:02 .travis.yml
-rwxr-x--- 1 ivo ivo 210 Apr 29 23:58 pipelines/
-rwxr-x--- 1 ivo ivo 206 Apr 29 23:58 paper/
Popper and CI
ACM/Popper Badges
Result Status Artifacts Re-executed By ACM Popper
Repeatability Original Original Author(s)
Replicability Original 3rd Party
Reproducibility Re-implemented Anyone

More Related Content

What's hot

Q2.12: Debugging with GDB
Q2.12: Debugging with GDBQ2.12: Debugging with GDB
Q2.12: Debugging with GDB
Linaro
 
PyHEP 2019: Python 3.8
PyHEP 2019: Python 3.8PyHEP 2019: Python 3.8
PyHEP 2019: Python 3.8
Henry Schreiner
 
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect ToolboxWebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
WebCamp
 
Multithreading in PHP
Multithreading in PHPMultithreading in PHP
Multithreading in PHP
dimitriyremerov
 
Goroutine stack and local variable allocation in Go
Goroutine stack and local variable allocation in GoGoroutine stack and local variable allocation in Go
Goroutine stack and local variable allocation in Go
Yu-Shuan Hsieh
 
Kopf @ Python Pizza Berlin, 2019-08-23
Kopf @ Python Pizza Berlin, 2019-08-23Kopf @ Python Pizza Berlin, 2019-08-23
Kopf @ Python Pizza Berlin, 2019-08-23
Sergey Vasilyev
 
Coding in the context era
Coding in the context eraCoding in the context era
Coding in the context era
lestrrat
 
Performance
PerformancePerformance
Performance
Christophe Marchal
 
Job Automation using Linux
Job Automation using LinuxJob Automation using Linux
Job Automation using Linux
Jishnu Pradeep
 
Introduction to segmentation fault handling
Introduction to segmentation fault handling Introduction to segmentation fault handling
Introduction to segmentation fault handling
Larion
 
Move from C to Go
Move from C to GoMove from C to Go
Move from C to Go
Yu-Shuan Hsieh
 
Optimizing Communicating Event-Loop Languages with Truffle
Optimizing Communicating Event-Loop Languages with TruffleOptimizing Communicating Event-Loop Languages with Truffle
Optimizing Communicating Event-Loop Languages with Truffle
Stefan Marr
 
Cocoapods sane library management for xcode
Cocoapods   sane library management for xcodeCocoapods   sane library management for xcode
Cocoapods sane library management for xcode
leonardehrenfried
 
Custom object detection_gcp
Custom object detection_gcpCustom object detection_gcp
Custom object detection_gcp
Vaibhav Sahu
 
ELIXIR Proteomics Community - Connection with nf-core
ELIXIR Proteomics Community - Connection with nf-coreELIXIR Proteomics Community - Connection with nf-core
ELIXIR Proteomics Community - Connection with nf-core
Phil Ewels
 
Repetition Structures
Repetition StructuresRepetition Structures
Repetition Structures
primeteacher32
 
Ms hw3 %28solution%29
Ms hw3 %28solution%29Ms hw3 %28solution%29
Ms hw3 %28solution%29
isat xalapa
 
OSTEP Chapter2 Introduction
OSTEP Chapter2 IntroductionOSTEP Chapter2 Introduction
OSTEP Chapter2 Introduction
Shuya Osaki
 
GDB: A Lot More Than You Knew
GDB: A Lot More Than You KnewGDB: A Lot More Than You Knew
GDB: A Lot More Than You Knew
Undo
 
Tracer Evaluation
Tracer EvaluationTracer Evaluation
Tracer Evaluation
Qiao Han
 

What's hot (20)

Q2.12: Debugging with GDB
Q2.12: Debugging with GDBQ2.12: Debugging with GDB
Q2.12: Debugging with GDB
 
PyHEP 2019: Python 3.8
PyHEP 2019: Python 3.8PyHEP 2019: Python 3.8
PyHEP 2019: Python 3.8
 
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect ToolboxWebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
 
Multithreading in PHP
Multithreading in PHPMultithreading in PHP
Multithreading in PHP
 
Goroutine stack and local variable allocation in Go
Goroutine stack and local variable allocation in GoGoroutine stack and local variable allocation in Go
Goroutine stack and local variable allocation in Go
 
Kopf @ Python Pizza Berlin, 2019-08-23
Kopf @ Python Pizza Berlin, 2019-08-23Kopf @ Python Pizza Berlin, 2019-08-23
Kopf @ Python Pizza Berlin, 2019-08-23
 
Coding in the context era
Coding in the context eraCoding in the context era
Coding in the context era
 
Performance
PerformancePerformance
Performance
 
Job Automation using Linux
Job Automation using LinuxJob Automation using Linux
Job Automation using Linux
 
Introduction to segmentation fault handling
Introduction to segmentation fault handling Introduction to segmentation fault handling
Introduction to segmentation fault handling
 
Move from C to Go
Move from C to GoMove from C to Go
Move from C to Go
 
Optimizing Communicating Event-Loop Languages with Truffle
Optimizing Communicating Event-Loop Languages with TruffleOptimizing Communicating Event-Loop Languages with Truffle
Optimizing Communicating Event-Loop Languages with Truffle
 
Cocoapods sane library management for xcode
Cocoapods   sane library management for xcodeCocoapods   sane library management for xcode
Cocoapods sane library management for xcode
 
Custom object detection_gcp
Custom object detection_gcpCustom object detection_gcp
Custom object detection_gcp
 
ELIXIR Proteomics Community - Connection with nf-core
ELIXIR Proteomics Community - Connection with nf-coreELIXIR Proteomics Community - Connection with nf-core
ELIXIR Proteomics Community - Connection with nf-core
 
Repetition Structures
Repetition StructuresRepetition Structures
Repetition Structures
 
Ms hw3 %28solution%29
Ms hw3 %28solution%29Ms hw3 %28solution%29
Ms hw3 %28solution%29
 
OSTEP Chapter2 Introduction
OSTEP Chapter2 IntroductionOSTEP Chapter2 Introduction
OSTEP Chapter2 Introduction
 
GDB: A Lot More Than You Knew
GDB: A Lot More Than You KnewGDB: A Lot More Than You Knew
GDB: A Lot More Than You Knew
 
Tracer Evaluation
Tracer EvaluationTracer Evaluation
Tracer Evaluation
 

Similar to The Popper Experimentation Protocol and CLI tool

Reproducible, Automated and Portable Computational and Data Science Experimen...
Reproducible, Automated and Portable Computational and Data Science Experimen...Reproducible, Automated and Portable Computational and Data Science Experimen...
Reproducible, Automated and Portable Computational and Data Science Experimen...
Ivo Jimenez
 
Linux Server Deep Dives (DrupalCon Amsterdam)
Linux Server Deep Dives (DrupalCon Amsterdam)Linux Server Deep Dives (DrupalCon Amsterdam)
Linux Server Deep Dives (DrupalCon Amsterdam)
Amin Astaneh
 
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Puppet
 
Tutorial contributing to nf-core
Tutorial contributing to nf-coreTutorial contributing to nf-core
Tutorial contributing to nf-core
Gisela Gabernet
 
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides:  Let's build macOS CLI Utilities using SwiftMobileConf 2021 Slides:  Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
Diego Freniche Brito
 
Engineer Engineering Software
Engineer Engineering SoftwareEngineer Engineering Software
Engineer Engineering Software
Yung-Yu Chen
 
Code quality par Simone Civetta
Code quality par Simone CivettaCode quality par Simone Civetta
Code quality par Simone Civetta
CocoaHeads France
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
Steve Caron
 
Containers > VMs
Containers > VMsContainers > VMs
Containers > VMs
David Timothy Strauss
 
Django dev-env-my-way
Django dev-env-my-wayDjango dev-env-my-way
Django dev-env-my-way
Robert Lujo
 
Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024
Henry Schreiner
 
Reproducible bioinformatics pipelines with Docker and Anduril
Reproducible bioinformatics pipelines with Docker and AndurilReproducible bioinformatics pipelines with Docker and Anduril
Reproducible bioinformatics pipelines with Docker and Anduril
Christian Frech
 
Java in containers
Java in containersJava in containers
Java in containers
Martin Baez
 
Workflow story: Theory versus Practice in large enterprises by Marcin Piebiak
Workflow story: Theory versus Practice in large enterprises by Marcin PiebiakWorkflow story: Theory versus Practice in large enterprises by Marcin Piebiak
Workflow story: Theory versus Practice in large enterprises by Marcin Piebiak
NETWAYS
 
Workflow story: Theory versus practice in Large Enterprises
Workflow story: Theory versus practice in Large EnterprisesWorkflow story: Theory versus practice in Large Enterprises
Workflow story: Theory versus practice in Large Enterprises
Puppet
 
Talk 160920 @ Cat System Workshop
Talk 160920 @ Cat System WorkshopTalk 160920 @ Cat System Workshop
Talk 160920 @ Cat System Workshop
Quey-Liang Kao
 
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
Diane Mueller
 
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
OpenShift Origin
 
Linux 开源操作系统发展新趋势
Linux 开源操作系统发展新趋势Linux 开源操作系统发展新趋势
Linux 开源操作系统发展新趋势
Anthony Wong
 
Tiny Puppet Can Install Everything. Prove me wrong!
Tiny Puppet Can Install Everything. Prove me wrong!Tiny Puppet Can Install Everything. Prove me wrong!
Tiny Puppet Can Install Everything. Prove me wrong!
Alessandro Franceschi
 

Similar to The Popper Experimentation Protocol and CLI tool (20)

Reproducible, Automated and Portable Computational and Data Science Experimen...
Reproducible, Automated and Portable Computational and Data Science Experimen...Reproducible, Automated and Portable Computational and Data Science Experimen...
Reproducible, Automated and Portable Computational and Data Science Experimen...
 
Linux Server Deep Dives (DrupalCon Amsterdam)
Linux Server Deep Dives (DrupalCon Amsterdam)Linux Server Deep Dives (DrupalCon Amsterdam)
Linux Server Deep Dives (DrupalCon Amsterdam)
 
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
 
Tutorial contributing to nf-core
Tutorial contributing to nf-coreTutorial contributing to nf-core
Tutorial contributing to nf-core
 
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides:  Let's build macOS CLI Utilities using SwiftMobileConf 2021 Slides:  Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
 
Engineer Engineering Software
Engineer Engineering SoftwareEngineer Engineering Software
Engineer Engineering Software
 
Code quality par Simone Civetta
Code quality par Simone CivettaCode quality par Simone Civetta
Code quality par Simone Civetta
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
 
Containers > VMs
Containers > VMsContainers > VMs
Containers > VMs
 
Django dev-env-my-way
Django dev-env-my-wayDjango dev-env-my-way
Django dev-env-my-way
 
Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024
 
Reproducible bioinformatics pipelines with Docker and Anduril
Reproducible bioinformatics pipelines with Docker and AndurilReproducible bioinformatics pipelines with Docker and Anduril
Reproducible bioinformatics pipelines with Docker and Anduril
 
Java in containers
Java in containersJava in containers
Java in containers
 
Workflow story: Theory versus Practice in large enterprises by Marcin Piebiak
Workflow story: Theory versus Practice in large enterprises by Marcin PiebiakWorkflow story: Theory versus Practice in large enterprises by Marcin Piebiak
Workflow story: Theory versus Practice in large enterprises by Marcin Piebiak
 
Workflow story: Theory versus practice in Large Enterprises
Workflow story: Theory versus practice in Large EnterprisesWorkflow story: Theory versus practice in Large Enterprises
Workflow story: Theory versus practice in Large Enterprises
 
Talk 160920 @ Cat System Workshop
Talk 160920 @ Cat System WorkshopTalk 160920 @ Cat System Workshop
Talk 160920 @ Cat System Workshop
 
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
 
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
 
Linux 开源操作系统发展新趋势
Linux 开源操作系统发展新趋势Linux 开源操作系统发展新趋势
Linux 开源操作系统发展新趋势
 
Tiny Puppet Can Install Everything. Prove me wrong!
Tiny Puppet Can Install Everything. Prove me wrong!Tiny Puppet Can Install Everything. Prove me wrong!
Tiny Puppet Can Install Everything. Prove me wrong!
 

Recently uploaded

Cytokines and their role in immune regulation.pptx
Cytokines and their role in immune regulation.pptxCytokines and their role in immune regulation.pptx
Cytokines and their role in immune regulation.pptx
Hitesh Sikarwar
 
Nucleic Acid-its structural and functional complexity.
Nucleic Acid-its structural and functional complexity.Nucleic Acid-its structural and functional complexity.
Nucleic Acid-its structural and functional complexity.
Nistarini College, Purulia (W.B) India
 
Bob Reedy - Nitrate in Texas Groundwater.pdf
Bob Reedy - Nitrate in Texas Groundwater.pdfBob Reedy - Nitrate in Texas Groundwater.pdf
Bob Reedy - Nitrate in Texas Groundwater.pdf
Texas Alliance of Groundwater Districts
 
Topic: SICKLE CELL DISEASE IN CHILDREN-3.pdf
Topic: SICKLE CELL DISEASE IN CHILDREN-3.pdfTopic: SICKLE CELL DISEASE IN CHILDREN-3.pdf
Topic: SICKLE CELL DISEASE IN CHILDREN-3.pdf
TinyAnderson
 
Phenomics assisted breeding in crop improvement
Phenomics assisted breeding in crop improvementPhenomics assisted breeding in crop improvement
Phenomics assisted breeding in crop improvement
IshaGoswami9
 
NuGOweek 2024 Ghent programme overview flyer
NuGOweek 2024 Ghent programme overview flyerNuGOweek 2024 Ghent programme overview flyer
NuGOweek 2024 Ghent programme overview flyer
pablovgd
 
EWOCS-I: The catalog of X-ray sources in Westerlund 1 from the Extended Weste...
EWOCS-I: The catalog of X-ray sources in Westerlund 1 from the Extended Weste...EWOCS-I: The catalog of X-ray sources in Westerlund 1 from the Extended Weste...
EWOCS-I: The catalog of X-ray sources in Westerlund 1 from the Extended Weste...
Sérgio Sacani
 
ANAMOLOUS SECONDARY GROWTH IN DICOT ROOTS.pptx
ANAMOLOUS SECONDARY GROWTH IN DICOT ROOTS.pptxANAMOLOUS SECONDARY GROWTH IN DICOT ROOTS.pptx
ANAMOLOUS SECONDARY GROWTH IN DICOT ROOTS.pptx
RASHMI M G
 
ESR spectroscopy in liquid food and beverages.pptx
ESR spectroscopy in liquid food and beverages.pptxESR spectroscopy in liquid food and beverages.pptx
ESR spectroscopy in liquid food and beverages.pptx
PRIYANKA PATEL
 
aziz sancar nobel prize winner: from mardin to nobel
aziz sancar nobel prize winner: from mardin to nobelaziz sancar nobel prize winner: from mardin to nobel
aziz sancar nobel prize winner: from mardin to nobel
İsa Badur
 
20240520 Planning a Circuit Simulator in JavaScript.pptx
20240520 Planning a Circuit Simulator in JavaScript.pptx20240520 Planning a Circuit Simulator in JavaScript.pptx
20240520 Planning a Circuit Simulator in JavaScript.pptx
Sharon Liu
 
Sharlene Leurig - Enabling Onsite Water Use with Net Zero Water
Sharlene Leurig - Enabling Onsite Water Use with Net Zero WaterSharlene Leurig - Enabling Onsite Water Use with Net Zero Water
Sharlene Leurig - Enabling Onsite Water Use with Net Zero Water
Texas Alliance of Groundwater Districts
 
Micronuclei test.M.sc.zoology.fisheries.
Micronuclei test.M.sc.zoology.fisheries.Micronuclei test.M.sc.zoology.fisheries.
Micronuclei test.M.sc.zoology.fisheries.
Aditi Bajpai
 
Oedema_types_causes_pathophysiology.pptx
Oedema_types_causes_pathophysiology.pptxOedema_types_causes_pathophysiology.pptx
Oedema_types_causes_pathophysiology.pptx
muralinath2
 
8.Isolation of pure cultures and preservation of cultures.pdf
8.Isolation of pure cultures and preservation of cultures.pdf8.Isolation of pure cultures and preservation of cultures.pdf
8.Isolation of pure cultures and preservation of cultures.pdf
by6843629
 
Chapter 12 - climate change and the energy crisis
Chapter 12 - climate change and the energy crisisChapter 12 - climate change and the energy crisis
Chapter 12 - climate change and the energy crisis
tonzsalvador2222
 
原版制作(carleton毕业证书)卡尔顿大学毕业证硕士文凭原版一模一样
原版制作(carleton毕业证书)卡尔顿大学毕业证硕士文凭原版一模一样原版制作(carleton毕业证书)卡尔顿大学毕业证硕士文凭原版一模一样
原版制作(carleton毕业证书)卡尔顿大学毕业证硕士文凭原版一模一样
yqqaatn0
 
Unlocking the mysteries of reproduction: Exploring fecundity and gonadosomati...
Unlocking the mysteries of reproduction: Exploring fecundity and gonadosomati...Unlocking the mysteries of reproduction: Exploring fecundity and gonadosomati...
Unlocking the mysteries of reproduction: Exploring fecundity and gonadosomati...
AbdullaAlAsif1
 
Comparing Evolved Extractive Text Summary Scores of Bidirectional Encoder Rep...
Comparing Evolved Extractive Text Summary Scores of Bidirectional Encoder Rep...Comparing Evolved Extractive Text Summary Scores of Bidirectional Encoder Rep...
Comparing Evolved Extractive Text Summary Scores of Bidirectional Encoder Rep...
University of Maribor
 
bordetella pertussis.................................ppt
bordetella pertussis.................................pptbordetella pertussis.................................ppt
bordetella pertussis.................................ppt
kejapriya1
 

Recently uploaded (20)

Cytokines and their role in immune regulation.pptx
Cytokines and their role in immune regulation.pptxCytokines and their role in immune regulation.pptx
Cytokines and their role in immune regulation.pptx
 
Nucleic Acid-its structural and functional complexity.
Nucleic Acid-its structural and functional complexity.Nucleic Acid-its structural and functional complexity.
Nucleic Acid-its structural and functional complexity.
 
Bob Reedy - Nitrate in Texas Groundwater.pdf
Bob Reedy - Nitrate in Texas Groundwater.pdfBob Reedy - Nitrate in Texas Groundwater.pdf
Bob Reedy - Nitrate in Texas Groundwater.pdf
 
Topic: SICKLE CELL DISEASE IN CHILDREN-3.pdf
Topic: SICKLE CELL DISEASE IN CHILDREN-3.pdfTopic: SICKLE CELL DISEASE IN CHILDREN-3.pdf
Topic: SICKLE CELL DISEASE IN CHILDREN-3.pdf
 
Phenomics assisted breeding in crop improvement
Phenomics assisted breeding in crop improvementPhenomics assisted breeding in crop improvement
Phenomics assisted breeding in crop improvement
 
NuGOweek 2024 Ghent programme overview flyer
NuGOweek 2024 Ghent programme overview flyerNuGOweek 2024 Ghent programme overview flyer
NuGOweek 2024 Ghent programme overview flyer
 
EWOCS-I: The catalog of X-ray sources in Westerlund 1 from the Extended Weste...
EWOCS-I: The catalog of X-ray sources in Westerlund 1 from the Extended Weste...EWOCS-I: The catalog of X-ray sources in Westerlund 1 from the Extended Weste...
EWOCS-I: The catalog of X-ray sources in Westerlund 1 from the Extended Weste...
 
ANAMOLOUS SECONDARY GROWTH IN DICOT ROOTS.pptx
ANAMOLOUS SECONDARY GROWTH IN DICOT ROOTS.pptxANAMOLOUS SECONDARY GROWTH IN DICOT ROOTS.pptx
ANAMOLOUS SECONDARY GROWTH IN DICOT ROOTS.pptx
 
ESR spectroscopy in liquid food and beverages.pptx
ESR spectroscopy in liquid food and beverages.pptxESR spectroscopy in liquid food and beverages.pptx
ESR spectroscopy in liquid food and beverages.pptx
 
aziz sancar nobel prize winner: from mardin to nobel
aziz sancar nobel prize winner: from mardin to nobelaziz sancar nobel prize winner: from mardin to nobel
aziz sancar nobel prize winner: from mardin to nobel
 
20240520 Planning a Circuit Simulator in JavaScript.pptx
20240520 Planning a Circuit Simulator in JavaScript.pptx20240520 Planning a Circuit Simulator in JavaScript.pptx
20240520 Planning a Circuit Simulator in JavaScript.pptx
 
Sharlene Leurig - Enabling Onsite Water Use with Net Zero Water
Sharlene Leurig - Enabling Onsite Water Use with Net Zero WaterSharlene Leurig - Enabling Onsite Water Use with Net Zero Water
Sharlene Leurig - Enabling Onsite Water Use with Net Zero Water
 
Micronuclei test.M.sc.zoology.fisheries.
Micronuclei test.M.sc.zoology.fisheries.Micronuclei test.M.sc.zoology.fisheries.
Micronuclei test.M.sc.zoology.fisheries.
 
Oedema_types_causes_pathophysiology.pptx
Oedema_types_causes_pathophysiology.pptxOedema_types_causes_pathophysiology.pptx
Oedema_types_causes_pathophysiology.pptx
 
8.Isolation of pure cultures and preservation of cultures.pdf
8.Isolation of pure cultures and preservation of cultures.pdf8.Isolation of pure cultures and preservation of cultures.pdf
8.Isolation of pure cultures and preservation of cultures.pdf
 
Chapter 12 - climate change and the energy crisis
Chapter 12 - climate change and the energy crisisChapter 12 - climate change and the energy crisis
Chapter 12 - climate change and the energy crisis
 
原版制作(carleton毕业证书)卡尔顿大学毕业证硕士文凭原版一模一样
原版制作(carleton毕业证书)卡尔顿大学毕业证硕士文凭原版一模一样原版制作(carleton毕业证书)卡尔顿大学毕业证硕士文凭原版一模一样
原版制作(carleton毕业证书)卡尔顿大学毕业证硕士文凭原版一模一样
 
Unlocking the mysteries of reproduction: Exploring fecundity and gonadosomati...
Unlocking the mysteries of reproduction: Exploring fecundity and gonadosomati...Unlocking the mysteries of reproduction: Exploring fecundity and gonadosomati...
Unlocking the mysteries of reproduction: Exploring fecundity and gonadosomati...
 
Comparing Evolved Extractive Text Summary Scores of Bidirectional Encoder Rep...
Comparing Evolved Extractive Text Summary Scores of Bidirectional Encoder Rep...Comparing Evolved Extractive Text Summary Scores of Bidirectional Encoder Rep...
Comparing Evolved Extractive Text Summary Scores of Bidirectional Encoder Rep...
 
bordetella pertussis.................................ppt
bordetella pertussis.................................pptbordetella pertussis.................................ppt
bordetella pertussis.................................ppt
 

The Popper Experimentation Protocol and CLI tool

  • 1. The Popper Experimentation Protocol and CLI tool Ivo Jimenez, UC Santa Cruz (@ivotron)
  • 2. Problem of Reproducibility in Computation and Data Exploration 2 • What compiler was used? • Which compilation flags? • How was subsystem X configured? • How does the workload look like? • What if I use input dataset Y? • And if I run on platform Z? • …
  • 4. End-to-end Scientific Experimentation Pipelines observation or simulation input data data cleaning and processing data analysis output data and figures Manage Code Build and Package Execute Data Mgmnt Analyze/ Visualize Manuscript
  • 5. Analogies With Modern SE Practices (aka DevOps) Scientific exploration Software project Experiment code Source code Data management Test examples Analysis / visualization Test analysis Validation CI / Regression testing Manuscript / notebook Documentation / reports Key Idea: manage a scientific exploration like software projects
  • 6. Manage Code Build and Package Execute Data Mgmnt Analyze/ Visualize Manuscript DevOps View of The Experimentation Pipeline SciOps observation or simulation input data data cleaning and processing data analysis output data and figures
  • 7. What is DevOps? myscript.sh Typical DevOps $ bash myscript.sh
  • 8. The Popper Convention 1. Pick one or more tools from the DevOps toolkit 2. Write scripts for an experiment pipeline 3. Put all scripts in a version control repository [1]: Jimenez et al. Standing on the Shoulders of Giants by Managing Scientific Experiments Like Software, ;login: Winter 2016, Vol. 41, No. 4. [2]: Jimenez et al. The Popper Convention: Making Reproducible Systems Evaluation Practical, REPPAR 2017.
  • 9. Popper CLI tool • Make it super easy to automate execution and validation of experimentation pipelines • If it’s easy/low-overhead, it’s more likely it’ll be used • Common convention to organize the contents of a repo • CLI tool that helps users to implement pipeline stages • Provide domain-specific examples • Today: Genomics, MPI, Ceph • Looking for domain-experts to contribute more examples
  • 10. mypaper/ ├── pipelines │ ├── experiment1 │ │ ├── README.md │ │ ├── output │ │ │ ├── exp1.csv │ │ │ ├── post.sh │ │ │ └── view.ipynb │ │ ├── run.sh │ │ ├── setup.sh │ │ ├── teardown.sh │ │ └── validate.sh │ ├── analysis1 │ │ ├── README.md │ │ └── ... │ └── analysis2 │ ├── README.md │ └── ... └── paper ├── build-pdf.sh ├── figures/ ├── paper.tex └── refs.bib Common convention to organize the contents of a repo
  • 11. $ cd my-paper-repo $ git init Initialized empty Git repository in my-paper-repo/.git $ popper init Initialized popper repository. $ popper pipeline init myexp -- Initialized exp1 pipeline. $ ls -l pipelines/ total 20K -rw-r----- 1 ivo ivo 8 Apr 29 23:58 README.md -rwxr-x--- 1 ivo ivo 210 Apr 29 23:58 run.sh -rwxr-x--- 1 ivo ivo 206 Apr 29 23:58 setup.sh -rwxr-x--- 1 ivo ivo 61 Apr 29 23:58 teardown.sh -rwxr-x--- 1 ivo ivo 61 Apr 29 23:58 validate.sh #!/bin/bash # request remote resources docker run google/cloud-sdk gcloud init ... #!/bin/bash # trigger execution of experiment docker run google/kubectl run ... ... CLI tool
  • 12. mypaper/pipelines/exp1 ├── ansible/ │ ├── ansible.cfg │ ├── machines.txt │ └── playbook.yml ├── docker/ │ ├── Dockerfile │ └── entrypoint.sh ├── enos/ │ └── reservation.yml ├── results/ │ ├── figure1.png │ ├── postprocess.py │ └── visualize.ipynb ├── run.sh ├── setup.sh ├── teardown.sh ├── validate.sh └── vars.yml provider: type: chameleonbaremetal image_name: CC-Ubuntu14.04-Docker subnet: {name: shared-subnet1} walltime: '00:30:00' resources: storage: compute: 10 docker run --rm -e OS_AUTH_URL=$OS_AUTH_URL -e OS_TENANT_ID=$OS_TENANT_ID -e OS_TENANT_NAME=$OS_TENANT_NAME -e OS_PROJECT_NAME=$OS_PROJECT_NAME -e OS_USERNAME=$OS_USERNAME -e OS_PASSWORD=$OS_PASSWORD -e OS_KEYNAME=$OS_KEYNAME -v `pwd`/enos:/enos --workdir=/enos ivotron/enos:2.3.0 up
  • 13. $ popper check exp1 Popper check started Stage: setup.sh ..... Stage: run.sh ................ Stage: validate.sh .. Stage: teardown.sh ... Popper check finished Status: SUCCESS $ ls -l myrepo/ total 20K -rw-r----- 1 ivo ivo 8 Apr 29 23:58 .git/ -rwxr-x--- 1 ivo ivo 210 Apr 29 23:58 pipelines/ -rwxr-x--- 1 ivo ivo 206 Apr 29 23:58 paper/ $ popper ci travis Created .travis.yml file. $ ls -l myrepo/ total 20K -rw-r----- 1 ivo ivo 8 Apr 29 23:58 .git/ -rw-r----- 1 ivo ivo 8 Apr 30 12:02 .travis.yml -rwxr-x--- 1 ivo ivo 210 Apr 29 23:58 pipelines/ -rwxr-x--- 1 ivo ivo 206 Apr 29 23:58 paper/
  • 15. ACM/Popper Badges Result Status Artifacts Re-executed By ACM Popper Repeatability Original Original Author(s) Replicability Original 3rd Party Reproducibility Re-implemented Anyone