Difference between revisions of "ZOID"
From ZeptoOS
Jump to navigationJump to searchLine 13: | Line 13: | ||
==User interface== | ==User interface== | ||
− | User script | + | ===User script=== |
− | + | Right before a job starts running, and right after the last process of a job has terminated, ZOID daemon attempts to invoke a ''user script'' on I/O nodes. By default, the daemon invokes <tt>$HOME/zoid-user-script.sh</tt> (this pathname can be [[#user_script|changed]] by an administrator). A single parameter is passed to the script: <tt>1</tt> at the job startup, and <tt>0</tt> at the termination. | |
+ | |||
+ | A number of environment variables are also passed to the script: | ||
+ | ; <tt>ZOID_JOB_ID</tt> | ||
+ | : BG/P control system job id ('''Note:''' this is generally different from the Cobalt job ID; see [[FAQ#Cobalt_job_ID|FAQ]] for the latter), | ||
+ | ; <tt>ZOID_JOB_MODE</tt> | ||
+ | : <tt>0</tt> for SMP, <tt>1</tt> for VN, and <tt>2</tt> for DUAL, | ||
+ | ; <tt>ZOID_JOB_GLOBAL_SIZE</tt> | ||
+ | : number of processes in the job (size of <tt>MPI_COMM_WORLD</tt>), | ||
+ | ; <tt>ZOID_JOB_LOCAL_SIZE</tt> | ||
+ | : number of job processes handled by this I/O node, | ||
+ | ; <tt>ZOID_JOB_EXEC</tt> | ||
+ | : name of the job executable, | ||
+ | ; <tt>ZOID_JOB_ARGS</tt> | ||
+ | : job arguments, separated by a <tt>:</tt> | ||
+ | ; <tt>ZOID_JOB_ENV</tt> | ||
+ | : job environment variables, separated by a <tt>:</tt> | ||
+ | ; <tt>SHELL</tt>, <tt>PATH</tt>, <tt>USER</tt>, and <tt>HOME</tt> | ||
+ | : will also be set for your convenience... | ||
+ | |||
+ | ===Pset broadcast=== | ||
+ | |||
+ | ===Performance counters=== | ||
==Administrator interface== | ==Administrator interface== | ||
Command line options | Command line options | ||
+ | |||
+ | -u <span id="user_script"></span> | ||
==Programmer interface== | ==Programmer interface== |
Revision as of 16:34, 22 April 2009
Other Packages and Utilities | Top | KTAU
Introduction
ZOID is an I/O forwarding component of the ZeptoOS project. Any communication between the compute nodes and I/O nodes (job management, file I/O, sockets) is facilitated by ZOID.
ZOID infrastructure consists of:
- Multithreaded zoid daemon on the I/O nodes which performs I/O forwarding for the compute nodes and which also communicates with the service node to perform job management,
- control daemon on the compute nodes which is responsible for job management tasks such as launching application processes, for the forwarding of stdin/out/err data, and for forwarding of IP packets,
- zoid-fuse daemon on the compute nodes which performs file I/O forwarding for POSIX-compliant applications.
User interface
User script
Right before a job starts running, and right after the last process of a job has terminated, ZOID daemon attempts to invoke a user script on I/O nodes. By default, the daemon invokes $HOME/zoid-user-script.sh (this pathname can be changed by an administrator). A single parameter is passed to the script: 1 at the job startup, and 0 at the termination.
A number of environment variables are also passed to the script:
- ZOID_JOB_ID
- BG/P control system job id (Note: this is generally different from the Cobalt job ID; see FAQ for the latter),
- ZOID_JOB_MODE
- 0 for SMP, 1 for VN, and 2 for DUAL,
- ZOID_JOB_GLOBAL_SIZE
- number of processes in the job (size of MPI_COMM_WORLD),
- ZOID_JOB_LOCAL_SIZE
- number of job processes handled by this I/O node,
- ZOID_JOB_EXEC
- name of the job executable,
- ZOID_JOB_ARGS
- job arguments, separated by a :
- ZOID_JOB_ENV
- job environment variables, separated by a :
- SHELL, PATH, USER, and HOME
- will also be set for your convenience...
Pset broadcast
Performance counters
Administrator interface
Command line options
-u
Programmer interface
Building a new plugin
Replacement libc?