SlideShare a Scribd company logo
HOW TO RUN RSTUDIO
SERVERS ANYWHERE WITH
CONTAINERS - HPC, CLOUD,
AND LOCALLY
Wendy Wong
Outline ▫ Bioinformatics at Inova
Translational Medicine Institute
▫ RStudio Server
▫ Container Solutions
▫ Running Rstudio Server
2
Bioinformatics at Inova
Translational Medicine
Institute
What do we do?
3
Bioinformatics
at Inova
Translational
Medicine
Institute
▫ Mostly Trio-based Whole Genome
Sequenced studies
▫ Preterm Birth study
▫ Childhood longitudinal study
▫ Congenital diseases study
▫ >8,000 whole genome sequences
integrated with clinical electronic
health record and survey data
▫ Other omics on mother: RNASeq,
miRNASeq, methylation
4
R and
Bioinformatics
5
RStudio Server
6
● Provides a web browser
based interface to the version
of R running on the server
● Enables “chromebook data
science”
Place your screenshot here
7
Rstudio Server
Limitation of
RStudio
Server on
shared
computing
environment
▫ The RStudio server needs to be
initiated by root
▫ The user cannot change the version
of R it points to
▫ Each machine can only have one
server running
▫ Competing resources among users
8
Container solutions
Docker and Singularity
9
Containers
What and
Why?
What?
▫ Virtualization of the underlying
operating system
▫ Sharing the kernel of the host OS to
access the hardware.
Why?
▫ Lightweight
▫ Consistent Environment
▫ Platform independence
▫ Cost savings on resources
10
Docker
and Rocker
“Dockerfiles for different Docker
containers of interest to R users.”
11
https://github.com/rocker-org/rocker rocker
Singularity
▫ Designed for HPC
▫ No root owned daemon
processes
12
You don’t have to ask
your system administrator
to install anything for you.
Docker vs
Singularity
13
Docker Singularity
Isolation:
User inside container
cannot see hosts’
processes
Integration:
User has the same user id
inside the container
Image as layers - diffs from
the parent image
Image is a single file
Docker hub for portability:
Separate nodes cannot
share same images
Singularity hub or share
the same singularity file for
portability
Containers starts with
privileged access
Containers can be started
as normal user
Running RStudio Server
Examples with HPC (PBSPro), Google Cloud Shell and locally
14
Getting the
RStudio
Server
image
Docker (Rocker):
$ docker pull rocker/tidyverse
Singularity:
$ singularity pull docker://rocker/tidyverse
$ singularity pull
shub://nickjer/singularity-rstudio:3.5.1
$ sudo singularity build rstudio.sif rstudio.def
https://www.sylabs.io/2018/10/rstudio-ide-and-server/
15
Running
RStudio
Server on
HPC
With job
scheduler
(PBSPro)
Why?
▫ Reserve resources for R to run
efficiently
▫ Keeps compute nodes being
overloaded
▫ Run different R versions concurrently
16
RStudio server on PBSPro: A small example
https://www.sylabs.io/2018/10/rstudio-ide-and-server/
17
[user@remotehost] $cat runRStudio.sh
module load singularity/3.0
singularity instance start -B
<path>/rserver.conf.8790:/etc/rstudio/rserver.conf
<path>/rstudio.sif rs
[user@remotehost] $cat <path>/rserver.conf.8790
www-port=8790
[user@remotehost] $qsub -l select=1:ncpus=16:mem=128gb
runRStudio.sh
RStudio server on PBSPro: A small example
https://www.sylabs.io/2018/10/rstudio-ide-and-server/
18
[user@localhost]$ ssh wongwe@remotehost -L8790:localhost:8790
19
RStudio
RServer on
the cloud
for free
20
Web preview
Commands on Google cloud shell
21
wendy_wong@cloudshell:~
(ivory-period-88317)$ docker pull rocker/rstudio
wendy_wong@cloudshell:~
(ivory-period-88317)$ docker run -d -p
8080:8787 -e PASSWORD=<mypasswd>
--name rstudio rocker/rstudio
22
Running
RStudio
Server
locally
Singularity
▫ Use the same singularity images for
reproducibility
Docker
▫ docker commit
▫ docker push
▫ docker pull
23
Tips and
lessons
learned
Reproducibility
Running Rstudio Server on
containers helps with
reproducibility. Make sure tag
info is included (otherwise
latest is pulled).
Security
User does need to have root
privilege to run Singularity
containers - much easier to
convince your sys admins to
install Singularity!
Debug
Bind the log directory of
RStudio Server to the host
system in case it crashes.
24
Home directory
sharing
By default, Singularity shares
home directory. Be aware if
RStudio .Rprofile is there.
Environmental
Variables
By default, Singularity shares
the host environmental
variables.
Creating Images
Might be easier to create a
docker image and bootstrap
from it to create the
Singularity image
25
Thanks!
Questions and comments?
You can find me at
wendy.wong@gmail.com
https://www.linkedin.com/in/wendyswwong/
Resources:
https://www.docker.com
https://www.sylabs.io
https://www.rstudio.com/products/rstudio/#Server

