Hunter of Idle Workstations
University of Wisconsin-Madison
Email: condor-admin@cs.wisc.edu
URL: http://www.cs.wisc.edu/condor
PPT Slide
Outline
- Potential uses of Java in Condor
- Current use of Java in Condor:
- Classified Advertisements
What is Condor?
Condor is Real
- In production use at dozens (hundreds?) of sites
- In production use for over a decade
- Basis of commercial products
Condor System Structure
Customer Agent
- Maintains queue of submitted jobs
Resource Agent
- Monitors system status
- Load average
- Keyboard and mouse idle time
- Memory, disk space, ...
- Listens for requests to run jobs
Central Manager
- Collector
- Accepts ads from resource agents and customer agents
- Negotiator
- Matches customers with resources
- Accountant
- Records resource usage by customers
Condor System Structure
Advertising Protocol
Advertising Protocol
Matching Protocol
Claiming Protocol
Claiming Protocol
Remote System Calls
Condor Meets Java
- Java for Condor implementation
Running Java Jobs
- Run JVM as “vanilla” job
- Class files are treated as ordinary jobs
- Requires uniform environment (same CLASSPATH everywhere)
- No checkpointing
- Re-link JVM as “standard” job
- Remote system calls for class loader
- Checkpoint/restart of “vanilla” jobs
Java-Aware Condor
- Class file as “job”
- Requires “pre-installed” JVM, class libraries and/or job “package” (code + files)
- Also useful for remote compilation
- Platform-independent checkpoint
Java for Implementing Condor
Classified Advertisements
Symmetric Active Matching
- Job requires a workstation
- X86 architecture
- Solaris 2.6
- 1 GB memory
- Resource is only avialable
- Between 6pm and 6am
- If the keyboard is idle at least 15 mintues
- To DOE Contractors
The ClassAd Language
- Set of bindings of Attribute Names to Expressions
- Self-describing (no separate schema)
- Arbitrarily composed and nested
Examples
Attribute Expressions
- Constants 104, 0.042969, "iX86"
- References attr, self.attr, other.attr, expr.attr
- Operators +, *, >>, <, >=, &&, ...
- Functions strcat, substr, floor, member, ...
- Lists { expr, expr, ... }
- ClassAds [ name=expr; name=expr; ... ]
Example Attributes
- Descriptive attributes
- Type = "Job";
- Owner = "raman";
- Arch = "iX86";
- OpSys = "Solaris";
- Memory = 64; // megabytes
- Disk = 323496; // k bytes
Example Attributes
- Current state
- Daytime = 36017; // secs past midnight
- KeyboardIdle = 1432; // seconds
- State = "Unclaimed";
- LoadAvg = 0.042969;
Example Attributes
- Parameters
- ResearchGrp = { "raman", "miron", "solomon", "jbasney" };
- Friends = { "tannenba", "wright" };
- Untrusted = { "rival", "riffraff" };
- WantCheckpoint = 1;
Complex Attributes
Rank = // machine's rank for job
10 * member(other.Owner,ResearchGrp)
+ member(other.Owner, Friends);
Rank = // job's rank for machine
Kflops/1E3 + other.Memory/32;
Constraints
&& other.Memory >= self.Memory;
Constraints
! member(other.Owner, Untrusted) && Rank >= 10
? (LoadAvg < 0.3 && KeyboardIdle > 15*60)
: DayTime < 6*60*60 || DayTime > 18*60*60;
Matching Algorithm
- To match two ads A and B
- Set up enironment such that in A
- self evaluates to A
- other evaluates to B
- other attributes are searched for first in A and then in B
- and vice versa (with A and B interchanged)
- Check if A.Constraint and B.Constraint both evaluate to true
- A.Rank and B.Rank for preferences
Three-valued Logic
other.Memory == 32 UNDEFINED
other.Memory != 32 if other has no
!(other.Memory == 32) "Memory" attribute
other.Mips >= 10 || other.Kflps >= 1000
TRUE if either attribute exists and
satisfies the given condition
Summary
- Distributed resource allocation
- Distributed clients, servers
- Heterogeneous resources
- Distributed ownership
- Classified advertisements
- Semi-structured data model
- Schema, data, and query in one language
- Separation of matching from claiming
Summary
- ClassAds are currently in use throughout Condor
- C++ and Java implementations
- Freely available as part of Condor and as stand-alone libraries
Future Work
- Support “Java” customers
- Vanilla jobs
- Standard jobs
- Java-aware Condor execution engine
Future Work
- Application of ClassAds to other distributed resource-allocation and discovery problems
- Bulk operations and aggregation
- Structural regularity
- Value regularity
Information About Condor
- WWW
- http://www.cs.wisc.edu/condor
- Email
- condor-admin@cs.wisc.edu
- solomon@cs.wisc.edu