Provisioning Complex Software Environments for Scientific Applications

Similar documents
VC3. Virtual Clusters for Community Computation. DOE NGNS PI Meeting September 27-28, 2017

Automatic Dependency Management for Scientific Applications on Clusters. Ben Tovar*, Nicholas Hazekamp, Nathaniel Kremer-Herman, Douglas Thain

Reduction of Workflow Resource Consumption Using a Density-based Clustering Model

Work Queue + Python. A Framework For Scalable Scientific Ensemble Applications

Using Puppet to contextualize computing resources for ATLAS analysis on Google Compute Engine

Singularity tests at CC-IN2P3 for Atlas

Singularity in CMS. Over a million containers served

Centre de Calcul de l Institut National de Physique Nucléaire et de Physique des Particules. Singularity overview. Vanessa HAMAR

Scheduling Computational and Storage Resources on the NRP

Scientific Computing on Emerging Infrastructures. using HTCondor

Global Software Distribution with CernVM-FS

What s new in HTCondor? What s coming? HTCondor Week 2018 Madison, WI -- May 22, 2018

Andrej Filipčič

Taming Metadata Storms in Parallel Filesystems with MetaFS. Tim Shaffer

Outline. ASP 2012 Grid School

Complex Workloads on HUBzero Pegasus Workflow Management System

On-demand provisioning of HEP compute resources on cloud sites and shared HPC centers

Introduction to HPC Using zcluster at GACRC

Virtualization of the ATLAS Tier-2/3 environment on the HPC cluster NEMO

Security in the CernVM File System and the Frontier Distributed Database Caching System

Important DevOps Technologies (3+2+3days) for Deployment

glideinwms architecture by Igor Sfiligoi, Jeff Dost (UCSD)

Scientific Cluster Deployment and Recovery Using puppet to simplify cluster management

WLCG Lightweight Sites

Building a Data-Friendly Platform for a Data- Driven Future

Distributed Caching Using the HTCondor CacheD

Introduction to HPC Using zcluster at GACRC On-Class GENE 4220

A Virtual Comet. HTCondor Week 2017 May Edgar Fajardo On behalf of OSG Software and Technology

Evolution of the ATLAS PanDA Workload Management System for Exascale Computational Science

Introduction to HPC Using zcluster at GACRC

Opportunities for container environments on Cray XC30 with GPU devices

To the Cloud and Back: A Distributed Photo Processing Pipeline

Pegasus. Automate, recover, and debug scientific computations. Rafael Ferreira da Silva.

arxiv: v1 [cs.dc] 7 Apr 2014

Bright Cluster Manager

Connecting Restricted, High-Availability, or Low-Latency Resources to a Seamless Global Pool for CMS

High Performance Computing (HPC) Using zcluster at GACRC

Building a Virtualized Desktop Grid. Eric Sedore

Worldwide Production Distributed Data Management at the LHC. Brian Bockelman MSST 2010, 4 May 2010

STATUS OF PLANS TO USE CONTAINERS IN THE WORLDWIDE LHC COMPUTING GRID

Science-as-a-Service

Introduction to HPC Using zcluster at GACRC

Enabling Distributed Scientific Computing on the Campus

Leveraging Globus Identity for the Grid. Suchandra Thapa GlobusWorld, April 22, 2016 Chicago

IMPROVING THE REPRODUCIBILITY OF SCIENTIFIC APPLICATIONS WITH EXECUTION ENVIRONMENT SPECIFICATIONS. A Dissertation. Submitted to the Graduate School

BOSCO Architecture. Derek Weitzel University of Nebraska Lincoln

NFS, GPFS, PVFS, Lustre Batch-scheduled systems: Clusters, Grids, and Supercomputers Programming paradigm: HPC, MTC, and HTC

AutoPyFactory: A Scalable Flexible Pilot Factory Implementation

Monitoring system for geographically distributed datacenters based on Openstack. Gioacchino Vino

I Tier-3 di CMS-Italia: stato e prospettive. Hassen Riahi Claudio Grandi Workshop CCR GRID 2011

The Fusion Distributed File System

Your Microservice Layout