More Related Content

What's hot

Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
Jirayut Nimsaeng
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
Robert Bohne
 
20190703 AWS Black Belt Online Seminar Amazon MQ
20190703 AWS Black Belt Online Seminar Amazon MQ20190703 AWS Black Belt Online Seminar Amazon MQ
20190703 AWS Black Belt Online Seminar Amazon MQ
Amazon Web Services Japan
 
Network Automation (NetDevOps) with Ansible
Network Automation (NetDevOps) with AnsibleNetwork Automation (NetDevOps) with Ansible
Network Automation (NetDevOps) with Ansible
APNIC
 
Kubernetes in Docker
Kubernetes in DockerKubernetes in Docker
Kubernetes in Docker
Docker, Inc.
 
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
Fumiya Sakai
 
Service Mesh @Lara Camp Myanmar - 02 Sep,2023
Service Mesh @Lara Camp Myanmar - 02 Sep,2023Service Mesh @Lara Camp Myanmar - 02 Sep,2023
Service Mesh @Lara Camp Myanmar - 02 Sep,2023
Hello Cloud
 
Introduction To Containers - Builders Day Israel
Introduction To Containers - Builders Day IsraelIntroduction To Containers - Builders Day Israel
Introduction To Containers - Builders Day Israel
Amazon Web Services
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
Robert Greiner
 
CodeBuildを身近にするためのはじめの一歩
CodeBuildを身近にするためのはじめの一歩CodeBuildを身近にするためのはじめの一歩
CodeBuildを身近にするためのはじめの一歩
淳 千葉
 
laravel x モバイルアプリ
laravel x モバイルアプリlaravel x モバイルアプリ
laravel x モバイルアプリ
Masaki Oshikawa
 
Db2 cheat sheet for development
Db2 cheat sheet for developmentDb2 cheat sheet for development
Db2 cheat sheet for development
Andres Gomez Casanova
 
Goss入門
Goss入門Goss入門
Goss入門
ShuyaMotouchi1
 
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
SlideTeam
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
Suresh Kumar
 
Introduction to helm
Introduction to helmIntroduction to helm
Introduction to helm
Jeeva Chelladhurai
 
Route53 で親子同居
Route53 で親子同居Route53 で親子同居
Route53 で親子同居
@ otsuka752
 
gRPC入門
gRPC入門gRPC入門
gRPC入門
Kenjiro Kubota
 
Microservices, Containers and Docker
Microservices, Containers and DockerMicroservices, Containers and Docker
Microservices, Containers and Docker
Ioannis Papapanagiotou
 
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
Ji-Woong Choi
 

What's hot (20)

Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
 
20190703 AWS Black Belt Online Seminar Amazon MQ
20190703 AWS Black Belt Online Seminar Amazon MQ20190703 AWS Black Belt Online Seminar Amazon MQ
20190703 AWS Black Belt Online Seminar Amazon MQ
 
Network Automation (NetDevOps) with Ansible
Network Automation (NetDevOps) with AnsibleNetwork Automation (NetDevOps) with Ansible
Network Automation (NetDevOps) with Ansible
 
Kubernetes in Docker
Kubernetes in DockerKubernetes in Docker
Kubernetes in Docker
 
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
 
Service Mesh @Lara Camp Myanmar - 02 Sep,2023
Service Mesh @Lara Camp Myanmar - 02 Sep,2023Service Mesh @Lara Camp Myanmar - 02 Sep,2023
Service Mesh @Lara Camp Myanmar - 02 Sep,2023
 
