NPi Note Resource Description Language Requirements

advertisement
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
NPi Note Resource Description Language Requirements
1
Abstract
The New Productivity Initiative (NPi) architecture requires a Resource Description Language
(RDL) for many of the scenarios described in the NPi DRM Reference Model found on the NPi
Working Groups web site. The requirements of a Resource Description Language are discussed
and several products and standards are evaluated for their usability.
This document only presents the different RDLs that are popular in the grid communities does not
make any comments on their suitability to the Requirements. This document should be
considered a living document as groups in the GGF are continually working on RDL standards.
pfoley@platform.com
1
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
Table of Contents
1
Abstract .................................................................................................................................... 1
1
Introduction............................................................................................................................... 3
1.1
RDL Requirements of the NPi architecture....................................................................... 3
1.1.1
Functional Requirements........................................................................................... 3
1.1.2
RDL Characteristics ................................................................................................... 3
2
Globus RSL .............................................................................................................................. 3
3
W3C RDF ................................................................................................................................. 5
4
LSF Resource Requirements String ........................................................................................ 6
5
PBS .......................................................................................................................................... 8
6
Legion....................................................................................................................................... 8
7
Condor ClassAds ..................................................................................................................... 8
7.1
Papers and Slides ............................................................................................................. 9
7.2
ClassAd Distribution Downloads....................................................................................... 9
7.3
C++ Implementation.......................................................................................................... 9
7.4
Java Implementation ......................................................................................................... 9
7.5
Re: Globus RSL --> Condor's ClassAds ........................................................................... 9
8
Sun Grid Engine ..................................................................................................................... 12
9
Maui Scheduler ...................................................................................................................... 13
9.1
MauiME command file..................................................................................................... 13
9.1.1
MPI-over-Myrinet CMD file and Launch Script ........................................................ 13
9.1.2
MPI-over-ethernet CMD file and Launch Script....................................................... 14
9.1.3
Default CMD file....................................................................................................... 14
pfoley@platform.com
2
New Productivity Working Group
Architectural Area
1
Paul Foley
Platform Computing
March 2002
Introduction
1.1
RDL Requirements of the NPi architecture
1.1.1
Functional Requirements
•
Specifying a job's requirements keyword operator value plus logical operators (set, and,
or)
•
Communicating current resource utilization level keyword operator value, no logical
operators needed
•
The means by which resources are described or describe themselves keyword operator
value (plus addition of cost?)
•
Resource discovery including Keyword or keyword operator value tuple plus logical
operators
•
Data schema for logging (as described in Condor ClassAds)
Additional functions like: substitution (as found in Globus RSL), arithmetic operators (as found in
LSF), specification of order of preference (as found in LSF), specification of expected
usage/change of usage rate over time (as found in LSF)
1.1.2
2
RDL Characteristics
•
Hierarchical and nested (inheritance, and containment) Resource Definitions
•
Identifying individual entities and attributes of those entities
•
Grouping entities together with logical operators
•
Must be implement-able and map able to the current RDLs.
•
Extensible for new resource types and categories.
•
Validation – Syntactic validation, semantic validation
Globus RSL
Created to identify and manage demand via brokers and an information service across scientific
and technical grids. Support for parallel computations and co-allocation was paramount. Users
are highly technical.
Elementary form is parenthetical clauses (attribute operator value [value]) prefixed and connected
with additional operators as necessary. Additional operators include:
& for constraints
| for disjunctions
+ for multirequests
Supported attributes are: executable, arguments, environment, stdin, stdout, stderr,
resourceManagerContact, resourceManagerName. Unknown attributes are passed through and
may be handled by subsequent tools.
Examples from Globus tutorial slides:
& (count>=5) (count<=10)
pfoley@platform.com
3
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
(max_time=240)(memory>=64)
(executable=myprog)
‘Create 5-10 instances of myprog, each on a machine with at least 64 MB of memory that is
available to me for 4 hours’
& (executable=myprog)
( | (&(count=5)(memory>=64))
(&(count=10)(memory>=32)))
‘Create 5 instances of myprog on a machine that has at least 64 MB of memory, or 10 instances
on a machine with at least 32MB of memory’
+ (&(count=5)(memory>=64)
(executable=p1))
(&(network=atm)(executable=p2))
‘Execute 5 instances of p1 on a machine with at least 64MB of memory and execute p2 on a
machine with an ATM connection’
Common RSL attributes
rsl_substitution
GRAM attributes
stdin
stdout
stderr
queue
project
dryRun
maxMemory
minMemory
hostCount
arguments
count
directory
executable
environment
jobType
maxTime
maxWallTime
maxCpuTime
gramMyjob
Typical GRAM resource descriptions contain at least a few relations in a conjunction:
(* this is a comment *)
& (executable = a.out (* <-- that is an unquoted literal *))
(directory
= /home/nobody )
(arguments
= arg1 "arg 2")
(count = 1)
Substitutions can be used to make sure the same substring is used multiple times in
a resource description:
& (rsl_substitution
= (TOPDIR
"/home/nobody")
(DATADIR $(TOPDIR)"/data")
pfoley@platform.com
4
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
(EXECDIR $(TOPDIR)/bin) )
(executable = $(EXECDIR)/a.out
(* ^-- implicit concatenation *))
(directory
= $(TOPDIR) )
(arguments
= $(DATADIR)/file1
(* ^-- implicit concatenation *)
$(DATADIR) # /file2
(* ^-- explicit concatenation *)
*))
'$(FOO)'
(* <-- a quoted literal
(environment = (DATADIR $(DATADIR)))
(count = 1)
Performing all variable substitution and removing comments yields an equivalent RSL
string:
& (rsl_substitution
= (TOPDIR
"/home/nobody")
(DATADIR "/home/nobody/data")
(EXECDIR "/home/nobody/bin") )
(executable = "/home/nobody/bin/a.out" )
(directory
= "/home/nobody" )
(arguments
= "/home/nobody/data/file1"
"/home/nobody/data/file2"
"$(FOO)" )
(environment = (DATADIR "/home/nobody/data"))
(count = 1)
3
W3C RDF
Example of how W3C RDF format would be used to express DRM resources:
The hosts in cluster Able are HostA, HostB, HostC.
<rdf:RDF>
<rdf:Description about=”Able”>
<s:hosts>
<rdf:Bag>
<rdf:li resource=”HostA“/>
<rdf:li resource=”HostB“/>
<rdf:li resource=”HostC“/>
</rdf:Bag>
</s:hosts>
</rdf:Description>
pfoley@platform.com
5
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
</rdf:RDF>
[Paul Foley]
This shows the structure that I was trying to explain in our discussion last call (1Mar02). <hosts>
describes one level of a resource hierarchy, <bag> is a generic container within that layer and the
<rdf:li> (list items are entries within the generic container. I don’t agree with the final format since
it doesn’t allow an operator (e.g. memory > 1GB).
I think it would be useful to derive a set of worst-case but believable resource definition examples
against which to test out our evolving approaches. This needs to test the different dimensions of
use; e.g. a resource defining itself, a job defining resource requirements, a resource constraint as
captured in a rule/policy etc.
4
LSF Resource Requirements String
Describes the resources a job needs, used to match demand to supply i.e. select the host(s) for
job execution. Comprised of four sections:
Selection section – specifies the characteristics the job is seeking to match
select[selectstring]
Where selectstring can be created by combining resource names with logical and arithmetic
operators. Resources are load indices (dynamic, defined and built-in to LSF), static resources
(static, defined and built-in to LSF) and external load indices (dynamic, defined external to LSF).
Load indices
Index
Measures
status
r15s
host status string
run queue
processes
length
run queue
processes
length
run queue
processes
length
CPU
(per cent)
utilization
paging
pages in + pages out per
activity
second
logins
users
idle time
minutes
available swap megabytes
space
available
megabytes
memory
available
megabytes
space in
temporary file
system
( /tmp on
UNIX,
C:\temp on
Windows NT
for example)
disk I/O
kilobytes per
(shown by second
r1m
r15m
ut
pg
ls
it
swp
mem
tmp
io
pfoley@platform.com
Units
6
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
lsload -l)
external load
index
configured by
LSF
administrator
name
Static resources
Index
Measures
Units
Determined by
type
model
hname
cpuf
server
rexpri
ncpus
ndisks
maxmem
host type
host model
host name
CPU factor
host can run remote jobs
execution priority (UNIX only)
number of processors
number of local disks
maximum RAM memory available to
users
maximum available swap space
maximum available space in
temporary file system
string
string
string
relative
Boolean
processors
disks
megabytes
configuration
configuration
configuration
configuration
configuration
configuration
LIM
LIM
LIM
megabytes
megabytes
LIM
LIM
maxswp
maxtmp
nice(2) argument
Some resources can also reference the special values any and local.
select[(swp > 50 && type == MIPS) || (swp > 35 && type == ALPHA)]
select[((2*r15s + 3*r1m + r15m) / 6 < 1.0) && !fs && (cpuf > 4.0)]
select[mem>600 && mem<1000 && solaris]
select[ mem<=600 && solaris && cpuf>5]
Ordering section – specifies how resource match hits are to be sorted for selection
order[orderstring]
The order string allows you to specify criteria to select the best host on which to run the job. For
example, you can specify to sort so that those that are lightly loaded or that have large memory are
at the top of the list for selecting hosts.
order[tmp:r15s]
Resource Usage section – defines the expected resource usage of the job including the optional
specification of duration and decay
rusage[usagestring]
The resource usage string is used to specify resource reservation for jobs. Internal and external
load indices are used to define the initial reserved amount of the resource. Duration is the time
period within which the specified resources should be reserved. The decay value indicates how
the reserved amount should decrease over the duration.
rusage[mem=50:duration=100:decay=1]
This example indicates that 50MB memory should be reserved for the job. As the job runs, the
amount reserved will decrease at approximately 0.5 megabytes per minute until the 100 minutes
is up.
pfoley@platform.com
7
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
rusage[mem=25:swp=50]
This example sets the resource reservation for the job to 25MB of memory and 50MB of swap
space.
Job Spanning section – specifies the locality requirements of a parallel job
span[spanstring]
The span string indicates if a parallel batch job should span across multiple hosts.
span[hosts=1]
This indicates that all the processors allocated to this job must be on the same host.
span[ptile=4]
This indicates that only 2 processors on each host should be allocated to the job regardless
of how many processors the host possesses.
Complex resource requirements are specified with multiple sections:
select[ncpus>=4] span[hosts=1]
select[physmem>1500]rusage[physmem=1500:duration=30]
select[mem>1500]rusage[mem=1500:duration=30]
Commonly, no section name is given and the entire expression is treated as a selection string.
mem>1500
5
PBS
Seeking technical information
6
Legion
Contacted Marty Humphry (UVa)
7
Condor ClassAds
Classified Advertisements (classads) are the lingua franca of Condor. They are
used for describing jobs, workstations, and other resources. They are exchanged
by Condor 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 attribute requirements that evaluates to true in the
context of the other ad. Classad matching is used by the Condor 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 Condor.
pfoley@platform.com
8
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
If you use the ClassAd library, we encourage you to subscribe to the ClassAd
mailing list. This list is for discussion among all ClassAd users, and for
occasional announcements related to ClassAds. To subscribe, send an email to
"majordomo@cs.wisc.edu" with:
subscribe classad-users
in the body of your email. You will be required to confirm your registration. At
least one of the ClassAd developers reads this mailing list.
7.1 Papers and Slides
Matchmaking: Distributed Resource Management for High Throughput Computing Proceedings of
the Seventh IEEE International Symposium on High Performance Distributed Computing, July 2831, 1998, Chicago, IL.
A high-level overview of the ClassAd language and its use in Condor.
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 (under construction).
7.2
ClassAd Distribution Downloads
7.3 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 0.9.2 of the ClassAd library (12-Feb-2002)
(There is no need to download this version if you have Version 0.9.1. The new version just
simplifies the installation of ClassAds.)
7.4 Java Implementation
Documentation
classad.jar
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
7.5
Re: Globus RSL --> Condor's ClassAds
To: Massimo Sgaravatto - INFN Padova <massimo.sgaravatto@pd.infn.it>
Subject: Re: Globus RSL --> Condor's ClassAds
From: Stuart Martin <smartin@mcs.anl.gov>
Date: Fri, 14 Apr 2000 10:44:28 -0500
Cc: discuss@globus.org
pfoley@platform.com
9
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
In-Reply-To: <Pine.OSF.4.10.10004141342500.538-100000@ospd00.pd.infn.it>
Sender: owner-discuss@mcs.anl.gov
Massimo,
The Jobmanager only cares about a set of RSL attributes. Any attributes outside of the set are
ignored. The ones you used: requirements, log, notification ... are ignore.
There is some work going on to come up with a good way to allow scheduler specific attributes to
be passed down to the various scheduler scripts. But nothing concrete has been decided upon
yet.
If you need this to work in the near term, you could copy the technique used in the globus-scriptloadleveler-submit script. It looks for environment variables set in the (environment=xxx)
attribute. This will likely be very similar to the eventual implementation.
For example, in the RSL you could have
&
(executable=pippo.condor)
(stdout=out)
(stderr=err)
(count=1)
(label=TestGlobusCondor)
(arguments= 'primo' 'secondo')
(jobtype=condor)
(environment=(REQUIRMENTS='"machine ==
"lxde01.pd.infn.it"')(LOG=/home/sgaravat/log)(NOTIFICATION=always)(NOTIFY_USER=massim
o.sgaravatto@pd.infn.it))
Then modify the globus-scrpt-condor-submit to look for these variables and set the condor
arguments appropriatly.
-Stu
At 01:44 PM 4/14/00 +0200, Massimo Sgaravatto - INFN Padova wrote:
Hi !
I am trying to analyze how the RSL expressions are translated in the Condor's
ClassAds: I am submitting a simple job to a Globus machine that is a member of
a Condor pool, composed by ~ 200 machines (the INFN Condor Wan pool).
I use the command:
globusrun -r lxde01.pd.infn.it/jobmanager-condor -f condor.rsl
And this is condor.rsl:
&
(executable=pippo.condor)
(requirements='''machine == "lxde01.pd.infn.it"''')
(stdout=out)
pfoley@platform.com
10
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
(stderr=err)
(log=/home/sgaravat/log)
(jobtype=condor)
(count=1)
(label=TestGlobusCondor)
(arguments= 'primo' 'secondo')
(notification=always)
(notify_user=massimo.sgaravatto@pd.infn.it)
I edited <deploy>/libexec/globus-script-condor-submit, and deleted the line:
${rm} $condor_file
as suggested by Stu, so in /tmp a condor_script.description.* file is created:
this is the Condor submit description file.
This is my condor_script.description.* (created when I run globusrun):
####################
#
# description file for condor submision
#
####################
Universe
= standard
Executable = pippo.condor
Requirements = OpSys == "LINUX" && Arch == "INTEL" && FileSystemDomain != "xxx"
Arguments = primo secondo
Environment = GLOBUS_GRAM_MYJOB_CONTACT=URLxnexus://lxde01.pd.infn.it:20589/;X509_CERT_DIR=/etc/globus/share/certificates;GLOBUS_GRA
M_JOB_CONTACT=https://lxde01.pd.infn.it:20588/16475/955711556/;GLOBUS_DEPLOY_PAT
H=/etc/globus;GLOBUS_INSTALL_PATH=/usr/local.pd/globus;X509_USER_PROXY=/users/noi/
sgaravat/.globus/.gass_cache/globus_gass_cache_955711556;
Initialdir = /users/noi/sgaravat
Input = /dev/null
Output = /users/noi/sgaravat/.globus/.gass_cache/globus_gass_cache_955711557
Error = /users/noi/sgaravat/.globus/.gass_cache/globus_gass_cache_955711558
It seems that only the "common" RSL attributes are recognized, while the other
attributes (in this case: requirements, log, notification, notify_user)
are not passed unchanged to Condor.
Any ideas ?
Many thanks for your help!
Cheers, Massimo
pfoley@platform.com
11
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
\|///
\ ~ ~ //
(/ @ @ /)
-------oOOo-(_)-oOOo---------------------------------Massimo Sgaravatto
INFN Sezione di Padova
Via Marzolo, 8
35131 Padova - Italy
Tel: ++39 0498277029
Fax: ++39
0498277102
oooO
E-mail: massimo.sgaravatto@pd.infn.it
(
)
Oooo
Home page:
http://www.pd.infn.it/~sgaravat
--------\ (----(
)---------------------------------_)
) /
(_/
References:
Globus RSL --> Condor's ClassAds
From: Massimo Sgaravatto - INFN Padova <massimo.sgaravatto@pd.infn.it>
Prev by Date: Globus RSL --> Condor's ClassAds
Next by Date: globus-script-lsf-queue
Prev by thread: Globus RSL --> Condor's ClassAds
Next by thread: globus-script-lsf-queue
Index(es):
Date
Thread
8
Sun Grid Engine
pfoley@platform.com
12
New Productivity Working Group
Architectural Area
9
Paul Foley
Platform Computing
March 2002
Maui Scheduler
9.1
MauiME command file
Here are some sample MauiME command files.
NOTE FOR MPI JOBS: The executable specified in the "Exec" stanza is run
only on the "head node" that your job runs on. This executable should be a
script that invokes the appropriate mpirun that matches the mpicc you
compiled your program with, (same MPICH version and adapter type)!
9.1.1
MPI-over-Myrinet CMD file and Launch Script
This command file will run a 128 tasks, 1 task-per-node, on 128 nodes using
MPI-over-Myrinet driver.
# Initial working directory and wallclock time
IWD == "/tmp"
WCLimit == 3600
# Account stanza
Account == "WWGD?-1900-53X"
# Task geometry
Tasks == 128
Nodes == 128
TaskPerNode == 1
# Feature requests
Arch == x86
OS == Linux
# MPI Myrinet job
JobType == "mpi.ch_gm"
# Launch script (SEE NOTE BELOW)
Exec == "/usr/bin/runmpi_gm"
# NOTE: args, if any, are separated by whitespace ` '
Args == "/u/specialk/wank/specialks_mpi_myrinet_job"
# Output (Notice the envvar references!)
Output == "/tmp/$(MAUI_JOB_USER)-1x128-gm-$(MAUI_JOB_ID).out"
Error
== "/tmp/$(MAUI_JOB_USER)-1x128-gm-$(MAUI_JOB_ID).err"
Log
== "/tmp/$(MAUI_JOB_USER)-1x128-gm-$(MAUI_JOB_ID).log"
# Stdin tied to null
Input == "/dev/null"
pfoley@platform.com
13
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
The runmpi_gm launch script is installed by the RPM and tarball installations of
the Maui Scheduler. It is also in the CVS source tree in the mauisched/scripts/
directory.
9.1.2
MPI-over-ethernet CMD file and Launch Script
This will run a 128 tasks, 2 tasks-per-node, on 64 nodes using MPI-over-ethernet
driver.
# Initial working directory and wallclock time
IWD == "/tmp"
WCLimit == 360
# Account stanza
Account == "WWGD?-1900-53X"
# Task geometry
Tasks == 128
Nodes == 64
TaskPerNode == 2
# Feature requests
Arch == x86
OS == Linux
# MPI ethernet job
JobType == "mpi.ch_p4"
# Launch script (SEE NOTE BELOW)
Exec == "/usr/bin/runmpi_eth"
# NOTE: args, if any, are separated by whitespace ` '
Args == "/u/specialk/wank/specialks_mpi_ethernet_job foo bar"
# Output (Notice the envvar references!)
Output == "/tmp/$(MAUI_JOB_USER)-2x064-eth-$(MAUI_JOB_ID).out"
Error
== "/tmp/$(MAUI_JOB_USER)-2x064-eth-$(MAUI_JOB_ID).err"
Log
== "/tmp/$(MAUI_JOB_USER)-2x064-eth-$(MAUI_JOB_ID).log"
# Stdin tied to null
Input == "/dev/null"
The runmpi_eth launch script is installed by the RPM and tarball installations of
the Maui Scheduler. It is also in the CVS source tree in the mauisched/scripts/
directory.
9.1.3
Default CMD file
Use this JobType for non-MPI, custom parallel (or serial or embarassingly
parallel) jobs where you've concocted your own message-passing. This JobType
pfoley@platform.com
14
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
will run as many instances of the specified executable on each node and across
nodes as you specify (up to the limits of the cluster, of course).
START CONDITIONS: As you might imagine, each process of your parallel job
is started asynchronously, so you may need to implement a wait-for-all routine to
begin processing.
EXIT CONDITIONS: Your whole job will finish when one of the various
processes exits. Once the scheduler receives notice that one of the processes
has exited, it will stop the whole job! If this is not the desired behavior, then you
can change your code so that the various processes sleep until some condition is
met, at which point at least one of them can exit, stopping the job.
This CMD file specifies to cat the password file to an output file in /tmp across
128 tasks, 1 tasks-per-node, on 128 nodes. NOTE: there is a potential race
condition in getting output for all the nodes due to the EXIT CONDITIONS
section above. Although, in practice this will often run quickly enough that all
tasks will finish before one of them reports back that it has finished!(read the
EXIT CONDITIONS section above). Anyway, fixing this is left as an excercise for
the reader!
# start in /tmp 360 wallclock
IWD == "/tmp"
WCLimit == 360
# Account (this is necessary for billing)
Account == "STAFF-9998-S00"
Tasks == 128
Nodes == 128
TaskPerNode == 1
Arch == x86
OS == Linux
# no MPI
JobType == "Default"
# script (will run on all nodes specified)
Exec == "/bin/cat"
# NOTE: args separated by whitespace ` '
#Args == ""
# stdin
Input
== "/etc/passwd"
# stdout
Output == "/tmp/$(MAUI_JOB_USER)-default-$(MAUI_JOB_ID).out"
# stderr
Error
== "/tmp/$(MAUI_JOB_USER)-default-$(MAUI_JOB_ID).err"
pfoley@platform.com
15
New Productivity Working Group
Architectural Area
Log
Paul Foley
Platform Computing
March 2002
== "/tmp/$(MAUI_JOB_USER)-default-$(MAUI_JOB_ID).log"
Overview Package Class Tree Deprecated Index Help
PREV NEXT FRAMES
NO FRAMES
-------------------------------------------------------------------------------Serialized Form
-------------------------------------------------------------------------------Package unm.maui
Class unm.maui.MauiException implements Serializable
-------------------------------------------------------------------------------Package unm.maui.db
Class unm.maui.db.MauiDBException implements Serializable
-------------------------------------------------------------------------------Package unm.maui.misc
Class unm.maui.misc.AuthSecException implements Serializable
Class unm.maui.misc.JobChecker implements Serializable
Serialized Fields
prefix
java.lang.String prefix
Properties prefix.
Class unm.maui.misc.Logger implements Serializable
Serialized Fields
prefix
java.lang.String prefix
Properties prefix.
Class unm.maui.misc.SystemProfiler implements Serializable
Serialized Fields
prefix
java.lang.String prefix
Properties prefix.
-------------------------------------------------------------------------------Package unm.maui.res
Class unm.maui.res.BasicRes implements Serializable
Serialized Fields
submitter
pfoley@platform.com
16
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
java.lang.String submitter
User who created the reservation.
-------------------------------------------------------------------------------starttime
long starttime
Reservation starttime.
-------------------------------------------------------------------------------submittime
long submittime
Reservation submittime.
-------------------------------------------------------------------------------duration
long duration
Requested duration.
-------------------------------------------------------------------------------endtime
long endtime
Endtime.
-------------------------------------------------------------------------------state
java.lang.String state
Reservation state.
-------------------------------------------------------------------------------slotHash
java.util.Hashtable slotHash
Hashtable of NodeID -> SlotID[].
See Also:
Node, Slot
-------------------------------------------------------------------------------slotsCount
int slotsCount
Number of slots.
-------------------------------------------------------------------------------rmID
RMID rmID
Associated RMs.
--------------------------------------------------------------------------------
pfoley@platform.com
17
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
id
ReservationID id
ID.
-------------------------------------------------------------------------------finished
boolean finished
Class unm.maui.res.BasicSys implements Serializable
Serialized Fields
auth
java.lang.String auth
Authorization.
-------------------------------------------------------------------------------authType
java.lang.String authType
Authorization type.
See Also:
SysReservation.AUTH_USER, SysReservation.AUTH_GROUP,
SysReservation.AUTH_ACCOUNT
-------------------------------------------------------------------------------rmID
RMID rmID
RMID.
-------------------------------------------------------------------------------allowsOldFarts
boolean allowsOldFarts
Grandfathering-in.
-------------------------------------------------------------------------------recurring
boolean recurring
Is this a recurring container?
-------------------------------------------------------------------------------cronline
java.lang.String cronline
Cronline recurring interval.
-------------------------------------------------------------------------------limits
java.util.Hashtable limits
pfoley@platform.com
18
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
Hashtable of limits.
Class unm.maui.res.JobRes implements Serializable
Serialized Fields
job
Job job
Associated job.
Class unm.maui.res.ReservationException implements Serializable
Serialized Fields
id
int id
Problem identification.
-------------------------------------------------------------------------------resource
java.lang.String resource
Resource in question.
-------------------------------------------------------------------------------nodeID
NodeID nodeID
Node in question.
-------------------------------------------------------------------------------req
java.lang.String req
Requested feature (should be mismatch with avail).
-------------------------------------------------------------------------------avail
java.lang.String avail
Available feature (should be mismatch with req).
Class unm.maui.res.ReservationID implements Serializable
Serialized Fields
res
Reservation res
Associated reservation.
-------------------------------------------------------------------------------order
long order
Key order.
Class unm.maui.res.SysRes implements Serializable
pfoley@platform.com
19
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
Serialized Fields
authType
java.lang.String authType
Type of authorization.
-------------------------------------------------------------------------------auth
java.lang.String auth
Authorization string.
-------------------------------------------------------------------------------slotIDHash
java.util.Hashtable slotIDHash
Hashtable of SlotID -> SlotID. Used for quick Slot lookups.
See Also:
SlotID
-------------------------------------------------------------------------------limits
java.util.Hashtable limits
Hashtable of limits.
-------------------------------------------------------------------------------Package unm.maui.rm
Class unm.maui.rm.BasicJob implements Serializable
Serialized Fields
res
JobReservation res
Reservation.
-------------------------------------------------------------------------------state
java.lang.String state
Job state.
-------------------------------------------------------------------------------submittime
long submittime
Submission time (in epoch time).
-------------------------------------------------------------------------------jobID
JobID jobID
The JobID.
pfoley@platform.com
20
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
-------------------------------------------------------------------------------remoteID
JobID remoteID
The remoteID, may be null.
-------------------------------------------------------------------------------debitted
boolean debitted
Job has been debitted from system bank?
-------------------------------------------------------------------------------cmd
CMD cmd
Representation of the Job .cmd file.
-------------------------------------------------------------------------------qos
int qos
Quality of service value.
-------------------------------------------------------------------------------mesg
java.lang.String mesg
Info message.
Class unm.maui.rm.BasicNode implements Serializable
Serialized Fields
state
java.lang.String state
Node state.
-------------------------------------------------------------------------------features
java.util.Hashtable features
Space delimited list of features.
-------------------------------------------------------------------------------slots
Slot[] slots
Configured Slots.
-------------------------------------------------------------------------------slotIDHash
java.util.Hashtable slotIDHash
SlotID -> Slot.
pfoley@platform.com
21
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
See Also:
SlotID, Slot
-------------------------------------------------------------------------------nodeID
NodeID nodeID
NodeID.
-------------------------------------------------------------------------------parent
RM parent
Parent RM.
Class unm.maui.rm.BasicRM implements Serializable
Serialized Fields
scheduler
Scheduler scheduler
The scheduler object.
Reference to the parent scheduler.
-------------------------------------------------------------------------------rmID
RMID rmID
RMID.
Class unm.maui.rm.JobID implements Serializable
Serialized Fields
job
Job job
Associated job.
-------------------------------------------------------------------------------priority
long priority
Job priority.
Class unm.maui.rm.NodeID implements Serializable
Serialized Fields
node
Node node
Associated node.
Class unm.maui.rm.RMException implements Serializable
Class unm.maui.rm.RMID implements Serializable
Serialized Fields
pfoley@platform.com
22
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
rm
RM rm
Associated RM.
Class unm.maui.rm.Slot implements Serializable
Serialized Fields
id
SlotID id
SlotID.
-------------------------------------------------------------------------------parent
Node parent
Parent Node.
-------------------------------------------------------------------------------avail
boolean avail
Slot availability.
-------------------------------------------------------------------------------reservations
java.util.TreeMap reservations
-------------------------------------------------------------------------------rezes
Reservation[] rezes
Class unm.maui.rm.SlotID implements Serializable
Serialized Fields
slot
Slot slot
The Slot.
-------------------------------------------------------------------------------Package unm.maui.sched
Class unm.maui.sched.BackfillMod implements Serializable
Serialized Fields
scheduler
Scheduler scheduler
The scheduler.
-------------------------------------------------------------------------------prefix
java.lang.String prefix
pfoley@platform.com
23
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
Properties prefix.
Class unm.maui.sched.BasicSchedulable implements Serializable
Serialized Fields
duration
long duration
"Wallclock" time, (duration in seconds).
-------------------------------------------------------------------------------submitter
java.lang.String submitter
Name of user submitting schedulable.
-------------------------------------------------------------------------------user
java.lang.String user
Name of user owning schedulable.
-------------------------------------------------------------------------------group
java.lang.String group
Name of group owning schedulable.
-------------------------------------------------------------------------------account
java.lang.String account
Account name.
-------------------------------------------------------------------------------exceptions
java.util.Vector exceptions
List of exceptions.
-------------------------------------------------------------------------------reqSlots
int reqSlots
Total tasks (Slots) required.
-------------------------------------------------------------------------------reqNodesSlots
java.lang.String reqNodesSlots
Comma-separated string of NodeIDs and/or SlotIDs (requested nodes/slots).
-------------------------------------------------------------------------------geometry
java.lang.String geometry
pfoley@platform.com
24
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
Task geometry required.
If null, reqSlots is the determining factor.
-------------------------------------------------------------------------------reqFeatures
java.util.Hashtable reqFeatures
Mapping of required features. For example:
class == "foo" Arch == "R6000" Memory >= 64 ...
-------------------------------------------------------------------------------associate
java.io.Serializable associate
Associated Serializable object.
Class unm.maui.sched.EpilogEvent implements Serializable
Class unm.maui.sched.LoopEvent implements Serializable
Class unm.maui.sched.PrologEvent implements Serializable
Class unm.maui.sched.ReservationsMod implements Serializable
Serialized Fields
scheduler
Scheduler scheduler
The scheduler.
Class unm.maui.sched.Sched implements Serializable
Serialized Fields
reservations
BinaryTree reservations
Master Reservations (sorted by finishtime).
-------------------------------------------------------------------------------runHash
java.util.Hashtable runHash
Running Jobs hash (JobID -> Job).
-------------------------------------------------------------------------------holdHash
java.util.Hashtable holdHash
Held Jobs hash (JobID -> Job).
-------------------------------------------------------------------------------doneHash
java.util.Hashtable doneHash
Finished or cancelled Jobs hash (JobID -> Job).
--------------------------------------------------------------------------------
pfoley@platform.com
25
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
deferredHash
java.util.Hashtable deferredHash
Deferred Jobs hash (JobID -> Job).
-------------------------------------------------------------------------------submitQ
Queue submitQ
Job queue of JobID.
The queue is assumed to be in the correct order.
See Also:
Prioritizer
-------------------------------------------------------------------------------schedListeners
java.util.Vector schedListeners
SchedEvent modules.
-------------------------------------------------------------------------------manager
RM manager
Class unm.maui.sched.SchedEvent implements Serializable
Class unm.maui.sched.SchedException implements Serializable
-------------------------------------------------------------------------------Package unm.maui.server
Class unm.maui.server.CMD implements Serializable
Serialized Fields
reqnodes
int reqnodes
Requested nodes. LL-ism.
-------------------------------------------------------------------------------tasksPerNode
int tasksPerNode
Requested tasks-per-node. LL-ism.
-------------------------------------------------------------------------------totalTasks
int totalTasks
Total tasks. This should not be specified with #@node and #@tasks_per_node. This is both an
LL-ism and can be used by Maui.
--------------------------------------------------------------------------------
pfoley@platform.com
26
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
geometry
java.lang.String geometry
Maui Node/Slot geometry specification.
-------------------------------------------------------------------------------acct
java.lang.String acct
Job account.
-------------------------------------------------------------------------------user
java.lang.String user
The user.
-------------------------------------------------------------------------------uid
int uid
Posix UID.
-------------------------------------------------------------------------------group
java.lang.String group
The group.
-------------------------------------------------------------------------------gid
int gid
Posix GID.
-------------------------------------------------------------------------------jobtype
java.lang.String jobtype
JobType.
-------------------------------------------------------------------------------iwd
java.lang.String iwd
IWD.
-------------------------------------------------------------------------------duration
long duration
Job Duration.
-------------------------------------------------------------------------------qos
pfoley@platform.com
27
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
int qos
Requested QoS.
-------------------------------------------------------------------------------reqs
java.util.Hashtable reqs
Requirements string.
-------------------------------------------------------------------------------text
java.lang.String text
The entire CMD text.
-------------------------------------------------------------------------------envp
java.util.Vector envp
The entire environment.
Class unm.maui.server.RequestException implements Serializable
-------------------------------------------------------------------------------Package unm.maui.server.parser
Class unm.maui.server.parser.ParseException implements Serializable
Serialized Fields
specialConstructor
boolean specialConstructor
This variable determines which constructor was used to create this object and thereby affects the
semantics of the "getMessage" method (see below).
-------------------------------------------------------------------------------currentToken
Token currentToken
This is the last token that has been consumed successfully. If this object has been created due to
a parse error, the token followng this token will (therefore) be the first error token.
-------------------------------------------------------------------------------expectedTokenSequences
int[][] expectedTokenSequences
Each entry in this array is an array of integers. Each array of integers represents a sequence of
tokens (by their ordinal values) that is expected at this point of the parse.
-------------------------------------------------------------------------------tokenImage
java.lang.String[] tokenImage
pfoley@platform.com
28
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
This is a reference to the "tokenImage" array of the generated parser within which the parse error
occurred. This array is defined in the generated ...Constants interface.
-------------------------------------------------------------------------------eol
java.lang.String eol
The end of line string for this machine.
Class unm.maui.server.parser.TokenMgrError implements Serializable
Serialized Fields
errorCode
int errorCode
Indicates the reason why the exception is thrown. It will have one of the above 4 values.
-------------------------------------------------------------------------------Package unm.maui.wiki
Class unm.maui.wiki.Wiki implements Serializable
Serialized Fields
tcpPort
int tcpPort
TCP Port of Wiki Listener;
-------------------------------------------------------------------------------udpPort
int udpPort
UDP Port of Wiki Listener;
-------------------------------------------------------------------------------bufSize
int bufSize
Read/write buffer sizes.
-------------------------------------------------------------------------------wikiNodesHash
java.util.Hashtable wikiNodesHash
Hashtable of NodeID -> WikiNode.
-------------------------------------------------------------------------------wikiJobsHash
java.util.Hashtable wikiJobsHash
Hashtable of JobID -> Job.
-------------------------------------------------------------------------------hostHash
java.util.Hashtable hostHash
pfoley@platform.com
29
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
Hashtable of InetAddress -> hostname.
-------------------------------------------------------------------------------unknownHash
java.util.Hashtable unknownHash
Unknown jobs.
-------------------------------------------------------------------------------pollInterval
int pollInterval
Sleep interval in milliseconds
-------------------------------------------------------------------------------nodeTimeout
int nodeTimeout
Node timeout (in secs).
-------------------------------------------------------------------------------sockTimeout
int sockTimeout
Socket timeout (in secs).
-------------------------------------------------------------------------------prologLocal
java.lang.String prologLocal
Job prolog.
-------------------------------------------------------------------------------prologRemote
java.lang.String prologRemote
Job prolog.
-------------------------------------------------------------------------------epilogLocal
java.lang.String epilogLocal
Job epilog.
-------------------------------------------------------------------------------epilogRemote
java.lang.String epilogRemote
Job epilog.
-------------------------------------------------------------------------------stripFQDN
boolean stripFQDN
Strip FQDN.
pfoley@platform.com
30
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
-------------------------------------------------------------------------------multicast
boolean multicast
Do multicast to nodes?
-------------------------------------------------------------------------------multicastAddr
java.net.InetAddress multicastAddr
Multicast group.
-------------------------------------------------------------------------------multicastTTL
int multicastTTL
Multicast time to live.
-------------------------------------------------------------------------------udpReattempt
int udpReattempt
Reattempt sleep value.
-------------------------------------------------------------------------------udpBurst
int udpBurst
UDP busts.
-------------------------------------------------------------------------------prefix
java.lang.String prefix
Properties prefix.
-------------------------------------------------------------------------------purgeDelay
int purgeDelay
Seconds delay before purging a job from our tables.
This is needed for the delay between cancelling a job and having the remote node daemons
acknowlege it.
-------------------------------------------------------------------------------expectedResponseID
long expectedResponseID
-------------------------------------------------------------------------------responseHash
java.util.Hashtable responseHash
--------------------------------------------------------------------------------
pfoley@platform.com
31
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
respondedHash
java.util.Hashtable respondedHash
-------------------------------------------------------------------------------wikiNodes
WikiNode[] wikiNodes
Class unm.maui.wiki.WikiCMD implements Serializable
Serialized Fields
shell
java.lang.String shell
Shell.
-------------------------------------------------------------------------------env
java.lang.String env
Env.
-------------------------------------------------------------------------------exec
java.lang.String exec
Exec.
-------------------------------------------------------------------------------args
java.lang.String args
Args.
-------------------------------------------------------------------------------input
java.lang.String input
Input.
-------------------------------------------------------------------------------output
java.lang.String output
Output.
-------------------------------------------------------------------------------error
java.lang.String error
Error.
-------------------------------------------------------------------------------comment
java.lang.String comment
pfoley@platform.com
32
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
Comment.
-------------------------------------------------------------------------------log
java.lang.String log
Log.
-------------------------------------------------------------------------------message
java.lang.String message
Message.
-------------------------------------------------------------------------------prolog
java.lang.String prolog
ProLog.
-------------------------------------------------------------------------------epilog
java.lang.String epilog
EpiLog.
-------------------------------------------------------------------------------notify
java.lang.String notify
Notify.
-------------------------------------------------------------------------------upload
java.lang.String upload
Upload.
-------------------------------------------------------------------------------download
java.lang.String download
Download.
Class unm.maui.wiki.WikiJobUpdate implements Serializable
Serialized Fields
jobID
java.lang.String jobID
id.
-------------------------------------------------------------------------------user
java.lang.String user
pfoley@platform.com
33
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
user.
-------------------------------------------------------------------------------stdout
java.lang.String stdout
stdout.
-------------------------------------------------------------------------------stderr
java.lang.String stderr
stdout.
-------------------------------------------------------------------------------retcode
int retcode
Return code.
-------------------------------------------------------------------------------state
java.lang.String state
Job state.
Class unm.maui.wiki.WikiNode implements Serializable
Serialized Fields
updateTime
long updateTime
Epoch time node last updated (partial).
Class unm.maui.wiki.WikiNodeUpdate implements Serializable
Serialized Fields
state
java.lang.String state
Node state.
-------------------------------------------------------------------------------features
java.util.Hashtable features
Features hash.
Class unm.maui.wiki.WikiResponse implements Serializable
Serialized Fields
status
int status
response status.
zero is good news.
pfoley@platform.com
34
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
-------------------------------------------------------------------------------mesg
java.lang.String mesg
Message.
Class unm.maui.wiki.WikiUpdate implements Serializable
Serialized Fields
id
long id
The WikiUpdate ID.
This is automatically created.
-------------------------------------------------------------------------------responseID
long responseID
The response ID.
This is set to the id of the corresponding WikiComm (if so prompted).
-------------------------------------------------------------------------------ts
long ts
Timestamp in seconds.
-------------------------------------------------------------------------------host
java.lang.String host
The remote host.
-------------------------------------------------------------------------------Package unm.maui.wikid
Class unm.maui.wikid.AllocJob implements Serializable
Serialized Fields
type
java.lang.String type
-------------------------------------------------------------------------------uid
int uid
-------------------------------------------------------------------------------gid
int gid
-------------------------------------------------------------------------------numtasks
pfoley@platform.com
35
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
int numtasks
-------------------------------------------------------------------------------taskid
int taskid
-------------------------------------------------------------------------------user
java.lang.String user
Class unm.maui.wikid.CancelJob implements Serializable
Serialized Fields
jobID
java.lang.String jobID
The Job ID.
Class unm.maui.wikid.ShutdownNode implements Serializable
Class unm.maui.wikid.StartJob implements Serializable
Serialized Fields
jobID
java.lang.String jobID
The Job ID.
-------------------------------------------------------------------------------user
java.lang.String user
The user running the job.
-------------------------------------------------------------------------------type
java.lang.String type
Job type.
-------------------------------------------------------------------------------stdin
java.lang.String stdin
Standard input file.
-------------------------------------------------------------------------------stdout
java.lang.String stdout
Standard output file.
-------------------------------------------------------------------------------stderr
java.lang.String stderr
pfoley@platform.com
36
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
Standard error file.
-------------------------------------------------------------------------------log
java.lang.String log
Misc log file.
-------------------------------------------------------------------------------totalTasks
int totalTasks
Total number of tasks in the job.
-------------------------------------------------------------------------------tasks
java.lang.String tasks
Tasks allocation across all nodes of the job.
This is a whitespace separated list of the number of tasks per node. The node daemon should fit
the tasks into open slots on the node corresponding to localhost (found in the hosts variable).
Class unm.maui.wikid.Task implements Serializable
Serialized Fields
uid
int uid
UID to run as.
-------------------------------------------------------------------------------gid
int gid
GID to run as.
-------------------------------------------------------------------------------exec
java.lang.String exec
Executable.
-------------------------------------------------------------------------------args
java.lang.String[] args
Arguments.
-------------------------------------------------------------------------------envp
java.lang.String[] envp
Environment.
Class unm.maui.wikid.WikiComm implements Serializable
pfoley@platform.com
37
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
Serialized Fields
id
long id
The WikiComm ID.
This is automatically created.
-------------------------------------------------------------------------------ts
long ts
Timestamp in seconds.
-------------------------------------------------------------------------------hosts
java.lang.String hosts
The hosts we're sending this message to separated by whitespace.
The first host is the "master" for MPI-based jobs.
-------------------------------------------------------------------------------Package unm.util
Class unm.util.AssertionException implements Serializable
Class unm.util.BinaryTree implements Serializable
Serialized Fields
size
int size
The real size.
Class unm.util.Queue implements Serializable
Serialized Fields
tail
Queue.QueueNode tail
Tail of queue.
-------------------------------------------------------------------------------head
Queue.QueueNode head
Head of queue
-------------------------------------------------------------------------------count
int count
Class unm.util.Queue.QueueNode implements Serializable
Serialized Fields
next
pfoley@platform.com
38
New Productivity Working Group
Architectural Area
Paul Foley
Platform Computing
March 2002
Queue.QueueNode next
-------------------------------------------------------------------------------prev
Queue.QueueNode prev
-------------------------------------------------------------------------------key
Key key
Class unm.util.StringID implements Serializable
Serialized Fields
id
java.lang.String id
-------------------------------------------------------------------------------Overview Package Class Tree Deprecated Index Help
PREV NEXT FRAMES
NO FRAMES
--------------------------------------------------------------------------------
pfoley@platform.com
39
Download