CernVM-FS beyond LHC computing

INSTALLATION RUNBOOK FOR Iron.io + IronWorker

Application of Virtualization Technologies & CernVM. Benedikt Hegner CERN

Clouds: An Opportunity for Scientific Applications?

HPC learning using Cloud infrastructure

Lightweight scheduling of elastic analysis containers in a competitive cloud environment: a Docked Analysis Facility for ALICE

Evaluation of the Huawei UDS cloud storage system for CERN specific data

Pegasus WMS Automated Data Management in Shared and Nonshared Environments

High Throughput WAN Data Transfer with Hadoop-based Storage

NFS, GPFS, PVFS, Lustre Batch-scheduled systems: Clusters, Grids, and Supercomputers Programming paradigm: HPC, MTC, and HTC

RESEARCH DATA DEPOT AT PURDUE UNIVERSITY

HTCondor on Titan. Wisconsin IceCube Particle Astrophysics Center. Vladimir Brik. HTCondor Week May 2018

Singularity: container formats

glideinwms: Quick Facts

SUG Breakout Session: OSC OnDemand App Development

The HTCondor CacheD. Derek Weitzel, Brian Bockelman University of Nebraska Lincoln

Outline. Definition of a Distributed System Goals of a Distributed System Types of Distributed Systems

Ioan Raicu. Everyone else. More information at: Background? What do you want to get out of this course?

PROOF as a Service on the Cloud: a Virtual Analysis Facility based on the CernVM ecosystem

CONTAINERIZING JOBS ON THE ACCRE CLUSTER WITH SINGULARITY

INTRODUCTION TO NEXTFLOW

CernVM a virtual software appliance for LHC applications

Data Intensive processing with irods and the middleware CiGri for the Whisper project Xavier Briand

Building Campus HTC Sharing Infrastructures. Derek Weitzel University of Nebraska Lincoln (Open Science Grid Hat)

GPFS for Life Sciences at NERSC

The BOINC Community. PC volunteers (240,000) Projects. UC Berkeley developers (2.5) Other volunteers: testing translation support. Computer scientists

Large Scale Sky Computing Applications with Nimbus

Pegasus Workflow Management System. Gideon Juve. USC Informa3on Sciences Ins3tute

Installation of CMSSW in the Grid DESY Computing Seminar May 17th, 2010 Wolf Behrenhoff, Christoph Wissing

Elastic HPC on the MOC

ALICE Grid Activities in US

Shifter at CSCS Docker Containers for HPC

Cloud Computing and Hadoop Distributed File System. UCSB CS170, Spring 2018

DevOps Technologies. for Deployment

Flying HTCondor at 100gbps Over the Golden State

Users and utilization of CERIT-SC infrastructure

HIGH ENERGY PHYSICS ON THE OSG. Brian Bockelman CCL Workshop, 2016

LSST software stack and deployment on other architectures. William O Mullane for Andy Connolly with material from Owen Boberg

Building/Running Distributed Systems with Apache Mesos

VMware vrealize Code Stream Reference Architecture. 12 APRIL 2018 vrealize Code Stream 2.4

Li Yu. University of Notre Dame

Evolution of Cloud Computing in ATLAS

DNA Sequence Bioinformatics Analysis with the Galaxy Platform

Allowing Users to Run Services at the OLCF with Kubernetes

RADU POPESCU IMPROVING THE WRITE SCALABILITY OF THE CERNVM FILE SYSTEM WITH ERLANG/OTP

Introduction to SciTokens

Advanced School in High Performance and GRID Computing November Introduction to Grid computing.

Containerized Cloud Scheduling Environment

Transcription:

Provisioning Complex Software Environments for Scientific Applications Prof. Douglas Thain, University of Notre Dame http://www.nd.edu/~dthain dthain@nd.edu @ProfThain

The Cooperative Computing Lab We collaborate with people who have large scale computing problems in science, engineering, and other fields. We operate computer systems on the O(10,000) cores: clusters, clouds, grids. We conduct computer science research in the context of real people and problems. We develop open source software for large scale distributed computing. http://ccl.cse.nd.edu 2