Introduction To Containers - Builders Day Israel
Introduction To Containers - Builders Day IsraelIntroduction To Containers - Builders Day Israel
Introduction To Containers - Builders Day Israel
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
CodeBuildを身近にするためのはじめの一歩
CodeBuildを身近にするためのはじめの一歩CodeBuildを身近にするためのはじめの一歩
CodeBuildを身近にするためのはじめの一歩
 
laravel x モバイルアプリ
laravel x モバイルアプリlaravel x モバイルアプリ
laravel x モバイルアプリ
 
Db2 cheat sheet for development
Db2 cheat sheet for developmentDb2 cheat sheet for development
Db2 cheat sheet for development
 
Goss入門
Goss入門Goss入門
Goss入門
 
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
Introduction to helm
Introduction to helmIntroduction to helm
Introduction to helm
 
Route53 で親子同居
Route53 で親子同居Route53 で親子同居
Route53 で親子同居
 
gRPC入門
gRPC入門gRPC入門
gRPC入門
 
Microservices, Containers and Docker
Microservices, Containers and DockerMicroservices, Containers and Docker
Microservices, Containers and Docker
 
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
 

Similar to HOW TO RUN RSTUDIO SERVERS ANYWHERE WITH CONTAINERS - HPC, CLOUD, AND LOCALLY

Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...
Walid Shaari
 
CloudLand 2023: Rock, Paper, Scissors Cloud Competition - Go vs. Java
CloudLand 2023: Rock, Paper, Scissors Cloud Competition - Go vs. JavaCloudLand 2023: Rock, Paper, Scissors Cloud Competition - Go vs. Java
CloudLand 2023: Rock, Paper, Scissors Cloud Competition - Go vs. Java
Jan Stamer
 
Scala, docker and testing, oh my! mario camou
Scala, docker and testing, oh my! mario camouScala, docker and testing, oh my! mario camou
Scala, docker and testing, oh my! mario camou
J On The Beach
 
Docker How and Why
Docker How and WhyDocker How and Why
Docker How and Why
Jonathan Creasy
 
Building Reproducible Network Data Analysis / Visualization Workflows
Building Reproducible Network Data Analysis / Visualization WorkflowsBuilding Reproducible Network Data Analysis / Visualization Workflows
Building Reproducible Network Data Analysis / Visualization Workflows
Keiichiro Ono
 
Openshift: The power of kubernetes for engineers - Riga Dev Days 18
Openshift: The power of kubernetes for engineers - Riga Dev Days 18Openshift: The power of kubernetes for engineers - Riga Dev Days 18
Openshift: The power of kubernetes for engineers - Riga Dev Days 18
Jorge Morales
 
LasCon 2014 DevOoops
LasCon 2014 DevOoops LasCon 2014 DevOoops
LasCon 2014 DevOoops
Chris Gates
 
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
Wong Hoi Sing Edison
 
SQL, NoSQL, NewSQL? What's a developer to do?
SQL, NoSQL, NewSQL? What's a developer to do?SQL, NoSQL, NewSQL? What's a developer to do?
SQL, NoSQL, NewSQL? What's a developer to do?
Chris Richardson
 
Resilience Testing
Resilience Testing Resilience Testing
Resilience Testing
Ran Levy
 
R hive tutorial supplement 3 - Rstudio-server setup for rhive
R hive tutorial supplement 3 - Rstudio-server setup for rhiveR hive tutorial supplement 3 - Rstudio-server setup for rhive
R hive tutorial supplement 3 - Rstudio-server setup for rhiveAiden Seonghak Hong
 
RESTful OSGi middleware for NoSQL databases with Docker
RESTful OSGi middleware for NoSQL databases with DockerRESTful OSGi middleware for NoSQL databases with Docker
RESTful OSGi middleware for NoSQL databases with Docker
Bertrand Delacretaz
 
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
 
REST in Peace. Long live gRPC! @ Codineers
REST in Peace. Long live gRPC! @ CodineersREST in Peace. Long live gRPC! @ Codineers
REST in Peace. Long live gRPC! @ Codineers
QAware GmbH
 
Using R on High Performance Computers
Using R on High Performance ComputersUsing R on High Performance Computers
Using R on High Performance Computers
Dave Hiltbrand
 
Ml2
Ml2Ml2
Intro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with sparkIntro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with spark
Alex Zeltov
 
DevConf 2017 - Realistic Container Platform Simulations
DevConf 2017 - Realistic Container Platform SimulationsDevConf 2017 - Realistic Container Platform Simulations
DevConf 2017 - Realistic Container Platform Simulations
Jeremy Eder
 
