SlideShare a Scribd company logo
1 of 56
SINGULARITYCONTAINERS FOR SCIENTIFIC COMPUTE
Vanessa Sochat, PhD
Research Software Engineer
Stanford University Research Computing Center
1. Overview Singularity
2. Discoverability
3. Data Containers
SINGULARITY: CONTAINERS FOR HPC
SINGULARITY: CONTAINERS FOR HPC
SINGULARITY: CONTAINERS FOR HPC
SINGULARITY: CONTAINERS FOR HPC
LIFE’S
WORK
SINGULARITY: CONTAINERS FOR HPC
Scientists need containers too.
SINGULARITY: CONTAINERS FOR HPC
HELLO, SINGULARITY!
SINGULARITY: CONTAINERS FOR HPC
The problems Singularity solves
SINGULARITY: CONTAINERS FOR HPC
Reproducibility and archive of software and environments
The problems Singularity solves
SINGULARITY: CONTAINERS FOR HPC
Reproducibility and archive of software and environments
A container is a file. It’s portable and shareable.
The problems Singularity solves
SINGULARITY: CONTAINERS FOR HPC
Reproducibility and archive of software and environments
A container is a file. It’s portable and shareable.
Integration with traditional HPC
The problems Singularity solves
SINGULARITY: CONTAINERS FOR HPC
Reproducibility and archive of software and environments
A container is a file. It’s portable and shareable.
Integration with traditional HPC
The user inside the container is the user outside
SINGULARITY: THE BUILD SPECIFICATION
Singularity
sudo singularity build container.sif Singularity
Bootstrap: docker
From: python:3.7
SINGULARITY: THE BUILD SPECIFICATION
Singularity
Bootstrap: docker
From: python:3.7
%post
echo “This is just run once after bootstrap!”
echo “Install and add stuff here!”
apt-get update
apt-get install -y vim wget
sudo singularity build container.sif Singularity
SINGULARITY: THE BUILD SPECIFICATION
Singularity
Bootstrap: docker
From: python:3.7
%post
echo “This is just run once after bootstrap!”
echo “Install and add stuff here!”
apt-get update
apt-get install -y vim wget
%runscript
exec /usr/bin/python “$@”
sudo singularity build container.sif Singularity
What about provenance and data?
SINGULARITY: DISCOVERABILITY
What about provenance and data?
SINGULARITY: DISCOVERABILITY
How does Singularity enable discoverability?
SINGULARITY: DISCOVERABILITY
Inspection of metadata
SINGULARITY: DISCOVERABILITY
Bootstrap: docker
From: busybox
%post
…
%labels
MAINTAINER dinosaur
$ singularity inspect container.sif
Labels
SINGULARITY: DISCOVERABILITY
Labels
SINGULARITY: DISCOVERABILITY
Bootstrap: docker
From: python:3.7
%post
…
%help
Hey there! This is how you can run this container:
$ singularity exec container.sif /code/script.py input1
$ singularity inspect -H container.sif
Help within container
SINGULARITY: DISCOVERABILITY
Labels
Is the entrypoint discoverable?
SINGULARITY: DISCOVERABILITY
SINGULARITY: DISCOVERABILITY
What if my container has multiple entrypoints?
Is the entrypoint discoverable?
If foo:
exec foo
else If bar:
exec bar
else:
exec foobar
If foo:
exec foo
else If bar:
exec bar
else:
exec foobar
How do we create internal modularity?
SINGULARITY: DISCOVERABILITY
Scientific Filesystem
SINGULARITY: DISCOVERABILITY
Scientific Filesystem
foo bar
content
metadata
control
Entrypoint
Environment
Metadata
Software
Libraries
Scripts
ENTRYPOINT
global content
foo metadata
control → scif
foo bar
bar metadata
hello-world
hello-world metadata
%apprun hello-world
/bin/bash hello-world.sh
%appinstall hello-world
echo "echo 'Hello World!'" >> $SCIF_APPBIN/hello-world.sh
chmod u+x $SCIF_APPBIN/hello-world.sh
%appenv hello-world
THEBESTAPP=$SCIF_APPNAME
export THEBESTAPP
%applabels hello-world
MAINTAINER Vanessasaur
%apphelp hello-world
This is an example "Hello World" application.
You can install it to a Scientific Filesystem
(scif) with the command:
scif install hello-world.scif
hello-world.scif
https://sci-f.github.io/tutorial-quick-start
%app[action] [name]
scif run fooscif install recipe.scifrecipe.scif
write recipe install interact
Developer Interaction
scif run foo
interact
User Interaction
./container …
apps
run
exec
help
inspect
shell
pyshell
SINGULARITY: DISCOVERABILITY
- Inspect for global container metadata and labels
- Help for user friendly instructions
- Read Only containers for portability, reproducibility
- SCIF is natively implemented in Singularity
Data containers
SINGULARITY: DATA CONTAINERS
SINGULARITY: DATA CONTAINERS
SINGULARITY: DATA CONTAINERS
SINGULARITY: DATA CONTAINERS
data
What are the features of a data container?
SINGULARITY: DATA CONTAINERS
What are the features of a data container?
SINGULARITY: DATA CONTAINERS
- Exclusively data (no operating system)
What are the features of a data container?
SINGULARITY: DATA CONTAINERS
- Exclusively data (no operating system)
- Allows query of data / search of metadata
What are the features of a data container?
SINGULARITY: DATA CONTAINERS
- Exclusively data (no operating system)
- Allows query of data / search of metadata
- Container can be bound as a volume
DATA CONTAINERS
https://github.com/vsoch/cdb
https://github.com/vsoch/cdb
How do we build a data container?
Stage 1:
- Python base
- Install cdb (container
database)
How do we build a data container?
Stage 1:
- Python base
- Install cdb
- Add data to /data
- Generate entrypoint
How do we build a data container?
Stage 1:
- Python base
- Install cdb
- Add data to /data
- Generate entrypoint
How do we build a data container?
Stage 2:
- Alpine base with GoLang
- Compile the entrypoint!
How do we build a data container?
Stage 3:
- Scratch base
- Add data
- Add /entrypoint
How do we use a data container?
How do we use a data container?
How do we use a data container?
How do we use a data container?
Why is this so powerful?
SINGULARITY: DATA CONTAINERS
- Entrypoint functions can be optimized for dataset
- Metadata extraction can be too
- Container can be bound as a volume
What would a data container look like for your use case?
vsochat@stanford.edu
@vsoch on Twitter and GitHub