Parrot Virtual File System Unix Appl Capture System Calls via ptrace Custom Namespace /home = /chirp/server/myhome /software = /cvmfs/cms.cern.ch/cmssoft Parrot Virtual File System Local irods Chirp HTTP CVMFS File Access Tracing Sandboxing User ID Mapping... Douglas Thain, Christopher Moretti, and Igor Sfiligoi, Transparently Distributing CDF Software with Parrot, Computing in High Energy Physics, pages 1-4, February, 2006.

Parrot + CVMFS CMS Task HTTP GET squid proxy squid proxy squid proxy HTTP GET www server Parrot CVMFS Library meta data data data CAS Cache Content Addressable Storage CMS Software 967 GB 31M files meta data data data data Build CAS Jakob Blomer, Predrag Buncic, Rene Meusel, Gerardo Ganis, Igor Sfiligoi and Douglas Thain, The Evolution of Global Scale Filesystems for Scientific Software Distribution, IEEE/AIP Computing in Science and Engineering, 17(6), pages 61-71, December, 2015. DOI: 10.1109/MCSE.2015.111

How do we run complex workflows on diverse computing resources?

Makeflow = Make + Workflow Provides portability across batch systems. Enables parallelism (but not too much!) Fault tolerance at multiple scales. Data and resource management. Transactional semantics for job execution. Makeflow Local HTCondor Torque Work Queue Amazon http://ccl.cse.nd.edu/software/makeflow 6

Makeflow = Make + Workflow Provides portability across batch systems. Enables parallelism (but not too much!) Fault tolerance at multiple scales. Data and resource management. Transactional semantics for job execution. Makeflow Local HTCondor Torque Work Queue Mesos Amazon Kubernetes http://ccl.cse.nd.edu/software/makeflow Charles Zheng (czheng2@nd.edu) 7

Example: Species Distribution Modeling www.lifemapper.org Full Workflow: 12,500 species x 15 climate scenarios x 6 experiments x 500 MB per projection = 1.1M jobs, 72TB of output Small Example: 10 species x 10 expts

More Examples http://github.com/cooperative-computing-lab/makeflow-examples

Workflow Language Evolution Classic "Make" Representation output.5.txt : input.txt mysim.exe mysim.exe p 10 input.txt > output.5.txt JSON Representation of One Job Tim Shaffer (tshaffe1@nd.edu) { "command" : "mysim.exe p 10 input.txt > output.5.txt", "outputs" : [ "output.5.txt" ], "inputs" : [ "input.dat", "mysim.exe" ] } JX (JSON + Expressions) for Multiple Jobs { "command" : "mysim.exe p " + x*2 + " input.txt > output." + x + ".txt", "outputs" : [ "output" + x + "txt" ], "inputs" : [ "input.dat", "mysim.exe" ] } for x in [ 1, 2, 3, 4, 5 ]

Elaborating Jobs with Wrappers input input Task output Original Job input strace output Nick Hazekamp (nhazekam@nd.edu) input Task logfile Add Debug Tool Singularity input strace output Add Container Environment input Task logfile rhel6.img

Work Queue Architecture Submit Complete 4-core machine Work Queue Master Send files Send tasks Worker Process A B C Local Files and Programs C A B Cache Dir A B T Task.1 Sandbox A C T Task.2 Sandbox 2-core task 2-core task

Makeflow + Work Queue torque_submit_workers Makeflow Master Local Files and Programs submit tasks W National Computing Resource W W Thousands of Workers in a Personal Cloud W Campus HTCondor Pool W W condor_submit_workers W Private Cluster W ssh W W W Public Cloud Provider W W

Problem: Software Deployment Getting software installed on a new site is a big pain! The user (probably) knows the top level package, but doesn't know: How they set up the package (sometime last year) Dependencies of the top-level package. Which packages are system default vs optional How to import the package into their environment via PATH, LD_LIBRARY_PATH, etc. Many scientific codes are not distributed via rpm, yum, pkg, etc. (and user isn't root)

