Greg Thain Computer Sciences Department University of Wisconsin-Madison HTPC on the OSG.

Slides:



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

Open Science Grid Discovering and understanding the site environment Or, yet another site test kit.
Dan Bradley Computer Sciences Department University of Wisconsin-Madison Schedd On The Side.
Overview of Wisconsin Campus Grid Dan Bradley Center for High-Throughput Computing.
Greg Thain Computer Sciences Department University of Wisconsin-Madison Condor Parallel Universe.
Building Campus HTC Sharing Infrastructures Derek Weitzel University of Nebraska – Lincoln (Open Science Grid Hat)
Condor and GridShell How to Execute 1 Million Jobs on the Teragrid Jeffrey P. Gardner - PSC Edward Walker - TACC Miron Livney - U. Wisconsin Todd Tannenbaum.
Jaime Frey Computer Sciences Department University of Wisconsin-Madison Condor-G: A Case in Distributed.
Workload Management Massimo Sgaravatto INFN Padova.
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.
First steps implementing a High Throughput workload management system Massimo Sgaravatto INFN Padova
Evaluation of the Globus GRAM Service Massimo Sgaravatto INFN Padova.
Intermediate HTCondor: Workflows Monday pm Greg Thain Center For High Throughput Computing University of Wisconsin-Madison.
Zach Miller Condor Project Computer Sciences Department University of Wisconsin-Madison Flexible Data Placement Mechanisms in Condor.
The SAM-Grid Fabric Services Gabriele Garzoglio (for the SAM-Grid team) Computing Division Fermilab.
Zach Miller Computer Sciences Department University of Wisconsin-Madison What’s New in Condor.
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.
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.
Building a Real Workflow Thursday morning, 9:00 am Lauren Michael Research Computing Facilitator University of Wisconsin - Madison.
IntroductiontotoHTCHTC 2015 OSG User School, Monday, Lecture1 Greg Thain University of Wisconsin– Madison Center For High Throughput Computing.
The Glidein Service Gideon Juve What are glideins? A technique for creating temporary, user- controlled Condor pools using resources from.
Condor Tugba Taskaya-Temizel 6 March What is Condor Technology? Condor is a high-throughput distributed batch computing system that provides facilities.
Condor Project Computer Sciences Department University of Wisconsin-Madison Advanced Condor mechanisms CERN Feb
1 Evolution of OSG to support virtualization and multi-core applications (Perspective of a Condor Guy) Dan Bradley University of Wisconsin Workshop on.
Grid Computing I CONDOR.
High Throughput Parallel Computing (HTPC) Dan Fraser, UChicago Greg Thain, UWisc Condor Week April 13, 2010.
Turning science problems into HTC jobs Wednesday, July 20 th 9am Zach Miller & Greg Thain Condor Team University of Wisconsin-Madison.
Batch Scheduling at LeSC with Sun Grid Engine David McBride Systems Programmer London e-Science Centre Department of Computing, Imperial College.
Grid job submission using HTCondor Andrew Lahiff.
Condor: High-throughput Computing From Clusters to Grid Computing P. Kacsuk – M. Livny MTA SYTAKI – Univ. of Wisconsin-Madison
Workflows: from development to Production Thursday morning, 10:00 am Greg Thain University of Wisconsin - Madison.
NGS Innovation Forum, Manchester4 th November 2008 Condor and the NGS John Kewley NGS Support Centre Manager.
Remote Cluster Connect Factories David Lesny University of Illinois.
Condor in LIGO Festivus-Style Peter Couvares Syracuse University, LIGO Scientific Collaboration Condor Week May 2013.
Building a Real Workflow Thursday morning, 9:00 am Lauren Michael Research Computing Facilitator University of Wisconsin - Madison.
Condor Project Computer Sciences Department University of Wisconsin-Madison Grids and Condor Barcelona,
Derek Wright Computer Sciences Department University of Wisconsin-Madison Condor and MPI Paradyn/Condor.
Pilot Factory using Schedd Glidein Barnett Chiu BNL
Grid Compute Resources and Job Management. 2 Grid middleware - “glues” all pieces together Offers services that couple users with remote resources through.
Condor Project Computer Sciences Department University of Wisconsin-Madison Condor Job Router.
How High Throughput was my cluster? Greg Thain Center for High Throughput Computing.
Condor Project Computer Sciences Department University of Wisconsin-Madison Running Interpreted Jobs.
HTCondor-CE for USATLAS Bob Ball AGLT2/University of Michigan OSG AHM March, 2015 Bob Ball AGLT2/University of Michigan OSG AHM March, 2015.
Condor Project Computer Sciences Department University of Wisconsin-Madison Using New Features in Condor 7.2.
HTCondor’s Grid Universe Jaime Frey Center for High Throughput Computing Department of Computer Sciences University of Wisconsin-Madison.
First evaluation of the Globus GRAM service Massimo Sgaravatto INFN Padova.
Campus Grid Technology Derek Weitzel University of Nebraska – Lincoln Holland Computing Center (HCC) Home of the 2012 OSG AHM!
Job submission overview Marco Mambelli – August OSG Summer Workshop TTU - Lubbock, TX THE UNIVERSITY OF CHICAGO.
Parag Mhashilkar (Fermi National Accelerator Laboratory)
Condor on Dedicated Clusters Peter Couvares and Derek Wright Computer Sciences Department University of Wisconsin-Madison
UCS D OSG Summer School 2011 Life of an OSG job OSG Summer School A peek behind the scenes The life of an OSG job by Igor Sfiligoi University of.
Introduction to Distributed HTC and overlay systems Tuesday morning, 9:00am Igor Sfiligoi Leader of the OSG Glidein Factory Operations University of California.
Introduction to the Grid and the glideinWMS architecture Tuesday morning, 11:15am Igor Sfiligoi Leader of the OSG Glidein Factory Operations University.
UCS D OSG Summer School 2011 Overlay systems OSG Summer School An introduction to Overlay systems Also known as Pilot systems by Igor Sfiligoi University.
Condor Week May 2012No user requirements1 Condor Week 2012 An argument for moving the requirements out of user hands - The CMS experience presented.
Honolulu - Oct 31st, 2007 Using Glideins to Maximize Scientific Output 1 IEEE NSS 2007 Making Science in the Grid World - Using Glideins to Maximize Scientific.
Dynamic Deployment of VO Specific Condor Scheduler using GT4
Operating a glideinWMS frontend by Igor Sfiligoi (UCSD)
Workload Management System
Condor: Job Management
CHTC working w/ Chemistry Dept
Condor and Multi-core Scheduling
HTCondor Training Florentia Protopsalti IT-CM-IS 1/16/2019.
The Condor JobRouter.
GLOW A Campus Grid within OSG
PU. Setting up parallel universe in your pool and when (not
Presentation transcript:

Greg Thain Computer Sciences Department University of Wisconsin-Madison HTPC on the OSG

Overview › What/Why HTPC › How to set up local HTPC › GlideIn/WMS for HTPC

Terms: HPC › Run one job fast › MPI › SuperComputer › Metric:  FLOPS › Fast interconnect

HPC Goal: Run jobs as fast as possible Relatively few, Big parallel jobs (usually…)

HTC › Metric:  CPU hours/year › Utilization › Each core independent › Lots of serial jobs › More, cheaper machines  No fast interconnects

Hardware trends › Moore’s Law › Moore cores › 12 core deployed today › 48 core tomorrow? › Machines are not homogenous

Combine the two… › What do you get?

HTPC, or “Whole Machine” › HTPC schedules whole machines, › Not cores › When an HTPC job lands, not other jobs are running on that machine.

What is this good for? › Need > 1 core,  i.e. “small parallel” jobs › Need more memory › Need all local disk throughput › Need GPU or other dedicated hardware

HTPC is parallel agnostic › Just schedules a machine, › Parallelism is up to you  MPI  Threads  Processes  OpenMP, etc. › “Bring it with you”

Sample Apps › Several MPI-ported apps good fit › Molecular dynamics:  Gromacs, Namd, CHARMM, etc. › Parallel enabled matlab › Simple fork-fork-fork jobs

Hybrid HTC - HTPC › Very powerful approach to science › Use HTPC to search broadly › HTC to search deeply

HTPC is not… › Ability to schedule partial machines  (yet) › Built-in MPI library support › Magic bullet for scheduling parallel jobs

HTPC gotchas › Ideally, job needs to run on arbitrary number of cores that are there › Need to bring MPI or runtimes along › Limited resource on OSG today  Running on half dozen sites › Still have time limits at most sites

Setting up HTPC locally › Start locally, act globally › Depends on local batch system: › Submitting via GRAM to local scheduler, needs RSL magic token

SGE › Dunno? Anyone?

LSF › “exclusive” flag to job description › Can only ask for whole machines Rsl =(jobtype=single)(exclusive=1)(maxWallTime= 2800)"

PBS › Use host_count and host_xcount: › rsl="(jobtype=single)(xcount=8)(host_ xcount=1)(maxWallTime=2800)"

Condor › See recipe at   wiki.cs.wisc.edu/index.cgi/wiki?p=Whole MachineSlots wiki.cs.wisc.edu/index.cgi/wiki?p=Whole MachineSlots

Condor › #we will double-allocate resources to overlapping slots › NUM_CPUS = $(DETECTED_CORES)*2 › MEMORY = $(DETECTED_MEMORY)*2 # single-core slots get 1 core each › SLOT_TYPE_1 = cpus=1 › NUM_SLOTS_TYPE_1 = $(DETECTED_CORES) › # whole-machine slot gets as many cores and RAM as the machine has › SLOT_TYPE_2 = cpus=$(DETECTED_CORES), mem=$(DETECTED_MEMORY) › NUM_SLOTS_TYPE_2 = 1 › # Macro specifying the slot id of the whole-machine slot › # Example: on an 8-core machine, the whole-machine slot is 9. › WHOLE_MACHINE_SLOT = ($(DETECTED_CORES)+1) › # ClassAd attribute that is True/False depending on whether this slot is › # the whole-machine slot CAN_RUN_WHOLE_MACHINE = SlotID == $(WHOLE_MACHINE_SLOT) STARTD_EXPRS = $(STARTD_EXPRS) CAN_RUN_WHOLE_MACHINE › # advertise state of each slot as SlotX_State in ClassAds of all other slots › STARTD_SLOT_EXPRS = $(STARTD_SLOT_EXPRS) State › # Macro for referencing state of the whole-machine slot. › # Relies on eval(), which was added in Condor WHOLE_MACHINE_SLOT_STATE = \ eval(strcat("Slot",$(WHOLE_MACHINE_SLOT),"_State")) # Macro that is true if any single-core slots are claimed › # WARNING: THERE MUST BE AN ENTRY FOR ALL SLOTS › # IN THE EXPRESSION BELOW. If you have more slots, you must › # extend this expression to cover them. If you have fewer › # slots, extra entries are harmless. SINGLE_CORE_SLOTS_CLAIMED = \ ($(WHOLE_MACHINE_SLOT_STATE) =?= "Claimed") < \ (Slot1_State =?= "Claimed") + \ (Slot2_State =?= "Claimed") + \ (Slot3_State =?= "Claimed") + \ (Slot4_State =?= "Claimed") + \ (Slot5_State =?= "Claimed") + \ (Slot6_State =?= "Claimed") + \ (Slot7_State =?= "Claimed") + \ (Slot8_State =?= "Claimed") + \ (Slot9_State =?= "Claimed") + \ (Slot10_State =?= "Claimed") + \ (Slot11_State =?= "Claimed") + \ (Slot12_State =?= "Claimed") + \ (Slot13_State =?= "Claimed") + \ (Slot14_State =?= "Claimed") + \ (Slot15_State =?= "Claimed") + \ (Slot16_State =?= "Claimed") + \ (Slot17_State =?= "Claimed") + \ (Slot18_State =?= "Claimed") + \ (Slot19_State =?= "Claimed") + \ (Slot20_State =?= "Claimed") + \ (Slot21_State =?= "Claimed") + \ (Slot22_State =?= "Claimed") + \ (Slot23_State =?= "Claimed") + \ (Slot24_State =?= "Claimed") + \ (Slot25_State =?= "Claimed") + \ (Slot26_State =?= "Claimed") + \ (Slot27_State =?= "Claimed") + \ (Slot28_State =?= "Claimed") + \ (Slot29_State =?= "Claimed") + \ (Slot30_State =?= "Claimed") + \ (Slot31_State =?= "Claimed") + \ (Slot32_State =?= "Claimed") + \ (Slot33_State =?= "Claimed") # Single-core jobs must run on single-core slots START_SINGLE_CORE_JOB = \ TARGET.RequiresWholeMachine =!= True && MY.CAN_RUN_WHOLE_MACHINE == False && \ $(WHOLE_MACHINE_SLOT_STATE) =!= "Claimed" # Whole-machine jobs must run on the whole-machine slot START_WHOLE_MACHINE_JOB = \ TARGET.RequiresWholeMachine =?= True && MY.CAN_RUN_WHOLE_MACHINE START = ($(START)) && ( \ ($(START_SINGLE_CORE_JOB)) || \ ($(START_WHOLE_MACHINE_JOB)) ) # Suspend the whole-machine job until single-core jobs finish. SUSPEND = ($(SUSPEND)) || ( \ MY.CAN_RUN_WHOLE_MACHINE && ($(SINGLE_CORE_SLOTS_CLAIMED)) ) CONTINUE = ( $(SUSPEND) =!= True ) WANT_SUSPEND = ($(WANT_SUSPEND)) || ($(SUSPEND)) # In case group-quotas are being used, trim down the size # of the "pie" to avoid double-counting. GROUP_DYNAMIC_MACH_CONSTRAINT = CAN_RUN_WHOLE_MACHINE == False

Condor › This is  A) Clever use of Condor’s flexibly policy  B) An egregious hack  C) There must be a better way

