PU. Setting up parallel universe in your pool and when (not

Slides:



Advertisements
Similar presentations
Jaime Frey Computer Sciences Department University of Wisconsin-Madison OGF 19 Condor Software Forum Routing.
Advertisements

Dan Bradley Computer Sciences Department University of Wisconsin-Madison Schedd On The Side.
Greg Thain Computer Sciences Department University of Wisconsin-Madison Condor Parallel Universe.
Setting up of condor scheduler on computing cluster Raman Sehgal NPD-BARC.
Efficiently Sharing Common Data HTCondor Week 2015 Zach Miller Center for High Throughput Computing Department of Computer Sciences.
High Throughput Computing with Condor at Notre Dame Douglas Thain 30 April 2009.
Condor Overview Bill Hoagland. Condor Workload management system for compute-intensive jobs Harnesses collection of dedicated or non-dedicated hardware.
Intermediate HTCondor: Workflows Monday pm Greg Thain Center For High Throughput Computing University of Wisconsin-Madison.
Utilizing Condor and HTC to address archiving online courses at Clemson on a weekly basis Sam Hoover 1 Project Blackbird Computing,
HTPC - High Throughput Parallel Computing (on the OSG) Dan Fraser, UChicago OSG Production Coordinator Horst Severini, OU (Greg Thain, Uwisc) OU Supercomputing.
Distributed Systems Early Examples. Projects NOW – a Network Of Workstations University of California, Berkely Terminated about 1997 after demonstrating.
High Throughput Parallel Computing (HTPC) Dan Fraser, UChicago Greg Thain, Uwisc.
Parallel Computing The Bad News –Hardware is not getting faster fast enough –Too many architectures –Existing architectures are too specific –Programs.
1 Integrating GPUs into Condor Timothy Blattner Marquette University Milwaukee, WI April 22, 2009.
High Throughput Computing with Condor at Purdue XSEDE ECSS Monthly Symposium Condor.
Track 1: Cluster and Grid Computing NBCR Summer Institute Session 2.2: Cluster and Grid Computing: Case studies Condor introduction August 9, 2006 Nadya.
HTCondor workflows at Utility Supercomputing Scale: How? Ian D. Alderman Cycle Computing.
Building a Real Workflow Thursday morning, 9:00 am Lauren Michael Research Computing Facilitator University of Wisconsin - Madison.
Large, Fast, and Out of Control: Tuning Condor for Film Production Jason A. Stowe Software Engineer Lead - Condor CORE Feature Animation.
Condor Tugba Taskaya-Temizel 6 March What is Condor Technology? Condor is a high-throughput distributed batch computing system that provides facilities.
Grid Computing I CONDOR.
High Throughput Parallel Computing (HTPC) Dan Fraser, UChicago Greg Thain, UWisc Condor Week April 13, 2010.
Experiences with a HTCondor pool: Prepare to be underwhelmed C. J. Lingwood, Lancaster University CCB (The Condor Connection Broker) – Dan Bradley
1 Multiprocessor and Real-Time Scheduling Chapter 10 Real-Time scheduling will be covered in SYSC3303.
Condor Project Computer Sciences Department University of Wisconsin-Madison A Scientist’s Introduction.
Condor: High-throughput Computing From Clusters to Grid Computing P. Kacsuk – M. Livny MTA SYTAKI – Univ. of Wisconsin-Madison
Building a Real Workflow Thursday morning, 9:00 am Greg Thain University of Wisconsin - Madison.
Derek Wright Computer Sciences Department University of Wisconsin-Madison MPI Scheduling in Condor: An.
Building a Real Workflow Thursday morning, 9:00 am Lauren Michael Research Computing Facilitator University of Wisconsin - Madison.
HTCondor and Workflows: An Introduction HTCondor Week 2015 Kent Wenger.
Using Map-reduce to Support MPMD Peng
Derek Wright Computer Sciences Department University of Wisconsin-Madison Condor and MPI Paradyn/Condor.
How High Throughput was my cluster? Greg Thain Center for High Throughput Computing.
Advanced topics Cluster Training Center for Simulation and Modeling September 4, 2015.
Building the International Data Placement Lab Greg Thain Center for High Throughput Computing.
HTCondor’s Grid Universe Jaime Frey Center for High Throughput Computing Department of Computer Sciences University of Wisconsin-Madison.
HTCondor Security Basics HTCondor Week, Madison 2016 Zach Miller Center for High Throughput Computing Department of Computer Sciences.
Campus Grid Technology Derek Weitzel University of Nebraska – Lincoln Holland Computing Center (HCC) Home of the 2012 OSG AHM!
Five todos when moving an application to distributed HTC.
Introduction to High Throughput Computing and HTCondor Monday AM, Lecture 1 Ian Ross Center for High Throughput Computing University of Wisconsin-Madison.
CHTC Policy and Configuration
Debugging Common Problems in HTCondor
Intermediate HTCondor: More Workflows Monday pm
Experience on HTCondor batch system for HEP and other research fields at KISTI-GSDC Sang Un Ahn, Sangwook Bae, Amol Jaikar, Jin Kim, Byungyun Kong, Ilyeon.
HTCondor Security Basics
Dynamic Deployment of VO Specific Condor Scheduler using GT4
Intermediate HTCondor: Workflows Monday pm
Examples Example: UW-Madison CHTC Example: Global CMS Pool
IW2D migration to HTCondor
Matchmaker Policies: Users and Groups HTCondor Week, Madison 2017
High Availability in HTCondor
CREAM-CE/HTCondor site
Condor: Job Management
The Scheduling Strategy and Experience of IHEP HTCondor Cluster
Integration of Singularity With Makeflow
Troubleshooting Your Jobs
Negotiator Policy and Configuration
Accounting, Group Quotas, and User Priorities
Understanding Supernovae with Condor
HTCondor Security Basics HTCondor Week, Madison 2016
Job Matching, Handling, and Other HTCondor Features
Condor and Multi-core Scheduling
Basic Grid Projects – Condor (Part I)
Introduction to High Throughput Computing and HTCondor
HTCondor Training Florentia Protopsalti IT-CM-IS 1/16/2019.
What’s New in Work Queue
Sun Grid Engine.
Late Materialization has (lately) materialized
Negotiator Policy and Configuration
Troubleshooting Your Jobs
Presentation transcript:

PU. Setting up parallel universe in your pool and when (not PU! Setting up parallel universe in your pool and when (not!) to use it HTCondor Week 2018 – Madison, WI Jason Patton (jpatton@cs.wisc.edu) Center for High Throughput Computing Department of Computer Sciences University of Wisconsin-Madison

Imagine some software… Requires more resources than a single execute machine can provide, or Needs a list of machines prior to runtime, or Assumes child processes will run (and exit) on all machines at the same time Examples: MPI Master-Worker frameworks (some, not all) Server-Client testing (networking, database)

What is parallel universe? All slots for a job are claimed by the “dedicated scheduler” before the job runs Each slot is given a node number ($(NODE)) Execution begins simultaneously By default, all slots terminate when the executable on the "Node 0” slot exits Slots share a single job ad and a spool directory on the submit machine (for condor_chirp)

Use parallel universe when a job… Cannot be made to fit on a single machine Needs a list of machines prior to runtime Needs simultaneous execution on slots Classic example: You have a MPI job that cannot fit on one machine, and you don’t have a HPC cluster. Example helper script for Open MPI: openmpiscript

Don’t use parallel universe… When submitting MPI jobs that could be made to fit on a single machine Break these up in to multicore vanilla universe jobs… MPI works well on single machines (core binding, shared memory, single fs, etc.)

Example parallel universe job life cycle machine_count = 8 Dedicated scheduler claims idle slots (slots become Claimed/Idle) until it has 8 slots that match job requirements Job execution begins on all slots simultaneously Processes on all slots terminate when the process on node 0 exits Slots return to Claimed/Idle state

Example parallel universe job setup.sh universe = parallel executable = setup.sh arguments = $(NODE) transfer_input_files = master.sh,worker.sh output = out.$(CLUSTER).$(NODE) error = err.$(CLUSTER).$(NODE) log = log.$(CLUSTER) request_cpus = 1 request_memory = 1G machine_count = 8 queue #!/usr/bin/env bash node=$1 # check if on node 0 if (( $node == 0 )); then # run master program ./master.sh else # run worker program ./worker.sh fi queue 2?

Example parallel universe job life cycle $ condor_status Name State Activity slot1@execute1 Claimed Busy slot2@execute1 Claimed Busy slot3@execute1 Unclaimed Idle slot4@execute1 Claimed Busy slot1@execute2 Unclaimed Idle slot2@execute2 Unclaimed Idle slot3@execute2 Claimed Busy slot4@execute2 Unclaimed Idle slot1@execute3 Unclaimed Idle slot2@execute3 Unclaimed Idle Job Submitted

Example parallel universe job life cycle $ condor_status Name State Activity slot1@execute1 Claimed Busy slot2@execute1 Claimed Busy slot3@execute1 Unclaimed Idle slot4@execute1 Claimed Busy slot1@execute2 Unclaimed Idle slot2@execute2 Unclaimed Idle slot3@execute2 Claimed Busy slot4@execute2 Unclaimed Idle slot1@execute3 Unclaimed Idle slot2@execute3 Unclaimed Idle Job Submitted

Example parallel universe job life cycle $ condor_status Name State Activity slot1@execute1 Claimed Busy slot2@execute1 Claimed Busy slot3@execute1 Claimed Idle slot4@execute1 Claimed Busy slot1@execute2 Claimed Idle slot2@execute2 Claimed Idle slot3@execute2 Claimed Busy slot4@execute2 Claimed Idle slot1@execute3 Claimed Idle slot2@execute3 Claimed Idle Negotiation Cycle #1

Example parallel universe job life cycle $ condor_status Name State Activity slot1@execute1 Claimed Busy slot2@execute1 Claimed Busy slot3@execute1 Claimed Idle slot4@execute1 Claimed Busy slot1@execute2 Claimed Idle slot2@execute2 Claimed Idle slot3@execute2 Claimed Busy slot4@execute2 Claimed Idle slot1@execute3 Claimed Idle slot2@execute3 Claimed Idle Negotiation Cycle #2

Example parallel universe job life cycle $ condor_status Name State Activity slot1@execute1 Claimed Busy slot2@execute1 Claimed Busy slot3@execute1 Claimed Idle slot4@execute1 Unclaimed Idle slot1@execute2 Claimed Idle slot2@execute2 Claimed Idle slot3@execute2 Claimed Busy slot4@execute2 Claimed Idle slot1@execute3 Claimed Idle slot2@execute3 Claimed Idle

Example parallel universe job life cycle $ condor_status Name State Activity slot1@execute1 Claimed Busy slot2@execute1 Claimed Busy slot3@execute1 Claimed Idle slot4@execute1 Claimed Idle slot1@execute2 Claimed Idle slot2@execute2 Claimed Idle slot3@execute2 Claimed Busy slot4@execute2 Claimed Idle slot1@execute3 Claimed Idle slot2@execute3 Claimed Idle Negotiation Cycle #3

Example parallel universe job life cycle $ condor_status Name State Activity slot1@execute1 Claimed Busy slot2@execute1 Claimed Busy slot3@execute1 Claimed Idle slot4@execute1 Claimed Idle slot1@execute2 Claimed Idle slot2@execute2 Claimed Idle slot3@execute2 Claimed Busy slot4@execute2 Claimed Idle slot1@execute3 Claimed Idle slot2@execute3 Claimed Idle Negotiation Cycle #4

Example parallel universe job life cycle $ condor_status Name State Activity slot1@execute1 Claimed Busy slot2@execute1 Claimed Busy slot3@execute1 Claimed Idle slot4@execute1 Claimed Idle slot1@execute2 Claimed Idle slot2@execute2 Claimed Idle slot3@execute2 Claimed Busy slot4@execute2 Claimed Idle slot1@execute3 Claimed Idle slot2@execute3 Claimed Idle Negotiation Cycle #5

Example parallel universe job life cycle $ condor_status Name State Activity slot1@execute1 Unclaimed Idle slot2@execute1 Claimed Busy slot3@execute1 Claimed Idle slot4@execute1 Claimed Idle slot1@execute2 Claimed Idle slot2@execute2 Claimed Idle slot3@execute2 Claimed Busy slot4@execute2 Claimed Idle slot1@execute3 Claimed Idle slot2@execute3 Claimed Idle

Example parallel universe job life cycle $ condor_status Name State Activity slot1@execute1 Claimed Idle slot2@execute1 Claimed Busy slot3@execute1 Claimed Idle slot4@execute1 Claimed Idle slot1@execute2 Claimed Idle slot2@execute2 Claimed Idle slot3@execute2 Claimed Busy slot4@execute2 Claimed Idle slot1@execute3 Claimed Idle slot2@execute3 Claimed Idle Negotiation Cycle #6

Example parallel universe job life cycle $ condor_status Name State Activity slot1@execute1 Claimed Busy slot2@execute1 Claimed Busy slot3@execute1 Claimed Busy slot4@execute1 Claimed Busy slot1@execute2 Claimed Busy slot2@execute2 Claimed Busy slot3@execute2 Claimed Busy slot4@execute2 Claimed Busy slot1@execute3 Claimed Busy slot2@execute3 Claimed Busy Job Starts

Example parallel universe job life cycle $ condor_status Name State Activity slot1@execute1 Claimed Idle slot2@execute1 Claimed Busy slot3@execute1 Claimed Idle slot4@execute1 Claimed Idle slot1@execute2 Claimed Idle slot2@execute2 Claimed Idle slot3@execute2 Claimed Busy slot4@execute2 Claimed Idle slot1@execute3 Claimed Idle slot2@execute3 Claimed Idle Job Completes

Example parallel universe job life cycle $ condor_status Name State Activity slot1@execute1 Unclaimed Idle slot2@execute1 Claimed Busy slot3@execute1 Unclaimed Idle slot4@execute1 Unclaimed Idle slot1@execute2 Unclaimed Idle slot2@execute2 Unclaimed Idle slot3@execute2 Claimed Busy slot4@execute2 Unclaimed Idle slot1@execute3 Unclaimed Idle slot2@execute3 Unclaimed Idle 10 minutes later

Enabling parallel universe in your pool Choose a submit machine to host the “dedicated scheduler” Set DedicatedScheduler on participating execute machines Adjust other settings (START, RANK, PREEMPT, etc.) to taste Easy way – modify the example config: condor_config.local.dedicated.resource

Example config submit1.wisc.edu execute1.wisc.edu DedicatedScheduler = "DedicatedScheduler@submit1.wisc.edu" START = (Scheduler =?= $(DedicatedScheduler)) || ($(START)) PREEMPT = Scheduler =!= $(DedicatedScheduler) && ($(PREEMPT)) SUSPEND = Scheduler =!= $(DedicatedScheduler) && ($(SUSPEND)) RANK = Scheduler =?= $(DedicatedScheduler)

Example config submit1.wisc.edu execute1.wisc.edu execute2.wisc.edu DedicatedScheduler = "DedicatedScheduler@submit1.wisc.edu" DedicatedScheduler = "DedicatedScheduler@submit1.wisc.edu" submit2.wisc.edu highmem.wisc.edu gpu.wisc.edu submit3.wisc.edu

Don’t enable parallel universe… If you are particularly concerned about reduced throughput in your pool Claimed/Idle slots when PU jobs are being scheduled and completed The dedicated scheduler may not schedule dynamic slot claims efficiently If you’re not careful about where PU jobs can land, slow networks can hurt performance, see ParallelSchedulingGroup in manual Preemption hurts total throughput if enabled

Other config notes Can adjust how long dedicated scheduler holds on to Claimed/Idle slots UNUSED_CLAIM_TIMEOUT, see example condor_config.local.dedicated.submit PU jobs usually talk between slots, check firewall settings PU jobs may be sensitive to shared filesystems and user names

Parallel Universe Trivia Can you submit PU jobs without your admin having configured your pool for them? No. (Yes, will sit idle while dedicated scheduler searches for nonexistent dedicated resources.) Should all MPI jobs use PU? No, only if they cannot fit on a single machine. Can you submit Docker jobs using PU? Yes! universe = docker WantParallelScheduling = true

Questions? Example examples/ location: /usr/share/doc/condor-8.7.8/examples