More Related Content

What's hot

Ripping web accessible .git files
Ripping web accessible .git filesRipping web accessible .git files
Ripping web accessible .git filesVlatko Kosturjak
 
Aligning Continuous Integration Deployment: Automated Validation of OpenStack...
Aligning Continuous Integration Deployment: Automated Validation of OpenStack...Aligning Continuous Integration Deployment: Automated Validation of OpenStack...
Aligning Continuous Integration Deployment: Automated Validation of OpenStack...Atlassian
 
Wonderful world of (distributed) SCM or VCS
Wonderful world of (distributed) SCM or VCSWonderful world of (distributed) SCM or VCS
Wonderful world of (distributed) SCM or VCSVlatko Kosturjak
 
JupyterHub tutorial at JupyterCon
JupyterHub tutorial at JupyterConJupyterHub tutorial at JupyterCon
JupyterHub tutorial at JupyterConCarol Willing
 
Puppet at GitHub
Puppet at GitHubPuppet at GitHub
Puppet at GitHubPuppet
 

What's hot (7)

Inside GitHub with Chris Wanstrath
Inside GitHub with Chris WanstrathInside GitHub with Chris Wanstrath
Inside GitHub with Chris Wanstrath
 
Ripping web accessible .git files
Ripping web accessible .git filesRipping web accessible .git files
Ripping web accessible .git files
 
Aligning Continuous Integration Deployment: Automated Validation of OpenStack...
Aligning Continuous Integration Deployment: Automated Validation of OpenStack...Aligning Continuous Integration Deployment: Automated Validation of OpenStack...
Aligning Continuous Integration Deployment: Automated Validation of OpenStack...
 
Wonderful world of (distributed) SCM or VCS
Wonderful world of (distributed) SCM or VCSWonderful world of (distributed) SCM or VCS
Wonderful world of (distributed) SCM or VCS
 
JupyterHub tutorial at JupyterCon
JupyterHub tutorial at JupyterConJupyterHub tutorial at JupyterCon
JupyterHub tutorial at JupyterCon
 
