Introduction to SMS

What is SMS?

SMS is an application that enables users to run a large number of programs which may have dependencies on one another, and in time, in a controlled environment with reasonable tolerance of both hardware and software failures, combined with good restart capabilities.

SMS submits tasks(jobs) and receives acknowledgments from the tasks when they change status and when they send events. SMS knows the relationships between tasks, and is able to submit dependent tasks when a given task changes its status, for example when it finishes. Users talk to SMS using either the command and display program (CDP), or its X-windows equivalent (XCdp). CDP takes command line input and has some full screen capabilities; XCdp is an X-Windows/Motif based program.

SMS runs as a server receiving requests from clients. CDP and the suite jobs are the clients. Communication is based on SUN RPC using TCP/IP, with UDP/IP used for broadcasts. Note that SMS is a scheduler and is not a queueing system such as NQS or RQS.

SMS runs as a single-threaded server, serving one client at the time. When SMS is busy scheduling all clients wait and occasionally may timeout. The suite jobs and XCdp do try again, while CDP does not necessarily do so. XCdp does re-try some things. As from SMS V4.3 the task submission can be configured to be multi-threaded (but not for VMS.)

VMS support was discontinued in version 4.4. You may still use the old client on VMS to talk to SMS 4.4.

Terminology and typography

Command names in this text are written in this fashion, and corresponding sections in the manual pages is shown within parentheses. UNIX manual page sections are numbered from one to eight; for example, the UNIX C shell is shown as csh(1) which indicates it is in the first section of the UNIX manual pages. users(CDP) indicates the command users is a CDP command and its manual page can be obtained from the CDP section of the manual pages. Sections denoted IOI, CDP, PLAY and SMS are all part of the SMS manual pages.

A concept is a name used in this document to describe an idea.

A variable is used a lot through out this document.

A node is a SMS task, family, suite or equivalent when it does not matter of which we are talking about.

Extracts from script or definition files look like this

  # This is in a file
  and this is important in this file
  some other lines

Colors are also used to highligh the status of a node, like if node /x/y/z is active, it would look like /x/y/z.