OpenStack LA meetup Feb 18, 2015
OpenStack LA meetup Feb 18, 2015OpenStack LA meetup Feb 18, 2015
OpenStack LA meetup Feb 18, 2015Tesora
 

Similar to HOW TO RUN RSTUDIO SERVERS ANYWHERE WITH CONTAINERS - HPC, CLOUD, AND LOCALLY (20)

Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...
 
CloudLand 2023: Rock, Paper, Scissors Cloud Competition - Go vs. Java
CloudLand 2023: Rock, Paper, Scissors Cloud Competition - Go vs. JavaCloudLand 2023: Rock, Paper, Scissors Cloud Competition - Go vs. Java
CloudLand 2023: Rock, Paper, Scissors Cloud Competition - Go vs. Java
 
Scala, docker and testing, oh my! mario camou
Scala, docker and testing, oh my! mario camouScala, docker and testing, oh my! mario camou
Scala, docker and testing, oh my! mario camou
 
Docker How and Why
Docker How and WhyDocker How and Why
Docker How and Why
 
Building Reproducible Network Data Analysis / Visualization Workflows
Building Reproducible Network Data Analysis / Visualization WorkflowsBuilding Reproducible Network Data Analysis / Visualization Workflows
Building Reproducible Network Data Analysis / Visualization Workflows
 
Openshift: The power of kubernetes for engineers - Riga Dev Days 18
Openshift: The power of kubernetes for engineers - Riga Dev Days 18Openshift: The power of kubernetes for engineers - Riga Dev Days 18
Openshift: The power of kubernetes for engineers - Riga Dev Days 18
 
LasCon 2014 DevOoops
LasCon 2014 DevOoops LasCon 2014 DevOoops
LasCon 2014 DevOoops
 
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
 
SQL, NoSQL, NewSQL? What's a developer to do?
SQL, NoSQL, NewSQL? What's a developer to do?SQL, NoSQL, NewSQL? What's a developer to do?
SQL, NoSQL, NewSQL? What's a developer to do?
 
Resilience Testing
Resilience Testing Resilience Testing
Resilience Testing
 
R hive tutorial supplement 3 - Rstudio-server setup for rhive
R hive tutorial supplement 3 - Rstudio-server setup for rhiveR hive tutorial supplement 3 - Rstudio-server setup for rhive
R hive tutorial supplement 3 - Rstudio-server setup for rhive
 
RESTful OSGi middleware for NoSQL databases with Docker
RESTful OSGi middleware for NoSQL databases with DockerRESTful OSGi middleware for NoSQL databases with Docker
RESTful OSGi middleware for NoSQL databases with Docker
 
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
 
REST in Peace. Long live gRPC! @ Codineers
REST in Peace. Long live gRPC! @ CodineersREST in Peace. Long live gRPC! @ Codineers
REST in Peace. Long live gRPC! @ Codineers
 
Using R on High Performance Computers
Using R on High Performance ComputersUsing R on High Performance Computers
Using R on High Performance Computers
 
Ml2
Ml2Ml2
Ml2
 
Intro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with sparkIntro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with spark
 
DevConf 2017 - Realistic Container Platform Simulations
DevConf 2017 - Realistic Container Platform SimulationsDevConf 2017 - Realistic Container Platform Simulations
DevConf 2017 - Realistic Container Platform Simulations
 
OpenStack LA meetup Feb 18, 2015
OpenStack LA meetup Feb 18, 2015OpenStack LA meetup Feb 18, 2015
OpenStack LA meetup Feb 18, 2015
 

Recently uploaded

In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
abdulrafaychaudhry
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
vrstrong314
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 

Recently uploaded (20)

In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 