Puppet at GitHub
Puppet at GitHubPuppet at GitHub
Puppet at GitHub
 
Introduction to Kalabox
Introduction to KalaboxIntroduction to Kalabox
Introduction to Kalabox
 

Similar to Introduction to Singularity and Data Containers

Singularity Containers for Scientific Compute
Singularity Containers for Scientific ComputeSingularity Containers for Scientific Compute
Singularity Containers for Scientific ComputeVanessa S
 
The Scientific Filesystem
The Scientific FilesystemThe Scientific Filesystem
The Scientific FilesystemVanessa S
 
PEARC17: Reproducibility and Containers: The Perfect Sandwich
PEARC17: Reproducibility and Containers: The Perfect SandwichPEARC17: Reproducibility and Containers: The Perfect Sandwich
PEARC17: Reproducibility and Containers: The Perfect SandwichVanessa S
 
Containers for Science and High-Performance Computing
Containers for Science and High-Performance ComputingContainers for Science and High-Performance Computing
Containers for Science and High-Performance ComputingDmitry Spodarets
 
Introduction to High-Performance Computing (HPC) Containers and Singularity*
Introduction to High-Performance Computing (HPC) Containers and Singularity*Introduction to High-Performance Computing (HPC) Containers and Singularity*
Introduction to High-Performance Computing (HPC) Containers and Singularity*Intel® Software
 
Jenkins Shared Libraries Workshop
Jenkins Shared Libraries WorkshopJenkins Shared Libraries Workshop
Jenkins Shared Libraries WorkshopJulien Pivotto
 
Effectively using Open Source with conda
Effectively using Open Source with condaEffectively using Open Source with conda
Effectively using Open Source with condaTravis Oliphant
 
Using Docker Containers to Improve Reproducibility in Software and Web Engine...
Using Docker Containers to Improve Reproducibility in Software and Web Engine...Using Docker Containers to Improve Reproducibility in Software and Web Engine...
Using Docker Containers to Improve Reproducibility in Software and Web Engine...Vincenzo Ferme
 
Containers Roadshow: How to Develop Containers for the Enterprise
Containers Roadshow: How to Develop Containers for the EnterpriseContainers Roadshow: How to Develop Containers for the Enterprise
Containers Roadshow: How to Develop Containers for the EnterpriseHonza Horák
 
4Developers 2015: Continuous Security in DevOps - Maciej Lasyk
4Developers 2015: Continuous Security in DevOps - Maciej Lasyk4Developers 2015: Continuous Security in DevOps - Maciej Lasyk
4Developers 2015: Continuous Security in DevOps - Maciej LasykPROIDEA
 
Continuous Security in DevOps
Continuous Security in DevOpsContinuous Security in DevOps
Continuous Security in DevOpsMaciej Lasyk
 
Reproducibility challenges in computational settings: what are they, why shou...
Reproducibility challenges in computational settings: what are they, why shou...Reproducibility challenges in computational settings: what are they, why shou...
Reproducibility challenges in computational settings: what are they, why shou...Research Data Alliance
 
Intro to containerization
Intro to containerizationIntro to containerization
Intro to containerizationBalint Pato
 
Google Cloud Platform and Kubernetes
Google Cloud Platform and KubernetesGoogle Cloud Platform and Kubernetes
Google Cloud Platform and KubernetesKasper Nissen
 
Understanding and building Your Own Docker
Understanding and building Your Own DockerUnderstanding and building Your Own Docker
Understanding and building Your Own DockerMotiejus Jakštys
 
Docker: Containers for Data Science
Docker: Containers for Data ScienceDocker: Containers for Data Science
Docker: Containers for Data ScienceAlessandro Adamo
 
Practical Chaos Engineering
Practical Chaos EngineeringPractical Chaos Engineering
Practical Chaos EngineeringSIGHUP
 
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015Mark Wilkinson
 
Containers for sensor web services, applications and research @ Sensor Web Co...
Containers for sensor web services, applications and research @ Sensor Web Co...Containers for sensor web services, applications and research @ Sensor Web Co...
Containers for sensor web services, applications and research @ Sensor Web Co...Daniel Nüst
 

