FBSNG is the result of major FBS re-design effort. Main goal
of the project was to stop using LSF as scheduler of FBS. Although one of
important objectives of this project was to ensure smooth transition from FBS
to FBSNG for users, and therefore to make sure that user’s interface is kept
close to the original, FBSNG has a number of new and improved features. They
are summarized below. Refer to FBSNG User’s Guide and Administration and
Installation Guide for more details on FBSNG.
FBSNG comparing to FBS has several major new features.
- Abstract
Resources. FBS recognized only 2 resources available on worker nodes, CPU
power and local scratch disk space. FBSNG allows Administrator to
configure unlimited number of resources of 3 types: local, global and
attribute. See FBSNG
Resources document for more information about abstract resources.
- Scheduler.
FBS used LSF as scheduler and persistent job data storage. FBSNG has its
own scheduler and job data storage. See FBSNG Scheduler
document for more information.
- New
resource allocation concept. In FBS, Administrator had to specify how much
resources on each node processes of each particular type are allowed to
allocate. FBSNG does not require this any more. Administrator describes
worker nodes only in terms of what resources they
provide regardless of process types. However, if necessary, FBSNG allows
to continue configuring the farm in old way.
- Scalability
issues. Due to the use of LSF, FBS had potential scalability limitations.
In particular, each running section used 3 entries in OS process table.
FBSNG does not have this feature. It has been tested to sustain more than
200 simultaneously running sections.
- API.
FBSNG now comes with Application Programmer’s Interface (API). API
provides users with necessary functionality to
- submit,
monitor and control batch jobs
- monitor
farm resources availability and utilization
- monitor
scheduling queues
FBSNG API can be used by users to develop custom
monitoring and control software.
Most of the differences between FBS and FBSNG user’s interface
were done to introduce new features. Although, there are relatively few
improvements of old features, and some of them are not backward compatible with
FBS user’s interface.
The following is the summary of modifications in JDF format:
- BEGIN_TIME. The field renamed to HOLD_TIME to better reflect its
meaning. The section will be held till the specified time. New format of
date/time specification is implemented. It allows the user to specify hold
time in relative format in addition to absolute. For example:
- 04/01/2000 means midnight of
April 1st of year 2000;
- 22:00:03 specifies absolute time
of current date;
- +03:00:00 means in 3 hours from
submission;
- +1-02:03:00 means in 1 day, 2
hours and 3 minutes from now
- END_TIME is no longer supported
- JOB_STDOUT is replaced with SECT_STDOUT. In order to use this
field, the user must create a special directory for section log (stdout)
files. Protection of the directory must allow write access for
non-privileged user (world). If such directory does not exist, or writing
there is not permitted, or user did not specify any SECT_STDOUT in JDF, section
output will be stored in FBSNG private storage and the user will be able
to retrieve this private copy using UI command.
- LOCAL_DISK is no longer
supported. Local scratch disk is now one of abstract resources,
and therefore the user has to list local disk requirements along with all
other resource requirements (see PROC_RESOURCES,
SECT_RESOURCES)
- PRIO_INC is new numeric JDF field
which should be used to submit a section at higher than normal scheduling
priority.
- PROC_TYPE is new JDF field. FBSNG
configuration associates each queue with default process type. PROC_TYPE field allows the user
to use alternative process type.
- PROC_RESOURCES is new JDF field.
FBSNG configuration defines minimal resource requirements for processes of
each type. PROC_RESOURCES
allows the user to request additional resources to be allocated to
each process of the section.
- SECT_RESOURCES is new JDF field.
FBSNG allows to allocate resources not only for batch processes, but also
for a section as a whole. SECT_RESOURCES
can be used to specify resources required for the section in addition to
those defined in FBSNG configuration for sections of this process type.
- DEPEND parameter has new
condition “zombie”. A section becomes zombie when it is known that it will
never start. For example, if section B depends on successful completion of
section A, and section A fails, section B becomes zombie. User can use zombie(<section-name>)
along with other conditions in DEPEND
clause of JDF.
Refer to FBSNG User’s Guide for more details on JDF format
and examples of JDF.
There are several changes in FBSNG command line interface
comparing to FBS. Refer to FBSNG User’s Guide for more details on command user
interface.
- “farms” used as FBS shell
front-end command is renamed to “fbs”
with “fbsng” as an alias.
For example, instead of “farms
hosts”, users will use “fbs
hosts” or “fbsng hosts”.
- Subcommand
“move” is no longer
supported. It is replaced with “cprio”
that allows a user to increase or decrease scheduling priority of a
pending section.
- Subcommands
“hold” and “release” used to be referring to
worker nodes only. Now user has to qualify these verbs with “job”, “section”, “node”
or “queue”. In case of
holding job or section, in addition, user can specify the time the job or
section should be released at.
- New
subcommands were added:
- ls – list sections
- lj – list jobs
- cprio – increment/decrement
section priority (see above)
- slog – print section log output
- ptypes – print process
information about process types
- resources – print resource
utilization statistics
FBSNG Configuration
FBSNG uses single configuration file named “fbs.cfg”. The following is brief
summary of changes in configuration file format. Refer to FBSNG Administration
and Installation Guide for more detailed information on FBSNG configuration.
Obsolete Sets
The following sets are no longer required:
·
flimd
·
jm
·
elim
·
disk_range_for_LSF
Some sets are replaced or renamed:
- queues is renamed to queue
- farmd is replaced with launcher
- histd is replaced with history
New sets are:
·
bmgr – describes BMGR
daemon parameters
·
jobdb – defines
configuration of job persistent storage
·
proc_type – defines
process types and their parameters
FBSNG Daemons
FBSNG does not have flimd, elim and JM as daemons.
Functionality provided by these daemons is incorporated into single BMGR
daemon. Farm daemons (farmd) are replaced with daemons named “launcher”. BMGR
and logd should run on most reliable node of the farm. Logd is optional daemon,
it is not required to run for FBSNG to work properly. Launchers must run on
every worker node of the farm under root account.
Requirements
FBSNG does not require LSF. Python version 1.5 is required.
FBSNG GUI requires Python to be built with Tcl/Tk support, and Tcl and Tk must
be installed. FBSNG requires FCSLIB product to be installed. FBSNG and FCSLIB
are currently incompatible with Python 1.6.