28
Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison [email protected]

Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison [email protected]

Embed Size (px)

Citation preview

Page 1: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

Matchmaking in the Condor System

Rajesh RamanComputer Sciences DepartmentUniversity of [email protected]

Page 2: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

2www.cs.wisc.edu/condor

Outline

› Introduction to Matchmaking Architecture, Philosophy

› Classified Advertisements (ClassAds) Language for Matchmaking

› Matchmaking in Condor

› Future Directions in Matchmaking

› Conclusion

Page 3: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

3www.cs.wisc.edu/condor

Matchmaking

› Matchmaking is a methodology for Distributed Resource Management

› Conceptually simple: Service providers and requesters advertise Compatible advertisements are matched Matched entities cooperate to perform service

› Developed for opportunistic environments Use resources as and when available

Page 4: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

4www.cs.wisc.edu/condor

Matchmaking (Cont.)

› Customers and Servers advertise to a Matchmaking Service

› Advertisements describe advertising entities Characteristics Requirements and Constraints Preferences

› We call these descriptions classified advertisements (classads)

Page 5: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

5www.cs.wisc.edu/condor

ClassAd Language Versions

› New ClassAd implementation will be released with Condor Version 6.5

› Older implementation lacks: Some data types: lists, nested classads,

time stamps, time intervals Some operators: conditional, array

subscript, bit-wise operators Others: function calls

Page 6: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

6www.cs.wisc.edu/condor

Example ClassAds[ Type = “Tenant”; Name = “John Doe”; Age = 28; HavePets = false; RentOffer = 900; Requirements = other.Type==“Apartment” && other.Rent <= RentOffer && other.HeatIncluded; Rank = (other.Location==“Downtown” ? 2000 : other.OnBusLine ? 1500 : 1000) - other.Rent]

Page 7: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

7www.cs.wisc.edu/condor

Example ClassAds (Cont.)[

Type = “Apartment”; Location = “Downtown”; HeatIncluded = true; Rent = 850; Phone = “608-555-1234”; Requirements = other.Type == “Tenant” && !other.HavePets && other.RentOffer >= Rent; Rank = other.RentOffer]

Page 8: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

8www.cs.wisc.edu/condor

The Matchmaker

› Matchmaker matches compatible classads Matchmaker ensures that Server and

Customer Constraints are satisfied Server and Customer Preferences are honored

(within bounds of framework)

› Relevant parties notified when successfully matched

› Matched parties claim each other

Page 9: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

9www.cs.wisc.edu/condor

Matchmaking

Tenant Agent

Apartment Agent

Customer Ads Server AdsMatchmaker

Page 10: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

10www.cs.wisc.edu/condor

Matchmaking

Tenant Agent

Apartment Agent

Step 1: Advertise

Matchmaker

Page 11: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

11www.cs.wisc.edu/condor

Matchmaking

Tenant Agent

Apartment Agent

Step 2: Match

Matchmaker

Page 12: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

12www.cs.wisc.edu/condor

Matchmaking

Matchmaker

Tenant Agent

Apartment Agent

Step 3: Notify

To matched Customers To matched Servers

Page 13: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

13www.cs.wisc.edu/condor

Matchmaking

Matchmaker

Tenant Agent

Apartment Agent

Step 4: Claim

Page 14: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

14www.cs.wisc.edu/condor

Matchmaking Components

› Advertising Language

› Matchmaker Protocol Defines how ads are sent to the Matchmaker Names “well-known” attributes Defines how matched entities are notified

› Matchmaking Algorithm Algorithm used for making matches

› Claiming Protocol Defines how matched entities establish an allocation

Page 15: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

15www.cs.wisc.edu/condor

Classified Advertisements

› Set of (Attribute Name,Expression) pairs

› Self-describing (no separate schema) Combines schema, data and query Entities classads may include arbitrary attributes, so

workstations may advertise• Physical location• Locally cached data files• Time windows when preemption is unlikely

› Syntax: [ n0 = e0; n1 = e1; … ; ni = ei ] XML is a good fit; not currently used

Page 16: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

16www.cs.wisc.edu/condor

Condor Examples[ Type = "Job"; Owner = "raman"; Cmd = "run_sim"; Args = "-Q 17 3200"; Cwd = "/u/raman"; ImageSize = 31M; Qdate = ‘Sat Jan 9... ’ ... Rank = other.Kflops... Requirements = ....]

[ Type = "Machine"; Name = "xxy.cs. ..."; Arch = ”ALPHA"; OpSys = ”OSF1"; Mips = 104; Kflops = 21893; Memory = 256M; LoadAvg = 0.042969; ... Rank = ...; Requirements = ...]