Similar to Introduction to Singularity and Data Containers (20)

Singularity Containers for Scientific Compute
Singularity Containers for Scientific ComputeSingularity Containers for Scientific Compute
Singularity Containers for Scientific Compute
 
The Scientific Filesystem
The Scientific FilesystemThe Scientific Filesystem
The Scientific Filesystem
 
PEARC17: Reproducibility and Containers: The Perfect Sandwich
PEARC17: Reproducibility and Containers: The Perfect SandwichPEARC17: Reproducibility and Containers: The Perfect Sandwich
PEARC17: Reproducibility and Containers: The Perfect Sandwich
 
Containers for Science and High-Performance Computing
Containers for Science and High-Performance ComputingContainers for Science and High-Performance Computing
Containers for Science and High-Performance Computing
 
Introduction to High-Performance Computing (HPC) Containers and Singularity*
Introduction to High-Performance Computing (HPC) Containers and Singularity*Introduction to High-Performance Computing (HPC) Containers and Singularity*
Introduction to High-Performance Computing (HPC) Containers and Singularity*
 
Jenkins Shared Libraries Workshop
Jenkins Shared Libraries WorkshopJenkins Shared Libraries Workshop
Jenkins Shared Libraries Workshop
 
Effectively using Open Source with conda
Effectively using Open Source with condaEffectively using Open Source with conda
Effectively using Open Source with conda
 
Using Docker Containers to Improve Reproducibility in Software and Web Engine...
Using Docker Containers to Improve Reproducibility in Software and Web Engine...Using Docker Containers to Improve Reproducibility in Software and Web Engine...
Using Docker Containers to Improve Reproducibility in Software and Web Engine...
 
Containers Roadshow: How to Develop Containers for the Enterprise
Containers Roadshow: How to Develop Containers for the EnterpriseContainers Roadshow: How to Develop Containers for the Enterprise
Containers Roadshow: How to Develop Containers for the Enterprise
 
4Developers 2015: Continuous Security in DevOps - Maciej Lasyk
4Developers 2015: Continuous Security in DevOps - Maciej Lasyk4Developers 2015: Continuous Security in DevOps - Maciej Lasyk
4Developers 2015: Continuous Security in DevOps - Maciej Lasyk
 
Continuous Security in DevOps
Continuous Security in DevOpsContinuous Security in DevOps
Continuous Security in DevOps
 
Reproducibility challenges in computational settings: what are they, why shou...
Reproducibility challenges in computational settings: what are they, why shou...Reproducibility challenges in computational settings: what are they, why shou...
Reproducibility challenges in computational settings: what are they, why shou...
 
Intro to containerization
Intro to containerizationIntro to containerization
Intro to containerization
 
Google Cloud Platform and Kubernetes
Google Cloud Platform and KubernetesGoogle Cloud Platform and Kubernetes
Google Cloud Platform and Kubernetes
 
Understanding and building Your Own Docker
Understanding and building Your Own DockerUnderstanding and building Your Own Docker
Understanding and building Your Own Docker
 
Docker: Containers for Data Science
Docker: Containers for Data ScienceDocker: Containers for Data Science
Docker: Containers for Data Science
 
Practical Chaos Engineering
Practical Chaos EngineeringPractical Chaos Engineering
Practical Chaos Engineering
 
Bio2RDF@BH2010
Bio2RDF@BH2010Bio2RDF@BH2010
Bio2RDF@BH2010
 
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
 
Containers for sensor web services, applications and research @ Sensor Web Co...
Containers for sensor web services, applications and research @ Sensor Web Co...Containers for sensor web services, applications and research @ Sensor Web Co...
Containers for sensor web services, applications and research @ Sensor Web Co...
 

More from Vanessa S

The Stories We Tell Ourselves
The Stories We Tell OurselvesThe Stories We Tell Ourselves
The Stories We Tell OurselvesVanessa S
 
Research Software Engineering at Stanford University
Research Software Engineering at Stanford UniversityResearch Software Engineering at Stanford University
Research Software Engineering at Stanford UniversityVanessa S
 
Research Software Engineering at Stanford
Research Software Engineering at StanfordResearch Software Engineering at Stanford
Research Software Engineering at StanfordVanessa S
 
