Classified Advertisements (classads) are the lingua franca of HTCondor. They are used for describing jobs, workstations, and other resources. They are exchanged by HTCondor processes to schedule jobs. They are logged to files for statistical and debugging purposes. They are used to enquire about current state of the system.
A classad is a mapping from attribute names to expressions.
In the simplest cases, the expressions are simple constants (integer, floating
point, or string). A classad is thus a form of property list.
Attribute expressions can also be more complicated. There is a protocol
for evaluating an attribute expression of a classad vis a vis
another ad. For example, the expression "other.size > 3
" in one
ad evaluates to true if the other ad has an attribute named
size
and the value of that attribute is (or evaluates to)
an integer greater than three. Two classads match if each ad
has an attribute requirements
that evaluates to true
in the context of the other ad. Classad matching is used by the HTCondor
central manager to determine the compatibility of jobs and
workstations where they may be run.
The classad library is available as a separate stand-alone package for use in applications other than HTCondor.
If you use the ClassAd library and have any questions or comments, we encourage you to subscribe to the HTCondor-users mailing list. This list is for discussion of ClassAds in addition to HTCondor. There is a web page for subscribing to the mailing list. The old mailing list classad-users has been retired, however the archives are still available.
Papers and Slides
- Policy Driven Heterogeneous
Resource Co-Allocation with Gangmatching Proceedings of the
Twelfth IEEE International Symposium on High-Performance Distributed
Computing,
June, 2003, Seattle, WA.
Matchmaking extended from two-way to multiway matches, and a variety of techniques to make it fast. - Matchmaking: Distributed Resource
Management for High Throughput Computing Proceedings of the Seventh
IEEE International Symposium on High Performance Distributed Computing,
July 28-31, 1998, Chicago, IL.
A high-level overview of the ClassAd language and its use in HTCondor. - Matchmaking Frameworks for Distributed
Resource Management Ph.d Dissertation of Rajesh Raman, ,
October 2000
- Overview of the ClassAd Language; PostScript slides of language features
- The ClassAd Language Reference Manual. A formal specification of the syntax and semantics of the ClassAd language.
ClassAd Distribution Downloads
C++ Implementation
- A tutorial for programming the C++ implementation. The tutorial also includes an informal description of the language.
- Documentation of the C++ ClassAd Distribution.
-
Version 1.0.10 of the ClassAd library (08-Apr-2011)
Some bugfixes. Changelog -
Version 1.0.9 of the ClassAd library (23-Aug-2010)
Some bugfixes and better emulation of old ClassAds. Changelog -
Version 1.0.8 of the ClassAd library (10-Jun-2010)
Started versioning the .so library, with 1:0:0. Changelog -
Version 1.0.7 of the ClassAd library (26-May-2010)
Some bugfixes and optional old ClassAds evaluation rules. Changelog -
Version 1.0.6 of the ClassAd library (25-Feb-2010)
Some bugfixes and proper short-circuting for logical operators. Changelog -
Version 1.0.5 of the ClassAd library (09-Feb-2010)
Some bugfixes to ClassAd functions and significant optimizations in this version. Changelog -
Version 1.0.4 of the ClassAd library (08-Oct-2009)
Some bugfixes and addition of eval() function in this version. Changelog -
Version 1.0.3 of the ClassAd library (10-Mar-2009)
Some bugfixes and build system improvements in this version. Changelog -
Version 1.0.1 of the ClassAd library (1-Dec-2008)
A few new features and some bugfixes are in this version. Changelog -
Version 0.9.9 of the ClassAd library (15-Jun-2007)
A few new features and some bugfixes are in this version. Changelog -
Version 0.9.8 of the ClassAd library (14-Jun-2006)
A few new features and some bugfixes are in this version. Changelog -
Version 0.9.7 of the ClassAd library (28-Oct-2004)
Very few changes are in this version. Changelog -
Version 0.9.6 of the ClassAd library (07-Oct-2004)
Many bugfixes are in this version. Changelog
Java Implementation
- Version 1.1
- Verison 2.1
- Verison 2.2
-
Version 2.3
- Documentation: see Version 2.2 above. There were no documentation changes.
- classad.jar
- Java ClassAd source
-
Version 2.4
- Documentation: see Version 2.2 above. There were no documentation changes. This version simply fixed a threading error. (Fix contributed by Luigi Zangrando.)
- classad.jar
- Java ClassAd source
Sample Applications
Acknowledgement
This material is based in part upon work supported by the National Science Foundation under Grant No. 9972232Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.