Condor and BOINC. Distributed and Volunteer Computing. Presented by Adam Bazinet

Similar documents
Tutorial 4: Condor. John Watt, National e-science Centre

Cloud Computing. Summary

HTCondor overview. by Igor Sfiligoi, Jeff Dost (UCSD)

PARALLEL PROGRAM EXECUTION SUPPORT IN THE JGRID SYSTEM

Making Workstations a Friendly Environment for Batch Jobs. Miron Livny Mike Litzkow

Cloud Computing. Up until now

Scheduling of Parallel Jobs on Dynamic, Heterogenous Networks

An update on the scalability limits of the Condor batch system

Special Topics: CSci 8980 Edge History

Adaptive Cluster Computing using JavaSpaces

Processes and Threads. Processes: Review

DISTRIBUTED COMPUTING AND OPTIMIZATION SPACE EXPLORATION FOR FAIR A1\TD EFFICIENT BENCHMARKING OF CRYPTOGRAPHIC CORES IN FPGAS

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

Announcements. Reading. Project #1 due in 1 week at 5:00 pm Scheduling Chapter 6 (6 th ed) or Chapter 5 (8 th ed) CMSC 412 S14 (lect 5)

Technical Memorandum

Improving Peer-to-Peer Resource Usage Through Idle Cycle Prediction

The Lattice BOINC Project Public Computing for the Tree of Life

Enhancing the Performance of Feedback Scheduling

Cycle Sharing Systems

Operating Systems: Principles and Practice. Mark Zbikowski Gary Kimura (kudos to Tom Anderson)

Day 9: Introduction to CHTC

Motivation. Threads. Multithreaded Server Architecture. Thread of execution. Chapter 4

Corral: A Glide-in Based Service for Resource Provisioning

(HT)Condor - Past and Future

Lecture 2 Process Management

OPERATING SYSTEM. Functions of Operating System:

Networking and High Throughput Computing. Garhan Attebury HTCondor Week 2015

UNIVERSITY OF MINNESOTA. This is to certify that I have examined this copy of master s thesis by. Vishwas Raman

M. Roehrig, Sandia National Laboratories. Philipp Wieder, Research Centre Jülich Nov 2002

Processes. CS 475, Spring 2018 Concurrent & Distributed Systems

High Throughput Urgent Computing

Grid Compute Resources and Grid Job Management

Operating System. Chapter 4. Threads. Lynn Choi School of Electrical Engineering

Announcements/Reminders

Operating Systems. Lecture Process Scheduling. Golestan University. Hossein Momeni

Care and Feeding of HTCondor Cluster. Steven Timm European HTCondor Site Admins Meeting 8 December 2014

Distributed Computing: PVM, MPI, and MOSIX. Multiple Processor Systems. Dr. Shaaban. Judd E.N. Jenne

By James Basney A DISSERTATION SUBMITTED IN PARTIAL FULFILLMENT OF THE DOCTOR OF PHILOSOPHY (COMPUTER SCIENCES) REQUIREMENTS FOR THE DEGREE OF

Multiprocessor Scheduling. Multiprocessor Scheduling

Multiprocessor Scheduling

OPERATING SYSTEMS. UNIT II Sections A, B & D. An operating system executes a variety of programs:

glideinwms UCSD Condor tunning by Igor Sfiligoi (UCSD) UCSD Jan 18th 2012 Condor Tunning 1

Module 4: Processes. Process Concept Process Scheduling Operation on Processes Cooperating Processes Interprocess Communication

Module 4: Processes. Process Concept Process Scheduling Operation on Processes Cooperating Processes Interprocess Communication