Adding An Operator to Airflow: A Contributor Overflow Exception
Adding An Operator to Airflow: A Contributor Overflow ExceptionAdding An Operator to Airflow: A Contributor Overflow Exception
Adding An Operator to Airflow: A Contributor Overflow ExceptionVanessa S
 
The Research Software Encyclopedia
The Research Software EncyclopediaThe Research Software Encyclopedia
The Research Software EncyclopediaVanessa S
 
Laboratory of NeuroGenetics QA (8/2010)
Laboratory of NeuroGenetics QA (8/2010)Laboratory of NeuroGenetics QA (8/2010)
Laboratory of NeuroGenetics QA (8/2010)Vanessa S
 
Building Tools for Neuroimaging
Building Tools for NeuroimagingBuilding Tools for Neuroimaging
Building Tools for NeuroimagingVanessa S
 
Brain Maps like Mine
Brain Maps like MineBrain Maps like Mine
Brain Maps like MineVanessa S
 
Qualifying Exam Presentation
Qualifying Exam PresentationQualifying Exam Presentation
Qualifying Exam PresentationVanessa S
 
Pre-Proposal Presentation
Pre-Proposal PresentationPre-Proposal Presentation
Pre-Proposal PresentationVanessa S
 
Independent component analysis
Independent component analysisIndependent component analysis
Independent component analysisVanessa S
 
Subnetworks in Schizophrenia, fMRI
Subnetworks in Schizophrenia, fMRISubnetworks in Schizophrenia, fMRI
Subnetworks in Schizophrenia, fMRIVanessa S
 
Research in Progress April 2014
Research in Progress April 2014Research in Progress April 2014
Research in Progress April 2014Vanessa S
 
Research in Progress Presentation
Research in Progress PresentationResearch in Progress Presentation
Research in Progress PresentationVanessa S
 
Introduction to Machine Learning Lecture
Introduction to Machine Learning LectureIntroduction to Machine Learning Lecture
Introduction to Machine Learning LectureVanessa S
 
Introduction to Neuroimaging Informatics
Introduction to Neuroimaging InformaticsIntroduction to Neuroimaging Informatics
Introduction to Neuroimaging InformaticsVanessa S
 
ISIS Clustering Functional Connectivity
ISIS Clustering Functional ConnectivityISIS Clustering Functional Connectivity
ISIS Clustering Functional ConnectivityVanessa S
 
Classification of Functional Networks Poster
Classification of Functional Networks PosterClassification of Functional Networks Poster
Classification of Functional Networks PosterVanessa S
 
Quals Practice Presentation
Quals Practice PresentationQuals Practice Presentation
Quals Practice PresentationVanessa S
 
Neuroimaging Introduction
Neuroimaging IntroductionNeuroimaging Introduction
Neuroimaging IntroductionVanessa S
 

More from Vanessa S (20)

The Stories We Tell Ourselves
The Stories We Tell OurselvesThe Stories We Tell Ourselves
The Stories We Tell Ourselves
 
Research Software Engineering at Stanford University
Research Software Engineering at Stanford UniversityResearch Software Engineering at Stanford University
Research Software Engineering at Stanford University
 
Research Software Engineering at Stanford
Research Software Engineering at StanfordResearch Software Engineering at Stanford
Research Software Engineering at Stanford
 
Adding An Operator to Airflow: A Contributor Overflow Exception
Adding An Operator to Airflow: A Contributor Overflow ExceptionAdding An Operator to Airflow: A Contributor Overflow Exception
Adding An Operator to Airflow: A Contributor Overflow Exception
 
The Research Software Encyclopedia
The Research Software EncyclopediaThe Research Software Encyclopedia
The Research Software Encyclopedia
 
Laboratory of NeuroGenetics QA (8/2010)
Laboratory of NeuroGenetics QA (8/2010)Laboratory of NeuroGenetics QA (8/2010)
Laboratory of NeuroGenetics QA (8/2010)
 
Building Tools for Neuroimaging
Building Tools for NeuroimagingBuilding Tools for Neuroimaging
Building Tools for Neuroimaging
 
Brain Maps like Mine
Brain Maps like MineBrain Maps like Mine
Brain Maps like Mine
 
Qualifying Exam Presentation
Qualifying Exam PresentationQualifying Exam Presentation
Qualifying Exam Presentation
 