Example local submit file universe = grid grid_type = gt2 globusscheduler = lepton.rcac.purdue.edu/jobmanager-pbs globusrsl = (jobType=mpi)(queue=standby)(xcount=8)(host_xcount=1) executable = wrapper.sh should_transfer_files = yes when_to_transfer_output = on_exit transfer_input_files = mdrun, mpiexec, topol.tpr transfer_output_files = confout.gro, ener.edr, traj.xtc, traj.trr, md.log output = out.$(CLUSTER) error = err.$(CLUSTER) log = log queue

Note the wrapper #!/bin/sh touch output1 output2 chmod 0755./mdrun./mpiexec./mpiexec -np 8 mdrunome_input_file

Common problems › Usual scheduling problems › New HTPC problem:  Job run, but not exclusively  condor_ssh_to_job help  run a ps command to verify

Computer Engineer Barbie says: Parallel programming is hard HTPC doesn’t make it much easier (maybe it is easier to debug on one machine

That was painful Can there be a better way › Problems with site-selection › Everyone needs to know every site › Everyone needs to know site RSL

Usual OSG Solution: Primary theorem of Computer Science: Any problem can be fixed with another layer of abstraction i.e. Pilots

Condor Week Glidein Factories - by I. Sfiligoi 28 glideinWMS The glideinWMS WMS Legenda: Collector Glidein factory VO frontend Legenda: Central manager Execute daemon Submit node and user(s) Gatekeeper Worker node

Use Glidein “Groups” › HTPC is a glidein “group” › A subset of machines with some property › Each glidein lands on a whole machine › Each glidein advertises one slot  Represents the whole machine

Edit the frontend config: ›

The trick to select jobs

Machine Attrs ›

Example local submit file universe = grid grid_type = gt2 globusscheduler = lepton.rcac.purdue.edu/jobmanager-pbs globusrsl = (jobType=mpi)(queue=standby)(xcount=8)(host_xcount=1) executable = wrapper.sh should_transfer_files = yes when_to_transfer_output = on_exit transfer_input_files = mdrun, mpiexec, topol.tpr transfer_output_files = confout.gro, ener.edr, traj.xtc, traj.trr, md.log output = out.$(CLUSTER) error = err.$(CLUSTER) log = log queue

New job submission file universe = vanilla executable = wrapper.sh should_transfer_files = yes when_to_transfer_output = on_exit transfer_input_files = mdrun, mpiexec, topol.tpr #transfer_output_files = confout.gro, #ener.edr,traj.xtc, traj.trr, md.log +RequiresWholeMachine=true REQUIREMENTS = CAN_RUN_WHOLE_MACHINE output = out.$(CLUSTER) error = err.$(CLUSTER) log = log queue

Why is this man smiling?

No User proxy! › Not an HTPC feature › Plain-old Glidein In feature › Controversial, but very user friendly.

Glidein provides uniformity › condor_ssh_to_job works › file transfer works › periodic_exprs work

“Glidein” › What, exactly do we me my glidein? › What about Panda? (or your fav. Pilot)

HTPC Glue Schema › New schema for HTPC › htpc = enabled › htpc_queues = queue1, queue2, queue3 › # can also take "*" › htpc_blacklist_queues = › htpc_rsl = (foo=bar) # this is the default for HTPC queues › htpc_rsl_queue1 = (zork=quux) # this is a specialized rsl for queue1 only

Want to export your HTPC cluster for all? › Great! Talk to us

Final benefits of HTPC › HTC and HTC can work together › Remove small jobs from supercomputers

Summary Real users doing real work with HTPC today Talk to Dan or Greg for more info Check out HTPC twiki for more info