HOW TO RUN RSTUDIO SERVERS ANYWHERE WITH CONTAINERS - HPC, CLOUD, AND LOCALLY

  • 1. HOW TO RUN RSTUDIO SERVERS ANYWHERE WITH CONTAINERS - HPC, CLOUD, AND LOCALLY Wendy Wong
  • 2. Outline ▫ Bioinformatics at Inova Translational Medicine Institute ▫ RStudio Server ▫ Container Solutions ▫ Running Rstudio Server 2
  • 3. Bioinformatics at Inova Translational Medicine Institute What do we do? 3
  • 4. Bioinformatics at Inova Translational Medicine Institute ▫ Mostly Trio-based Whole Genome Sequenced studies ▫ Preterm Birth study ▫ Childhood longitudinal study ▫ Congenital diseases study ▫ >8,000 whole genome sequences integrated with clinical electronic health record and survey data ▫ Other omics on mother: RNASeq, miRNASeq, methylation 4
  • 7. ● Provides a web browser based interface to the version of R running on the server ● Enables “chromebook data science” Place your screenshot here 7 Rstudio Server
  • 8. Limitation of RStudio Server on shared computing environment ▫ The RStudio server needs to be initiated by root ▫ The user cannot change the version of R it points to ▫ Each machine can only have one server running ▫ Competing resources among users 8
  • 10. Containers What and Why? What? ▫ Virtualization of the underlying operating system ▫ Sharing the kernel of the host OS to access the hardware. Why? ▫ Lightweight ▫ Consistent Environment ▫ Platform independence ▫ Cost savings on resources 10
  • 11. Docker and Rocker “Dockerfiles for different Docker containers of interest to R users.” 11 https://github.com/rocker-org/rocker rocker
  • 12. Singularity ▫ Designed for HPC ▫ No root owned daemon processes 12 You don’t have to ask your system administrator to install anything for you.
  • 13. Docker vs Singularity 13 Docker Singularity Isolation: User inside container cannot see hosts’ processes Integration: User has the same user id inside the container Image as layers - diffs from the parent image Image is a single file Docker hub for portability: Separate nodes cannot share same images Singularity hub or share the same singularity file for portability Containers starts with privileged access Containers can be started as normal user
  • 14. Running RStudio Server Examples with HPC (PBSPro), Google Cloud Shell and locally 14
  • 15. Getting the RStudio Server image Docker (Rocker): $ docker pull rocker/tidyverse Singularity: $ singularity pull docker://rocker/tidyverse $ singularity pull shub://nickjer/singularity-rstudio:3.5.1 $ sudo singularity build rstudio.sif rstudio.def https://www.sylabs.io/2018/10/rstudio-ide-and-server/ 15
  • 16. Running RStudio Server on HPC With job scheduler (PBSPro) Why? ▫ Reserve resources for R to run efficiently ▫ Keeps compute nodes being overloaded ▫ Run different R versions concurrently 16
  • 17. RStudio server on PBSPro: A small example https://www.sylabs.io/2018/10/rstudio-ide-and-server/ 17 [user@remotehost] $cat runRStudio.sh module load singularity/3.0 singularity instance start -B <path>/rserver.conf.8790:/etc/rstudio/rserver.conf <path>/rstudio.sif rs [user@remotehost] $cat <path>/rserver.conf.8790 www-port=8790 [user@remotehost] $qsub -l select=1:ncpus=16:mem=128gb runRStudio.sh
  • 18. RStudio server on PBSPro: A small example https://www.sylabs.io/2018/10/rstudio-ide-and-server/ 18 [user@localhost]$ ssh wongwe@remotehost -L8790:localhost:8790
  • 21. Commands on Google cloud shell 21 wendy_wong@cloudshell:~ (ivory-period-88317)$ docker pull rocker/rstudio wendy_wong@cloudshell:~ (ivory-period-88317)$ docker run -d -p 8080:8787 -e PASSWORD=<mypasswd> --name rstudio rocker/rstudio
  • 22. 22
  • 23. Running RStudio Server locally Singularity ▫ Use the same singularity images for reproducibility Docker ▫ docker commit ▫ docker push ▫ docker pull 23
  • 24. Tips and lessons learned Reproducibility Running Rstudio Server on containers helps with reproducibility. Make sure tag info is included (otherwise latest is pulled). Security User does need to have root privilege to run Singularity containers - much easier to convince your sys admins to install Singularity! Debug Bind the log directory of RStudio Server to the host system in case it crashes. 24 Home directory sharing By default, Singularity shares home directory. Be aware if RStudio .Rprofile is there. Environmental Variables By default, Singularity shares the host environmental variables. Creating Images Might be easier to create a docker image and bootstrap from it to create the Singularity image
  • 25. 25 Thanks! Questions and comments? You can find me at wendy.wong@gmail.com https://www.linkedin.com/in/wendyswwong/ Resources: https://www.docker.com https://www.sylabs.io https://www.rstudio.com/products/rstudio/#Server