Pre-Proposal Presentation
Pre-Proposal PresentationPre-Proposal Presentation
Pre-Proposal Presentation
 
Independent component analysis
Independent component analysisIndependent component analysis
Independent component analysis
 
Subnetworks in Schizophrenia, fMRI
Subnetworks in Schizophrenia, fMRISubnetworks in Schizophrenia, fMRI
Subnetworks in Schizophrenia, fMRI
 
Research in Progress April 2014
Research in Progress April 2014Research in Progress April 2014
Research in Progress April 2014
 
Research in Progress Presentation
Research in Progress PresentationResearch in Progress Presentation
Research in Progress Presentation
 
Introduction to Machine Learning Lecture
Introduction to Machine Learning LectureIntroduction to Machine Learning Lecture
Introduction to Machine Learning Lecture
 
Introduction to Neuroimaging Informatics
Introduction to Neuroimaging InformaticsIntroduction to Neuroimaging Informatics
Introduction to Neuroimaging Informatics
 
ISIS Clustering Functional Connectivity
ISIS Clustering Functional ConnectivityISIS Clustering Functional Connectivity
ISIS Clustering Functional Connectivity
 
Classification of Functional Networks Poster
Classification of Functional Networks PosterClassification of Functional Networks Poster
Classification of Functional Networks Poster
 
Quals Practice Presentation
Quals Practice PresentationQuals Practice Presentation
Quals Practice Presentation
 
Neuroimaging Introduction
Neuroimaging IntroductionNeuroimaging Introduction
Neuroimaging Introduction
 

Recently uploaded

CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01KreezheaRecto
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . pptDineshKumar4165
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...ranjana rawat
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...tanu pandey
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapRishantSharmaFr
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...SUHANI PANDEY
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringmulugeta48
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756dollysharma2066
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTbhaskargani46
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptMsecMca
 

Recently uploaded (20)

CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 

Introduction to Singularity and Data Containers

