Before you learn about how to submit a job, it is important to understand how Condor allocates resources. Understanding the unique framework by which Condor matches submitted jobs with machines is the key to getting the most from Condor's scheduling algorithm.
Condor simplifies job submission by acting as a matchmaker of ClassAds. Condor's ClassAds are analogous to the classified advertising section of the newspaper. Sellers advertise specifics about what they have to sell, hoping to attract a buyer. Buyers may advertise specifics about what they wish to purchase. Both buyers and sellers list constraints that need to be satisfied. For instance, a buyer has a maximum spending limit, and a seller requires a minimum purchase price. Furthermore, both want to rank requests to their own advantage. Certainly a seller would rank one offer of $50 dollars higher than a different offer of $25. In Condor, users submitting jobs can be thought of as buyers of compute resources and machine owners are sellers.
All machines in a Condor pool advertise their attributes, such as available RAM memory, CPU type and speed, virtual memory size, current load average, along with other static and dynamic properties. This machine ClassAd also advertises under what conditions it is willing to run a Condor job and what type of job it would prefer. These policy attributes can reflect the individual terms and preferences by which all the different owners have graciously allowed their machine to be part of the Condor pool. You may advertise that your machine is only willing to run jobs at night and when there is no keyboard activity on your machine. In addition, you may advertise a preference (rank) for running jobs submitted by you or one of your co-workers.
Likewise, when submitting a job, you specify a ClassAd with your requirements and preferences. The ClassAd includes the type of machine you wish to use. For instance, perhaps you are looking for the fastest floating point performance available. You want Condor to rank available machines based upon floating point performance. Or, perhaps you care only that the machine has a minimum of 128 Mbytes of RAM. Or, perhaps you will take any machine you can get! These job attributes and requirements are bundled up into a job ClassAd.
Condor plays the role of a matchmaker by continuously reading all the job ClassAds and all the machine ClassAds, matching and ranking job ads with machine ads. Condor makes certain that all requirements in both ClassAds are satisfied.
Once Condor is installed, you will get a feel for what a machine ClassAd does by trying the condor_ status command. Try the condor_ status command to get a summary of information from ClassAds about the resources available in your pool. Type condor_ status and hit enter to see a summary similar to the following:
Name Arch OpSys State Activity LoadAv Mem ActvtyTime adriana.cs INTEL SOLARIS251 Claimed Busy 1.000 64 0+01:10:00 alfred.cs. INTEL SOLARIS251 Claimed Busy 1.000 64 0+00:40:00 amul.cs.wi SUN4u SOLARIS251 Owner Idle 1.000 128 0+06:20:04 anfrom.cs. SUN4x SOLARIS251 Claimed Busy 1.000 32 0+05:16:22 anthrax.cs INTEL SOLARIS251 Claimed Busy 0.285 64 0+00:00:00 astro.cs.w INTEL SOLARIS251 Claimed Busy 0.949 64 0+05:30:00 aura.cs.wi SUN4u SOLARIS251 Owner Idle 1.043 128 0+14:40:15
The condor_ status command has options that summarize machine ads in a variety of ways. For example,
Refer to the condor_ status command
reference page located on page
for a complete description of the condor_ status command.
Figure 2.1 shows the complete machine ClassAd for a single workstation: alfred.cs.wisc.edu. Some of the listed attributes are used by Condor for scheduling. Other attributes are for information purposes. An important point is that any of the attributes in a machine ad can be utilized at job submission time as part of a request or preference on what machine to use. Additional attributes can be easily added. For example, your site administrator can add a physical location attribute to your machine ClassAds.