Page 17: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

17www.cs.wisc.edu/condor

Attribute Expressions

› Constants 104, 0.042969, "iX86”, true,‘15:45’, ‘Sat Jan 9 15:33

1999 …’

› References attr, self.attr, other.attr

› Operators >>, <<, +, *,<, >=, &&, ... › Functions strcat, substr, regexp,

member,...

› Lists { expr, expr, ... }

› ClassAds [ name=expr; name=expr; ... ]

Page 18: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

18www.cs.wisc.edu/condor

Three-valued Logicother.Memory > 32 all

other.Memory == 32 UNDEFINED

other.Memory != 32 if other has no

!(other.Memory == 32) "Memory" attribute

Logical Operators (&& and ||) can squash UNDEFINED

For example:

other.Mips >= 100 || other.Kflops >= 1000

TRUE if either attribute exists and satisfies condition

Page 19: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

19www.cs.wisc.edu/condor

Job Constraint Example

Requirements =other.Type = "Machine"&& other.Arch = ”ALPHA"&& other.OpSys = ”OSF1"&& other.Disk > 1G&& other.Memory >= self.ImageSize;

Page 20: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

20www.cs.wisc.edu/condor

Rank Examples

// job's rank for machineRank = other.Kflops/1k + other.Memory/32M;

// machine's rank for job

Rank = member(other.Owner,ResearchGrp) ? 10 : member(other.Owner, Friends) ? 5 : 0;

Page 21: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

21www.cs.wisc.edu/condor

Machine Constraint Example

IsIdle = LoadAvg<0.3 && KeyboardIdle>‘00:15’;

Requirements = !member(other.Owner,Untrusted) && ( Rank >= 10 ? True : IsIdle &&

( Rank >= 5 ? True : DayTime() < ‘6:00’ || DayTime() > ‘18:00’ )

)

Page 22: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

22www.cs.wisc.edu/condor

Condor Matchmaking

› To match two ads A and B Set up environment such that in A

• self evaluates to A (MY in old classads)• other evaluates to B (TARGET in old classads)

› Check per classad policy A.Requirements and B.Requirements A.Rank and B.Rank for preferences

› Condor Matchmaking is a 4-way balancing act! User Priorities, Job Preferences, Machine Preferences,

Administrator Policies

Page 23: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

23www.cs.wisc.edu/condor

Condor Matchmaking: Priorities

› Submitters are assigned priorities based on Past resource usage Administrator policy: boost and decay factors

› Submitters negotiated in priority order Users with better priority more likely to get what

they want

› Priorities used to determine “fair-share” Share determined by ratio of priorities May use more than fair-share if no one else wants

resources

Page 24: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

24www.cs.wisc.edu/condor

Condor Matchmaking: Preemption

› Job may be preempted for different reasons Priority: New job’s Owner has better priority Rank: Machine likes new job more

› Administrator may control preemption Stall priority preemption

• PREEMPTION_REQUIREMENTS parameter• e.g., prevent “thrashing”

Affect choice of machine to preempt• PREEMPTION_RANK parameter• e.g., reduce network load

Page 25: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

25www.cs.wisc.edu/condor

Condor Matchmaking: Scheme

› For submitter’s job J (upto fair-share) Only consider vacant or preemptable

machines Order lexicographically by

1. Job rank of machine2. Preemption Mode (None > Rank > Priority)3. PREEMPTION_RANK (if applicable)

Check PREEMPTION_REQUIREMENTS if preempting for priority

Page 26: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

26www.cs.wisc.edu/condor

Future Work

› Efficient Matchmaking Attribute and constraint indexing schemes Initial results very promising!

• (8k,8k) takes 3 mins. instead of 2 hrs. 3 mins.

› Multilateral Matchmaking: Gang-Matching Matchmaking with more than two entities

• e.g., Job-Workstation-License In addition to co-allocation, can implement

• Regulation: limit number of running instances• Aggregation: abstract aggregate services

Page 27: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

27www.cs.wisc.edu/condor

ClassAd Summary

› Distributed resource management Distributed clients, servers Heterogeneous resources

› Classified advertisements Semi-structured data model Schema, data, and query in one structure

› Matchmaking Condor’s matchmaking algorithm

Page 28: Matchmaking in the Condor System Rajesh Raman Computer Sciences Department University of Wisconsin-Madison raman@cs.wisc.edu

28www.cs.wisc.edu/condor

ClassAd Summary (Cont.)

› ClassAds are used throughout Condor Represent and query system daemons

• startds, schedds, masters, collectors, checkpoint servers

Configuration and Job Control

› C++ and Java implementations

› Available as part of Condor and as stand-alone libraries