Editor's Notes

  1. Hey friends, I’m Vanessa, and I’m a research software dinosaur at the Stanford Research Computing CEnter. And today we are going to talk about...
  2. Containers, containers containers! Now, I don’t want to mislead you - containers are old news. You could probably give talk in like 2015 about this exciting newish technology that is helping research, but that was 5 years ago dawg, that’s OLD NEWS.
  3. You probably know this too, but we can abstractly think of a container as this isolated environment that let’s you package an operating system, software libraries, oh yeah, and your life’s work, which might include data and scripts to some extent.
  4. You probably know this too, but we can abstractly think of a container as this isolated environment that let’s you package an operating system, software libraries, oh yeah, and your life’s work, which might include data and scripts to some extent.
  5. You probably know this too, but we can abstractly think of a container as this isolated environment that let’s you package an operating system, software libraries, oh yeah, and your life’s work, which might include data and scripts to some extent.
  6. I’m guessing that you are familiar with Docker, and at some points, especially if you want to run Docker on a cluster, it’s probably felt like this.
  7. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  8. Singularity is just like Docker in that you can put your analysis code, dependencies, and everything about the environment in a container, and move it from your local machine, to a cluster, and it’s going to work. Singularity containers will run using SLURM, locally, or basically all the places that Docker cannot.
  9. Singularity is just like Docker in that you can put your analysis code, dependencies, and everything about the environment in a container, and move it from your local machine, to a cluster, and it’s going to work. Singularity containers will run using SLURM, locally, or basically all the places that Docker cannot.
  10. Singularity is just like Docker in that you can put your analysis code, dependencies, and everything about the environment in a container, and move it from your local machine, to a cluster, and it’s going to work. Singularity containers will run using SLURM, locally, or basically all the places that Docker cannot.
  11. Singularity is just like Docker in that you can put your analysis code, dependencies, and everything about the environment in a container, and move it from your local machine, to a cluster, and it’s going to work. Singularity containers will run using SLURM, locally, or basically all the places that Docker cannot.
  12. So what about provenance and data? This is probably what we really care about.
  13. So what about provenance and data? This is probably what we really care about.
  14. Like Docker, Singularity has support for adding labels, which is something I first added way back in 2017. And you’ll notice there is also this help section, so you can literally ask the container for help, and it will show you some text dump that was written by the creator in a text file.
  15. This might seem simple and silly, but without some external documentation, a container is really just a black box. So I pushed for this as some sort of best practice because we really don’t want our containers to be black boxes!
  16. And this inspect command is still present now, it automatically adds basic metadata to your container about when it was built, what the boostrap was from, and the version of singularity. And this can also be exported as json.
  17. This might seem simple and silly, but without some external documentation, a container is really just a black box. So I pushed for this as some sort of best practice because we really don’t want our containers to be black boxes!
  18. And this inspect command is still present now, it automatically adds basic metadata to your container about when it was built, what the boostrap was from, and the version of singularity. And this can also be exported as json.
  19. So what about provenance and data? This is probably what we really care about.
  20. So what about provenance and data? This is probably what we really care about.
  21. And a feature that I developed that is way out of scope for this discussion is the scientific filesystem, which gives you that same ability to define labels, environment, and custom entrypoints or help snippets, but just for a single app installed inside your container.
  22. And a feature that I developed that is way out of scope for this discussion is the scientific filesystem, which gives you that same ability to define labels, environment, and custom entrypoints or help snippets, but just for a single app installed inside your container.
  23. And a feature that I developed that is way out of scope for this discussion is the scientific filesystem, which gives you that same ability to define labels, environment, and custom entrypoints or help snippets, but just for a single app installed inside your container.
  24. And a feature that I developed that is way out of scope for this discussion is the scientific filesystem, which gives you that same ability to define labels, environment, and custom entrypoints or help snippets, but just for a single app installed inside your container.
  25. So the interesting thing here is that these three sections, for a simple container, do very well to capture the kind of information that our scientist would need for reproducibility. The challenge, however, is that all of this is primarily accessible traditionally v one entrypoint, OR some kind of inspect command that is specific to the controller. And what’s the problem with this? So a container with a good design will not only be able to serve one or more entrypoints, I want to also be able to interact with it, and have it tell me information about the runtime and content
  26. When we install a SCIF, we still have this global content, and it still hopefully conforms to the linux filesystem hierarchy. But, what we have now is internal modularity. And actually it’s predictable internal modularity, because each of foo and bar has been installed to the container in a way that I can just look at the file content and know what belongs to each, both in terms of runtime variables and whatever file content is associated with the applications.
  27. You are going to notice different sections here, each starts with app, then has a term to describe the section like run, install, labels, and then is followed by an app name. It’s a very nice recipe format that a user can sit down and write sections for, and then install to different hosts. So it follows that this entire thing is for the “hello world” application, and we have these chunks sitting in the same file. And there are no rules about how many sections are required for an application, an application could be just a runscript, just a file, or just a label or environment variable. There are also no requirements about how many applications you can define in a file. If they interact with one another you should use the same file, but if not you can keep them separate and install just one or both of them to some host.
  28. SO what does it look like to interact with a scif? Well, the first thing you would want to do is create one on your host. And a host can be your actual computer, or more likely for our purposes, inside of a container technology. In this case the development flow is simple, and familiar. You write a recipe, in this recipe you define your different applications, environments, entry points, and then you install the recipe to the host using the provided client. Finally, you interact with your SCIF.
  29. You would find it just by executing the container, and it would show you all the commands available to interact with the scientific applications within. So how does this work? And what do these commands actually look like? Let’s talk a little bit about the SCIF itself.
  30. And a feature that I developed that is way out of scope for this discussion is the scientific filesystem, which gives you that same ability to define labels, environment, and custom entrypoints or help snippets, but just for a single app installed inside your container.
  31. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  32. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  33. You probably know this too, but we can abstractly think of a container as this isolated environment that let’s you package an operating system, software libraries, oh yeah, and your life’s work, which might include data and scripts to some extent.
  34. You probably know this too, but we can abstractly think of a container as this isolated environment that let’s you package an operating system, software libraries, oh yeah, and your life’s work, which might include data and scripts to some extent.
  35. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  36. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  37. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  38. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  39. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  40. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  41. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  42. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  43. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  44. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  45. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  46. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  47. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  48. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  49. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.
  50. Well, back in 2016 we decided that Scientists need containers too. This was really when the early versions of Singularity started to be kicked up, and I was an early developer.