Even Bigger Differences: Hardware Architecture X86-64, KNL, Blue Gene, GPUs, FPGAs,... Operating System Green Avocado Linux, Blue Dolphin Linux, Red Rash Linux,... Batch System or Resource Manager HTCondor, PBS, Torque, Cobalt, Mesos,... Container Technology None, Docker, Singularity, CharlieCloud, Shifter, Running Services FUSE, CVMFS, HTTP Proxy, Frontier,... Network Configuration Public/Private, Incoming/Outgoing, Firewalls

Our Approach: Provide tools that make a flexible mapping between the user's intent and the local site: "I need OS RHEL6" Check if already present, otherwise run in container. "I need container X.img" Try Docker, try Singularity, try CharlieCloud. "I need /cvmfs/repo.cern.ch" Look for /cvmfs; activate FUSE; build/run parrot. "I need software package X" Look for X installed locally, else build from recipe.

Delivering Platforms with RunOS

"runos slc6 mysim.exe" Kyle Sweeney (ksweene3@nd.edu) mysim.exe mysim.exe slc6 slc6 mysim.exe docker singularity charliecloud slc6 rhel7 debian45 Site A Site B Site C

Delivering Software with VC3-Builder

Typical User Dialog Installing BLAST "I just need BLAST." "Oh wait, I need Python!" "Sorry, Python 2.7.12" "Python requires SSL?" "What on earth is pcre?" "I give up!"

MAKER Bioinformatics Pipeline

VC3-Builder Architecture Software Recipes Upstream Sources Sealed Package A B Recipe C D Archival or Disconnected Operation Builder Cached Recipes Cached Sources Install Tree PATH PYTHONPATH LD_LIBRARY_PATH Task A C B D Task Sandbox

"vc3-builder require ncbi-blast"..plan: ncbi-blast => [, ]..Try: ncbi-blast => v2.2.28...plan: perl => [v5.008, (New ] Shell with Desired Environment)...Try: perl => v5.10.0...could not add any source for: perl v5.010 => [v5.8.0, ]...Try: perl bash$ => v5.16.0 which blastx...could not add /tmp/test/vc3-root/x86_64/redhat6/ncbi-blast/v2.2.28/ any source for: perl v5.016 => [v5.8.0, ]...Try: perl => v5.24.0 bin/blastx...plan: perl-vc3-modules => [v0.001.000, ]...Try: perl-vc3-modules => v0.1.0...success: bash$ perl-vc3-modules blastx help v0.1.0 => [v0.1.0, ]...Success: perl USAGE v5.24.0 => [v5.8.0, ]...Plan: python => [v2.006, ]...Try: python blastx => v2.6.0 [-h] [-help] [-import_search_strategy filename]...could not add. any.. source for: python v2.006 => [v2.6.0, ]...Try: python => v2.7.12...plan: openssl => [v1.000, ] bash$ exit.. Downloading 'Python-2.7.12.tgz' from http://download.virtualclusters.org/builder-files details: /tmp/test/vc3-root/x86_64/redhat6/python/v2.7.12/python-build-log processing for ncbi-blast-v2.2.28 preparing 'ncbi-blast' for x86_64/redhat6 Downloading 'ncbi-blast-2.2.28+-x64-linux.tar.gz' from http://download.virtualclusters.org details: /tmp/test/vc3-root/x86_64/redhat6/ncbi-blast/v2.2.28/ncbi-blast-build-log

Problem: Long Build on Head Node Many computing sites limit the amount of work that can be done on the head node, so as to maintain quality of service for everyone. Solution: Move the build jobs out to the cluster nodes. (Which may not have network connections.) Idea: Reduce the problem to something we already know how to do: Workflow! But how do we bootstrap the workflow software? With the builder!

vc3-builder --require makeflow --require ncbi-blast -- makeflow T condor blast.mf

Bootstrapping a Workflow Software Recipes Upstream Sources Worker Build BLAST Nodes Task Task Build BLAST Task Task Builder Head Node Build BLAST Task Task Build BLAST Task Task Makeflow Makeflow Build Makeflow Build BLAST BLAST Build BLAST Task Task Build BLAST Task Task

