HTCondor Advanced Job Submission John (TJ) Knoeller Center for High Throughput Computing.

Slides:



Advertisements
Similar presentations
2 nd May 2007Condor Week 2007, Madison WI1 Condor Gotchas II John Kewley Daresbury Laboratory e-Science Centre ( this time it's cynical!)
Advertisements

Overview of Wisconsin Campus Grid Dan Bradley Center for High-Throughput Computing.
Dealing with real resources Wednesday Afternoon, 3:00 pm Derek Weitzel OSG Campus Grids University of Nebraska.
Setting up of condor scheduler on computing cluster Raman Sehgal NPD-BARC.
More HTCondor 2014 OSG User School, Monday, Lecture 2 Greg Thain University of Wisconsin-Madison.
Input from STDIN STDIN, standard input, comes from the keyboard. STDIN can also be used with file re-direction from the command line. For instance, if.
Scripting Languages Chapter 6 I/O Basics. Input from STDIN We’ve been doing so with $line = chomp($line); Same as chomp($line= ); line input op gives.
Perl I/O Software Tools. Lecture 15 / Slide 2 Input from STDIN Reading from STDIN is easy, and we have done it many times. $a = ; In a scalar context,
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.
New condor_submit features in HTCondor 8.3/8.4 John (TJ) Knoeller Condor Week 2015.
Introduction to Linux and Shell Scripting Jacob Chan.
Zach Miller Condor Project Computer Sciences Department University of Wisconsin-Madison Flexible Data Placement Mechanisms in Condor.
Zach Miller Computer Sciences Department University of Wisconsin-Madison What’s New in Condor.
National Alliance for Medical Image Computing Grid Computing with BatchMake Julien Jomier Kitware Inc.
0 UMN 2011 ERP Terapan ABAP Introduction Session # 8.
High Throughput Computing with Condor at Purdue XSEDE ECSS Monthly Symposium Condor.
IntroductiontotoHTCHTC 2015 OSG User School, Monday, Lecture1 Greg Thain University of Wisconsin– Madison Center For High Throughput Computing.
The EPIKH Project (Exchange Programme to advance e-Infrastructure Know-How) WMPROXY API Python & C++ Diego Scardaci
Condor Tugba Taskaya-Temizel 6 March What is Condor Technology? Condor is a high-throughput distributed batch computing system that provides facilities.
Copyright © 2007, Oracle. All rights reserved. Managing Concurrent Requests.
Bigben Pittsburgh Supercomputing Center J. Ray Scott
HTCondor at the RAL Tier-1 Andrew Lahiff STFC Rutherford Appleton Laboratory European HTCondor Site Admins Meeting 2014.
Introduction to Programming the WWW I CMSC Summer 2004 Lecture 6.
Grid Computing I CONDOR.
Compiled Matlab on Condor: a recipe 30 th October 2007 Clare Giacomantonio.
Experiences with a HTCondor pool: Prepare to be underwhelmed C. J. Lingwood, Lancaster University CCB (The Condor Connection Broker) – Dan Bradley
Part 6: (Local) Condor A: What is Condor? B: Using (Local) Condor C: Laboratory: Condor.
Intermediate Condor Rob Quick Open Science Grid HTC - Indiana University.
Grid job submission using HTCondor Andrew Lahiff.
July 28' 2011INDIA-CMS_meeting_BARC1 Tier-3 TIFR Makrand Siddhabhatti DHEP, TIFR Mumbai July 291INDIA-CMS_meeting_BARC.
Ganga A quick tutorial Asterios Katsifodimos Trainer, University of Cyprus Nicosia, Feb 16, 2009.
Dealing with real resources Wednesday Afternoon, 3:00 pm Derek Weitzel OSG Campus Grids University of Nebraska.
Awk- An Advanced Filter by Prof. Shylaja S S Head of the Dept. Dept. of Information Science & Engineering, P.E.S Institute of Technology, Bangalore
Building the International Data Placement Lab Greg Thain Center for High Throughput Computing.
1 Getting Started with OSG Connect ~ an Interactive Tutorial ~ Emelie Harstad, Mats Rynge, Lincoln Bryant, Suchandra Thapa, Balamurugan Desinghu, David.
An Introduction to Using
Intermediate Condor Monday morning, 10:45am Alain Roy OSG Software Coordinator University of Wisconsin-Madison.
HTCondor stats John (TJ) Knoeller Condor Week 2016.
Tutorial: Condor on Windows
Improvements to Configuration
Development Environment
Scheduling Policy John (TJ) Knoeller Condor Week 2017.
Input from STDIN STDIN, standard input, comes from the keyboard.
Bash Introduction (adapted from chapters 1 and 2 of bash Cookbook by Albing, Vossing, & Newham) CPTE 440 John Beckett.
Scheduling Policy John (TJ) Knoeller Condor Week 2017.
Topics Introduction Hardware and Software How Computers Store Data
Examples Example: UW-Madison CHTC Example: Global CMS Pool
Things you may not know about HTCondor
IW2D migration to HTCondor
Thursday AM, Lecture 2 Lauren Michael CHTC, UW-Madison
Things you may not know about HTCondor
Introduction to Programming the WWW I
Condor: Job Management
HTCondor Command Line Monitoring Tool
Troubleshooting Your Jobs
Submitting Many Jobs at Once
Job Matching, Handling, and Other HTCondor Features
Introduction to High Throughput Computing and HTCondor
HTCondor Training Florentia Protopsalti IT-CM-IS 1/16/2019.
The Condor JobRouter.
Automating SAS through the Power of VB Script
gLite Job Management Christos Theodosiou
Late Materialization has (lately) materialized
Input and Output Python3 Beginner #3.
Overview Development of an advanced submit file
Overview Development of an advanced submit file
Troubleshooting Your Jobs
PU. Setting up parallel universe in your pool and when (not
Presentation transcript:

HTCondor Advanced Job Submission John (TJ) Knoeller Center for High Throughput Computing

› Development of an advanced submit file › Using as many techniques and tricks as possible. Overview 2

› I have a lot of media files that I have collected over the years. › I want to convert them all to.mp4 (Sounds like a high-throughput problem…) The Problem 3

Executable = ffmpeg Transfer_executable = false Should_transfer_files = YES file = S1E2 The Train Job.wmv Transfer_input_files = $(file) Args = "-i '$(file)' '$(file).mp4'" Queue Basic submit file for conversion 4

Transfer_input_files = $(file) Args = "-i '$(file)' '$(file).mp4' " Queue FILE from ( S1E1 Serenity.wmv S1E2 The Train Job.wmv S1E3 Bushwhacked.wmv S1E4 Shindig.wmv … ) Converting a set of files 5

› Output is $(file).mp4. So output files are named S1E1 Serenity.wmv.mp4 S1E2 The Train Job.wmv.mp4 S1E3 Bushwhacked.wmv.mp4 S1E4 Shindig.wmv.mp4 Output filename problems 6

› $Fqpdnx() expands to parts of a filename file = "./Video/Firefly/S1E4 Shindig.wmv" $Fp(file) ->./Video/Firefly/ $Fqp(file) -> "./Video/Firefly" $Fd(file) -> Firefly/ $Fn(file) -> S1E4 Shindig $Fx(file) ->.wmv $Fnx(file) -> S1E4 Shindig.wmv $F() to the rescue 7

Transfer_Input_Files = $(file) Args = "-i '$Fnx(file)' '$Fn(file).mp4'" Resulting files are now S1E1 Serenity.mp4 S1E2 The Train Job.mp4 S1E3 Bushwhacked.mp4 S1E4 Shindig.mp4 $Fn() is name without extension 8

› $Fq(file) expands to quoted "filename"  Gives "parse error" with Arguments statement › For Args use '$F(file)' instead.  Becomes 'filename' on LINUX  Becomes "filename" on Windows $Fq() and Arguments 9

FILE = The Train Job.wmv Args = "-i '$Fnx(file)' -w640 '$Fn(file).mp4' " # Tool Tip* see it before you submit it. condor_submit test.sub -dump test.ads condor_status -ads test.ads -af Arguments -i The' 'Train' 'Job.wmv -w640 The' 'Train' 'Job.mp4 # On *nix the job sees -i 'The Train Job.wmv' –w640 'The Train Job.mp4‘ # on Windows the job sees -i "The Train Job.wmv" –w640 "The Train Job.mp4" "new" Args preserves spaces 10

› Argument quoting not portable across operating systems  LINUX needs space and ' escaped  Windows needs double quotes around filenames that have space or ^ › Transfer_input_files will not transfer a file with a comma in the name. › What the job sees can be hard to predict When you can't use Args 11

Executable = xcode.pl Args = -s 640x360 Transfer_executable = true Should_transfer_files = true # +WantIOProxy = true +SourceDir = $Fqp(FILE) +SourceFile = $Fqnx(FILE) +OutFile = "$Fn(FILE).mp4" Batch_name = $Fd(FILE) Queue FILE matching files Firefly/*.wmv Add custom attributes to the job 12

#!/usr/bin/env perl # xcode.pl # Pull filenames from job ad my $src = `condor_status -ads.job.ad -af SourceFile`; my $out = `condor_status -ads.job.ad -af OutFile`; # find condor_chirp (also need +WantIOProxy in job) my $lib = `condor_config_val libexec`; chomp $src; chomp $out; chomp $lib; # fetch the input file system("$lib/condor_chirp fetch '$src' '$src'") # do the conversion system("ffmpeg -i '$out'"); Use a script to query the.job.ad 13

condor_q -batch OWNER BATCH_NAME … DONE RUN IDLE TOTAL JOB_IDS Tj Firefly/ _ 2 2 _ condor_q -af:jh JobStatus SourceFile SourceDir ID JobStatus SourceFile SourceDir S1E1 Serenity Firefly/ S1E2 The Train Job Firefly/ S1E3 Bushwhacked Firefly/ S134 Shindig Firefly/ See how it's going.. 14

› -print-format  control attributes, headings, format, constraint  like -autoformat on steroids  condor_status, condor_q, and condor_history  Config to make it your default output  An "experimental" feature right now htcondor-wiki.cs.wisc.edu/index.cgi/wiki?p=ExperimentalFeatures Use a custom print format 15

SELECT ClusterId AS " ID" PRINTAS JOB_ID JobStatus AS ST PRINTAS JOB_STATUS (time()-EnteredCurrentStatus)/60.0 AS MIN PRINTF %7.2f JobBatchName AS BATCH SourceFile AS SOURCE RemoteHost=!=undefined ? RemoteHost : "_" AS SLOT WHERE SourceFile=!=undefined SUMMARY STANDARD ID ST MIN BATCH SOURCE SLOT R 5.02 Firefly/ S1E2 The Train Job Custom print format xcode.cpf 16

› In your personal config  ~/.condor/user_config  %USERPROFILE%\.condor\user_config › Save the xcode.cpf file and add this knob # PERSONAL = $ENV(HOME)/.condor # PERSONAL = $ENV(USERPROFILE)\.condor Q_DEFAULT_PRINT_FORMAT_FILE=$(PERSONAL)/xcode.cpf Make it your default output 17

Queue FILE from ( S1E1 Serenity.wmv # S1E2 The Train Job.wmv # S1E3 Bushwhacked.wmv … ) use a python-style slice to define a subset Queue FILE matching files [:1] *.wmv Test using a subset of jobs 18

› Put $(slice) in your submit file Queue FILE matching files $(slice) *.wmv › Then control the slice from the command line condor_submit 'slice=[:1]' firefly.sub Even easier if you prepare 19

size=-s $CHOICE(Step,640x360,800x450) Args="-i '$Fnx(file)' $(size) '$Fn(file).mp4'" Queue 2 file from ( S1E1 Serenity.wmv S1E2 The Train Job.wmv S1E3 Bushwhacked.wmv S1E4 Shindig.wmv … ) Queue N with $CHOICE 20

Questions? 21