Lecture Topics. Announcements. Today: Uniprocessor Scheduling (Stallings, chapter ) Next: Advanced Scheduling (Stallings, chapter

Profiling Grid Data Transfer Protocols and Servers. George Kola, Tevfik Kosar and Miron Livny University of Wisconsin-Madison USA

Process- Concept &Process Scheduling OPERATING SYSTEMS

First evaluation of the Globus GRAM Service. Massimo Sgaravatto INFN Padova

LECTURE 3:CPU SCHEDULING

CSCE 313: Intro to Computer Systems

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

Uniprocessor Scheduling. Basic Concepts Scheduling Criteria Scheduling Algorithms. Three level scheduling

CSCE 313 Introduction to Computer Systems. Instructor: Dezhen Song

Grid Compute Resources and Job Management

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

Applications, services. Middleware. OS2 Processes, threads, Processes, threads, communication,... communication,... Platform

Building a Virtualized Desktop Grid. Eric Sedore

CS 326: Operating Systems. CPU Scheduling. Lecture 6

Chapter 3: Processes. Operating System Concepts 9 th Edition

Operating Systems Overview. Chapter 2

Multiprocessor Scheduling. Multiprocessor Scheduling

NETW3005 Operating Systems Lecture 1: Introduction and history of O/Ss

CS 578 Software Architectures Fall 2014 Homework Assignment #1 Due: Wednesday, September 24, 2014 see course website for submission details

The MOSIX Scalable Cluster Computing for Linux. mosix.org

TITLE: PRE-REQUISITE THEORY. 1. Introduction to Hadoop. 2. Cluster. Implement sort algorithm and run it using HADOOP

CS418 Operating Systems

Large-Scale GPU programming

CHAPTER 2: PROCESS MANAGEMENT

Comp 310 Computer Systems and Organization

OVERHEADS ENHANCEMENT IN MUTIPLE PROCESSING SYSTEMS BY ANURAG REDDY GANKAT KARTHIK REDDY AKKATI

Process. Program Vs. process. During execution, the process may be in one of the following states

Lecture 7: February 10

Multiprocessor scheduling

IBM InfoSphere Streams v4.0 Performance Best Practices

SMD149 - Operating Systems

Diagram of Process State Process Control Block (PCB)

IX: A Protected Dataplane Operating System for High Throughput and Low Latency

glideinwms architecture by Igor Sfiligoi, Jeff Dost (UCSD)

glideinwms Training Glidein Internals How they work and why by Igor Sfiligoi, Jeff Dost (UCSD) glideinwms Training Glidein internals 1

Threads SPL/2010 SPL/20 1

Daniel D. Warner. May 31, Introduction to Parallel Matlab. Daniel D. Warner. Introduction. Matlab s 5-fold way. Basic Matlab Example

SEDA: An Architecture for Well-Conditioned, Scalable Internet Services

Frequently asked questions from the previous class survey

Processes and Threads

Condor-G: HTCondor for grid submission. Jaime Frey (UW-Madison), Jeff Dost (UCSD)

Message-Passing Shared Address Space

Autonomic Condor Clouds. David Wolinsky ACIS P2P Group University of Florida

Chapter 5: Processes & Process Concept. Objectives. Process Concept Process Scheduling Operations on Processes. Communication in Client-Server Systems

Towards Ensuring Collective Availability in Volatile Resource Pools via Forecasting

Lecture 17: Threads and Scheduling. Thursday, 05 Nov 2009

HSA Foundation! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room (Bld 20)! 15 December, 2017!

! How is a thread different from a process? ! Why are threads useful? ! How can POSIX threads be useful?

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings

School of Computer and Information Science

Chapter 4: Processes. Process Concept

!! How is a thread different from a process? !! Why are threads useful? !! How can POSIX threads be useful?

CS 3733 Operating Systems

Processes, PCB, Context Switch

Processes and Non-Preemptive Scheduling. Otto J. Anshus

Progress Report Toward a Thread-Parallel Geant4

Transcription:

Condor and BOINC Distributed and Volunteer Computing Presented by Adam Bazinet

Condor Developed at the University of Wisconsin-Madison Condor is aimed at High Throughput Computing (HTC) on collections of distributively owned resources Mainly used to scavenge idle CPU cycles from workstations

Typical Condor Pool = Process Spawned = ClassAd Communication Pathway Submit-Only master schedd schedd Regular Node master startd schedd Central Manager master startd negotiator collector Regular Node master startd schedd Execute-Only master startd Execute-Only master startd

Condor Daemons condor_master - keeps other daemons running condor_startd - advertises a given resource condor_starter - spawns a remote Condor job condor_schedd - local job scheduler condor_shadow - coordinates with submitted job condor_collector - keeps status of Condor pool condor_negotiator - does all matchmaking

Condor Universes Universes are runtime environments for jobs Standard universe Provides checkpointing and remote system calls Application must be re-linked with condor_compile Vanilla universe Instead of with remote system calls, files are accessed with NFS/AFS or explicitly transferred to the executing host Other universes: PVM, MPI, Globus, Java, Scheduler

Matchmaking Matchmaking is Condor s scheduling mechanism Jobs specify their requirements as a list of attributes and values Resources advertise their capabilities as a list of attributes and values (ClassAds) The condor_negotiator matches jobs to resources using these criteria

Condor - A Hunter of Idle Workstations Michael J. Litzkow, Miron Livny, Matt W. Mutka

Previous Work In three key areas: The analysis of workstation usage patterns The design of remote capacity allocation algorithms The development of remote execution facilities

Design Goals Condor is designed to serve users executing long running background jobs on idle workstations Job placement should be transparent Job migration should be supported Fair access to cycles is expected The system should be low overhead

The Scheduling Spectrum At one end: a centralized, static coordinator would handle scheduling At the other end: workstations cooperate to conduct a scheduling policy In the middle: Condor!

Remote Unix (RU) Facility Turns idle workstations into cycle servers When invoked, a shadow process runs locally as the surrogate of the remotely executing process System calls go over the network back to the shadow (an RPC of sorts) Used in the standard universe, nowadays

Checkpointing When a job is interrupted, RU checkpoints it - the state of the program is sent back to submitting machine, and the job may be rescheduled Checkpoints consist of the text, data, bss, and stack program segments, registers, status of open files, outstanding messages to the shadow, and so on...

Checkpointing (cont d) Adding checkpointing requires re-linking an application with condor_compile, which fattens up the binary a good deal Programs now use much more RAM than they did in the past, so checkpointing in the Condor fashion may be problematic in some cases...

Fair Access to Remote Cycles By means of the Up-Down algorithm In essence, the fewer cycles you burn, the greater your priority over other users of the system... (a dynamic equilibrium)

Performance Study 23 workstations executing Condor jobs were monitored for 1 month Study simulated a heavy user, and several light users Jobs ranged from 30 minutes to 6 hours Queue length as high as 40 jobs, for the heavy user

Results On average, light users didn t have to wait long for their jobs to run - that s good Utilization of remote resources was substantially increased - an additional 200 machine days of capacity were consumed by the Condor system Coordinator predicted to be able to manage at least 100 workstations with low overhead

Results (cont d) Average cost of job placement and checkpointing was 2.5 seconds (again, would be higher nowadays) On average, all jobs experienced less than one checkpoint per hour Remote Unix calls are 20x more expensive than a comparable local call A metric called leverage is defined as the ratio of remote capacity consumed to local capacity consumed

Results: Leverage All jobs show very high leverage values - that s good

Conclusions The major design goals were achieved! Job placement is transparent Job migration is supported Fair access to cycles is granted The system is low overhead

Condor Today Condor has been extremely successful It is used by a variety of organizations: large corporations, small businesses, and of course, academic institutions At least one company formed to provide Condor support: www.cyclecomputing.com Requests for source code are evaluated on a case-by-case basis

Top Five Myths About Condor Myth: Condor requires users to recompile their applications. Reality: Condor runs ordinary, unmodified applications. Myth: Condor has a single point of failure. Reality: Condor has excellent failure isolation. Myth: Condor is only good at "cycle stealing." Reality: Condor can effectively manage many kinds of distributed systems. Myth: Condor only runs sequential jobs. Reality: Condor has extensive support for parallel programming environments. Myth: Condor doesn't do "Grid" computing. Reality: Condor is involved in many forms of distributed computing, including the "Grid."

Designing a Runtime System for Volunteer Computing David P. Anderson, Carl Christensen, Bruce Allen

BOINC BOINC - Berkeley Open Infrastructure for Network Computing A platform for volunteer computing Popular in the scientific community Well established projects include SETI@home, Folding@home, and others

Design Goals To attract and retain volunteers To handle widely varying applications Support for application debugging Support for all popular platforms

BOINC Runtime System Consists of an application, the core client, the BOINC manager, and an optional BOINC screensaver

BOINC Core Client (CC) Can be run as a standalone command line program, or as a service Responsible for scheduling applications Also checks resource consumption of the running application BOINC runtime library allows application to interact with core client

Architecture: Shared Memory For each application, the CC creates a shared memory segment containing a number of unidirectional message channels

Architecture: Application Thread Structure Applications are threaded (pthreads on UNIX, native threads on Windows)

Compound Applications Consists of several programs - typically a coordinator that executes one or more worker programs

Task Control CC can perform various operations on running tasks: suspend, resume, quit, abort These operations are implemented by sending messages to the process control channel

Status Reporting CC needs to know the CPU time and memory usage of each application every second (or so) The BOINC runtime library makes the measurements and reports them through the status channel

Credit Reporting By default, credit is computed by multiplying a benchmark score by the application s total CPU time However, for a number of reasons, this estimate can be erroneous Hence, there is support in the BOINC API for allowing the application to directly compute floating point operations

Directory Structure and File Access BOINC must run tasks in separate directories, but we want to avoid making unnecessary copies of data boinc_resolve_filename("infile", physical_name); f = boinc_fopen(physical_name, "r");

Checkpointing Not absolutely necessary, but extremely helpful when trying to get long-running results back, or when a reliable turnaround time is desired Checkpointing scheme is application specific! Unlike the Condor mechanism... BOINC users care about checkpointing immensely (and will harass you indefinitely until you implement it)

Graphics Applications supplied graphics are viewable either as a screensaver or in a window BOINC runtime library limits the fraction of CPU time used by the graphics thread

Remote Diagnostics Application s standard error is directed to a file and returned to the server for all tasks If an application crashes or is aborted, a stack trace is written to standard error Problems may occur only with specific OSes, architectures, library versions, etc.

Long-running Applications Some projects run tasks that take an extremely long time to complete Besides checkpointing, other mechanisms are necessary to support these tasks - for example, periodically granting users credit, or communicating intermediate results to the server for processing These mechanisms use the trickle messages channel

Conclusions BOINC is very flexible - it satisfies those who want it to stay out of the way completely, as well as those who really want to be involved in the science BOINC supports a wide range of applications and runs on every major platform Future plans include making better use of GPUs and multi-core machines