Example Applications Octave MAKER Benjamin Tovar, Nicholas Hazekamp, Nathaniel Kremer-Herman, and Douglas Thain, Automatic Dependency Management for Scientific Applications on Clusters, IEEE International Conference on Cloud Engineering (IC2E), April, 2018.

Delivering Services with VC3-Builder

"vc3-builder require cvmfs"..plan: cvmfs => [, ]..Try: cvmfs => v2.0.0...plan: parrot => [v6.0.16, ]...Try: parrot => v6.1.1...plan: cctools => [v6.1.1, ]...Try: cctools => v6.1.1...plan: zlib => [v1.002, ]...Try: zlib => v1.2.8...success: zlib v1.2.8 => [v1.2.0, ]...Fail-prereq: cctools-v6.1.1...plan: perl => [v5.010.000, v5.010001]...try: perl cmssoft => v5.10.0 fermilab gluex mis osg...plan: snoplussnolabca perl-vc3-modules => [v0.001.000, ]...Try: perl-vc3-modules... => v0.1.0...success: perl-vc3-modules v0.1.0 => [v0.1.0, ]...could not add any source for: perl v5.010 => [v5.10.0, v5.10001.0]...try: perl bash$ => v5.16.0 exit...plan: perl-vc3-modules => [v0.001.000, ]...Try: perl-vc3-modules => v0.1.0...success: perl-vc3-modules v0.1.0 => [v0.1.0, ]...could not add any source for: perl v5.016 => [v5.10.0, v5.10001.0]...try: perl => v5.24.0...plan: perl-vc3-modules => [v0.001.000, ]...Try: perl-vc3-modules => v0.1.0...success: perl-vc3-modules v0.1.0 => [v0.1.0, ]...Success: perl v5.24.0 => [v5.10.0, v5.10001.0] (New Shell with Desired Environment) bash$ ls /cvmfs/oasis.opensciencegrid.org atlas csiu geant4 ilc nanohub osg-software auger enmr glow ligo nova sbgrid

Putting it All Together

Request 128 nodes of16 cores, 4G RAM, 16G disk with RHEL6 operating system, CVMFS and Maker software installed: Factory Submit Batch Jobs Batch System 128X Native RHEL7 Machines RunOS "rhel6" Singularity Container VC3 Builder Parrot + CVMFS Worker Sand box Task Makeflow

VC3: Virtual Clusters for Community Computation Douglas Thain, University of Notre Dame Rob Gardner, University of Chicago John Hover, Brookhaven National Lab http://virtualclusters.org

You have developed a large scale workload which runs successfully at a University cluster. Now, you want to migrate and expand that application to national-scale infrastructure. (And allow others to easily access and run similar workloads.) Traditional HPC Facility Distributed HTC Facility Commercial Cloud

Concept: Virtual Cluster 200 nodes of 24 cores and 64GB RAM/node 150GB local disk per node 100TB shared storage space 10Gb outgoing public internet access for data CMS software 8.1.3 and python 2.7 Virtual Cluster Service Virtual Cluster Factory Virtual Virtual Cluster Virtual Cluster Virtual Factory Cluster Factory Cluster Factory Factory Virtual Cluster Deploy Services Deploy Services Traditional HPC Facility Distributed HTC Facility Deploy Services Commercial Cloud

Some Thoughts: Make software dependencies more explicit. Proposed: Nothing should be available by default, all software should require an "import" step. Layer tools with common abstractions: Factory -> HTCondor -> Singularity -> Builder -> Worker Provision -> Schedule -> Contain -> Build-> Execute Need better, portable, ways of expressing: What software environment the user wants. What environment the site provides. The ability to nest environments is critical!

Acknowledgements Notre Dame CMS: Kevin Lannon Mike Hildreth Kenyi Hurtado Univ. Chicago: Rob Gardner Lincoln Bryant Suchandra Thapa Benedikt Riedel Brookhaven Lab: John Hover Jose Caballero DE-SC0015711 VC3: Virtual Clusters for Community Computation ACI-1642409 SI2-SSE: Scaling up Science on Cyberinfrastructure with the Cooperative Computing Tools

@ProfThain http://ccl.cse.nd.edu