英语法语西班牙语

Ad


OnWorks 网站图标

basl2cB - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 basl2cB

这是 basl2cB 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


basl2c - 将 BASL(批处理调度语言)代码转换为 C 调度程序代码。

概要


basl2c [-d] [-l lexerDebugFile] [-p parserDebugFile] [-y symtabDebugFile] [-s
语义调试文件] [-g codegenDebugFile] [-c cFile] baslFile

商品描述


巴斯尔2c 是 BASL 到 C 编译器,它生成一个中间代码,可以将其输入到
常规 C 编译器,并与 PBS 库链接以生成调度程序可执行文件。
Basl2c 将 a 作为输入 basl文件, 这是一个用 BATch Scheduling 编写的程序
语言,包含主要调度代码。 Basl2c 然后转换 BASL 结构
在文件中转换成 C 语句,它还附加了额外的代码来生成 PBS
调度程序源代码。 默认情况下,将生成的 C 代码写入文件
pbs_sched.c.

生成的 C 文件的完整路径名是需要在 SCHD_代码
local.mk 中的变量,然后再编译 BASL 调度程序以生成 PBS_调度
可执行文件。

配置


-d 向词法分析器(参见 -l 选项)、解析器(参见 -p
选项)、符号表(请参阅 -y 选项)、语义分析器(请参阅 -s 选项)和代码
生成器(参见 -g 选项)。

-l 词法调试文件
词法调试文件 是要写入生成的调试消息的文件的名称
在扫描令牌时。

-p 解析器调试文件
解析器调试文件 是要写入生成的调试消息的文件的名称
同时以可用的方式将令牌组合在一起。

-y symtab调试文件
符号表调试文件 是要写入与相关的调试消息的文件的名称
符号表。

-s 语义调试文件
语义调试文件 是要写入调试消息的文件名
在检查以确保变量和运算符用于
一致的方式。

-g 代码生成调试文件
代码生成调试文件 是要写入生成的调试消息的文件的名称
同时将 BASL 语句转换为 C 语句。

-c 文件
文件 是写入生成的 C 代码的文件的名称。

主要 结构


用 BASL 编写的调度程序代码的基本结构如下:
or 更多 职能 定义
or 更多 全球化 变量 声明
or 更多 分配 声明 (至 初始化 全球化 变量)
调度主()
{
一种 or 更多 变量 声明

or 更多 声明
}

例如,
% 调度.basl
诠释 总和(整数 a, 诠释 b)
{
诠释 s;
s = a + b;
退货;
}
诠释 球体;
调度主()
{
诠释 c;

a = 3;
b = 4;
c = 总和(a, b);
打印(c);
水珠 = 5;
打印(全球);
}

调度主() 是在每次调度迭代时调用的函数。

职能


定义一个可以在后续函数中调用的函数,语法为:

返回类型 函数名 ( 数据类型1 标识符1,
数据类型2 标识符2, ... )
{
一种 or 更多 变量 声明

or 更多 声明
}

例如,
空间 打印东西(星期几 道指, 约会时间 t, 斯特,
尺寸 西, 节点 中)
{
打印(道);
打印(t);
打印(字符串);
打印(尺寸);
打印(cn);
}

有效功能 返回类型 是:Void、Int、Float、Dayofweek、DateTime、String、Size、
服务器、队列、作业、CNode、设置服务器、设置队列、设置作业、设置 CNode。

有效的数据类型 ( 数据类型1, 数据类型2, ... ) 的参数标识符是: Int,
Float、Dayofweek、DateTime、String、Size、Server、Que、Job、CNode、Set Server、Set Que、
设置作业、设置 CNode、范围 Int、范围浮点数、范围 Dayofweek、范围日期时间、范围大小、
Fun Int、Fun Float、Fun Void、Fun Dayofweek、Fun DateTime、Fun String、Fun Size、Fun
服务器,趣趣,趣工作,趣CNode,趣组服务器,趣组趣,趣组工作,趣组
节点。 这些数据类型将在下一个主题中讨论。

函数通过其名称和参数调用,如下所示:

打印东西( 星期一, (5|1|1997@14:32:00), “计划 开始",
30GB, 节点 );

巴斯尔2c 实际上会在调度程序给出的函数名中添加一个“basl_”前缀
编写器以尽量减少名称冲突的机会,这可能在生成的 C 代码是
与 PBS、BASL 库链接。 例如,如果您查看生成的 C 代码
印刷品,你会看到,

basl_printStuff( MON, (5|1|1997@14:32:00),
"sched 开始", 30gb, 节点 );

与在 C 中一样,所有函数调用都必须事先定义。 BASL 编译器将
检查以确保函数调用中的参数完全匹配(就
类型)与函数定义中的参数。

BASL 中存在两种函数:用户定义函数和预定义函数。
用户定义的函数是调度程序编写者为其提供定义的函数,
而预定义的函数是那些可以立即调用而不需要的函数
定义它。 有关预定义函数的列表,请参阅关于 预定义 职能 .

变量 声明


就像在 C 中一样,BASL 代码中的所有变量都必须在使用前显式声明。 那些
在任何函数之外声明的变量称为全局变量,而
在函数体内声明的变量称为局部变量。 全球的
变量可以在 BASL 代码中的任何地方使用,而局部变量是可读的
仅在声明它们的函数内。

变量声明的语法是:

数据类型 识别码 ;

哪里 数据类型 可以是:Int、Float、Dayofweek、DateTime、String、Size、Server、Que、Job、
CNode、设置服务器、设置队列、设置作业、设置 CNode、范围 Int、范围浮动、范围 Dayofweek、
范围日期时间,范围大小。

数据


空间 用于不返回值的函数。

诠释 带符号的整数,以 10 为基数给出。

样本常数:
5、+1、-3、成功 (=1)、失败 (=0)、真 (=1)、假 (=0)

浮动 实数在翻译后的 C 代码中表示为双精度数。
样本常数:4.3、+1.2、-2.6

星期几
常数值:SUN、MON、TUE、WED、THU、FRI、SAT,内部表示为
SUN=0、MON=1 等的整数值常量。

约会时间
以 3 种格式之一指定:

[1] (m|d|y) 其中 1 <= m <= 12, 1 <= d <= 31, 0 <= y,例如。 (4|4|1997);

[2] (hh:mm:ss) 其中 0 <= hh <= 23, 0 <= mm <= 59, 0 <= ss <= 61,例如。
(12:01:00);

[3] (m|d|y@hh:mm:ss), ex. (4|4|1997@12:01:00)
在日期/时间比较期间,“现在”时间被替换,如果时间
未给出部分(格式 [1]); “现在”日期被替换,如果
未给出日期部分(格式 [2])。 此外,全年部分必须
在日期中给出(即 1997 而不是 97)以避免歧义。

字符串用引号 (") 括起来,它可以包含除另一个之外的任何内容
引用、换行符和左右括号。
示例常量:“示例字符串”,NULLSTR

尺寸 格式: 其中 suffix 是以下形式的乘数:


乘数 单元 (字节 or 字)
=================== =====================
k,m,g,t,p,K,M,G,T,P 乙,乙,乙,乙

其中 k=K=1024,m=M=1,048,576,g=G=1,073,741,824,t=T=1,099,511,627,776,
p=P=1,125,899,906,842,624, b=B=1,字长 w=W 是局部定义的(即 4
32 位机器中的字节数)。

当对具有不同后缀的 2 个大小操作数进行操作时,后缀为
两者中的“较低”将是结果后缀。 例如,
10MB + 10GB = 10250MB
采样常数:-1b、2w、1kb、2mw、+3gb、4tw、6Pb

范围 诠释

格式:(低整数值,高整数值)
其中低 Int 值 <= 高 Int 值。 样本常数:(1,3)

范围 浮动

格式:(低浮点值,高浮点值)
其中低值 <= 高值。 样本常数:(2.3, 4.6)

范围 星期几

格式:(前一天,后一天)
较早的一天 <= 较晚的一天。 样本常数:(周三,周五)

范围 约会时间

格式:(较早的日期/时间,较晚的日期/时间)
其中较早的日期/时间 <= 较晚的日期/时间。
注意:如果范围只包含时间部分,并且更早的时间“出现”到
> 稍后时间,如“((18:0:0), (6:0:0))”,然后在日期/时间
比较,“稍后”时间将调整一天,以便
看起来像: ”( ( @18:0:0), ( @6:0:0) )"

样本常数:
((4|4|1997), (4|10|1997)), ((12:01:00), (12:30:00)), ((4|4|1997@12:01:00),
(4|10|1997@12:30:00))

范围 尺寸

格式:(小尺寸,大尺寸)
其中低尺寸 <= 高尺寸。 样本常数:(23gb、50gb)

服务器 直接映射到 PBS 服务器对象。 一种 服务器 管理一个或多个 对象。
样本常数:NOSERVER

节点 用于由单个操作系统映像、共享内存和集合组成的计算节点
cpu的。 CNode 运行 1 个 PBS MOM。
样本常数:NOCNODE

直接映射到 PBS 队列对象。 一种 一个或多个对象线轴 工作
对象。
样本常数:NOQUE

工作 直接映射到 PBS 作业对象。 一种 工作 对象携带一些属性和
资源需求。
样本常数:NOJOB

服务器
服务器对象列表。
示例常量:EMPTYSETSERVER

节点
CNode 对象列表。
样本常数:EMPTYSETCNODE

Que 对象列表。
样本常数:EMPTYSETQUE

工作 作业对象列表。
样本常数:EMPTYSETJOB

BASL 定义 常数


这些是不能用于命名标识符的常量(请参阅下一主题)。 这些
总是大写。

数据 BASL 定义
=================== =============================================
星期几 太阳, 星期一, 周二, 星期三, 周四, 周五, SAT

诠释 成功, 失败, 假, 真正, 同步运行, 异步运行,
删除, 重新运行, 抓住, 释放, 信号,
修改属性, 修改, SERVER_ACTIVE,
SERVER_IDLE, SERVER_SCHED, SERVER_TERM,
SERVER_TERMDELAY, QTYPE_E, QTYPE_R,
SCHED_DISABLED, SCHED_ENABLED, 过境,
排队, 握住, 等待, 跑步, 退出,
CNODE_OFFLINE, CNODE_DOWN, CNODE_FREE,
CNODE_RESERVE, CNODE_INUSE_EXCLUSIVE,
CNODE_INUSE_SHARED, CNODE_TIMESHARED,
CNODE_CLUSTER, CNODE_UNKNOWN, OP_EQ, OP_NEQ,
OP_LE, OP_LT, OP_GE, OP_GT, OP_MAX, OP_MIN,
ASC, 倒序

服务器 网络服务器
服务器 空集服务器

节点 节点
节点 空集节点

诺克
空集

工作 没工作
工作 清空作业

空字符串

识别码


标识符(用于变量名和函数名)采用字母数字格式,带有
允许使用特殊下划线 (_) 字符。 目前,BASL 只能处理标识符
长度可达 80 个字符。 此外,您不能将 BASL 定义的常量名称用于
命名标识符。

声明


In 巴塞尔(2)、可以有一个以分号结尾的语句,也可以是一组
由“{”和“}”分隔的语句(称为复合语句或块)。 不同的
可以出现在 BASL 代码中的语句种类有:

1.表达式语句
表达式语句是以下形式的任何内容:

表达式 ;

哪里 表达式 可:

a) 算术表达式

词汇表 + 表达式 (添加)
词汇表 - 表达式 (减去)
词汇表 * 表达式 (乘)
词汇表 / 表达式 (划分)
词汇表 % 表达式 (模数 or 余)

注:加、减、乘、除、余
将只允许用于正确的类型,如果左右
表达式具有一致的类型。 下表说明了什么
各种运算符之间的类型是一致的:

对于 +:

词汇表 表达式
============ ============
诠释 or 浮动 诠释 or 浮动
尺寸 尺寸


为了 -, *, /:

词汇表 表达式
============ ============
诠释 or 浮动 诠释 or 浮动
尺寸 尺寸

为了 %:

词汇表 表达式
============ ============
诠释 or 浮动 诠释 or 浮动

以下是一些示例算术表达式语句:
诠释 我1;
诠释 我2;
浮动 f1;
浮动 f2;
尺寸 sz1;
尺寸 sz2;
字符串1;
字符串2;

i1 + 我2;
f1 - 我2;
sz1 * sz2 * 2b;
sz1 / 1024b;

str1 = "巴塞尔";
str2 = " 凉爽的”;

// 以下 is a 绳子 级联
// 操作 导致 in 串:
// “巴塞尔 凉爽的”
str1 + 字符串2;

i1 % 10;

b) 一元表达式

+ expr // 积极 - by 1 an
// 表达 is
// of 国际, 漂浮, or
// 尺寸 类型

-表达式 // - by -1 an
// 表达 is
// of 国际, 漂浮, or
// 尺寸 类型

!expr // 不能 - 转换 a 非零 表达式
// 折扣值 0, a
// 表达式 折扣值 1
// 哪里 表达式 类型 必须 be
// of 类型 诠释 or 浮动

一些示例一元表达式:
诠释 i;

+ 3;
-(一世 + 4);
!一世;

c) 逻辑表达式

词汇表 EQ 表达式
词汇表 新商会 表达式
词汇表 LT 表达式
词汇表 LE 表达式
词汇表 GT 表达式
词汇表 GE 表达式
词汇表 AND 表达式
词汇表 OR 表达式

词汇表表达式 必须具有如图所示的相互一致的类型
在下表中:

l 终端表达式 终端-expr
============== ==============
诠释 or 浮动 诠释 or 浮动
星期几 星期几
约会时间 约会时间

尺寸 尺寸
服务器 服务器

工作 工作
节点 节点
服务器 服务器

工作 工作
节点 节点

针对 和, OR 运营商 词法, 表达式 一致类型是 Int 或
漂浮。

一些示例逻辑表达式:

i1 EQ 我2;
i1 新商会 f2;
道指1 LE 道琼斯指数;
d1 LT d2;
str1 GT 字符串2;
sz1 GE sz2;

d) 后运算符表达式
这些表达式只是赋值的捷径
声明。

标识符++; // 标识符=标识符+1
标识符--; // 标识符=标识符-1

识别码 必须是 Int 或 Float 类型。

示例:
诠释 i;
浮动 f;

我++;
F - ;

e) 函数调用

函数名 ( 参数1 ,参数2 ... , 精氨酸 )

哪里 arg1, ..., 精氨酸 可以是任何常数或变量。 你不能有
另一个函数调用作为参数。
示例:
空间 打印 a) {
打印(一);
}

pr(5);

调度程序编写者可以使用某些预定义的函数
自动调用他/她的 BASL 代码而无需定义它。
这些函数被称为辅助函数(或 helper
功能),它们将在下面讨论 预定义 职能 主题。

f) 常数
下面给出了一些有效的常量表达式:
5;
+ 1.2;
太阳;
星期一;
周二;
星期三;
星期四;
周五;
考试;
(4|4|1997);
(12:01:00);
(4|4|1997@12:01:00);
“精彩的”;
-1b;
同步运行;
异步运行;
删除;
重新运行;
抓住;
释放;
信号;
修改属性;
修改;
(1,3);
(2.3,4.6);
(周三,周五);
((4|4|1997), (4|10|1997));
((12:01:00), (12:30:00));
((4|4|1997@12:01:00), (4|10|1997@12:30:00));
(23GB, 50GB);
网络服务器;
节点;
诺克;
没工作;
空集服务器;
空集节点;
空集;
清空作业;
空字符串;
成功;
失败;
SERVER_ACTIVE;
服务器空闲;
SERVER_SCHED;
SERVER_TERM;
SERVER_TERMDELAY;
数量类型_E;
QTYPE_R;
SCHED_DISABLED;
SCHED_ENABLED;
错误的;
真的;
过境;
排队;
握住;
等待;
跑步;
退出;
CNODE_OFFLINE;
CNODE_DOWN;
CNODE_FREE;
CNODE_RESERVE;
CNODE_INUSE_EXCLUSIVE;
CNODE_INUSE_SHARED;
CNODE_TIMESHARED;
CNODE_CLUSTER;
CNODE_UNKNOWN;
OP_EQ;
OP_NEQ;
OP_LE;
OP_LT;
OP_GE;
OP_GT;
OP_MAX;
OP_MIN;

g) 标识符

示例:
国际我;

i;

2.赋值语句

识别码 = 表达式 ;

识别码表达式 必须具有相互一致的类型作为
如下表所示:

识别码 表达式
=============== ===============
诠释 国际, 浮动
浮动 国际, 浮动
星期几 星期几
约会时间 约会时间

尺寸 尺寸

工作 工作
节点 节点
服务器 服务器
星期几 星期几
约会时间 约会时间
服务器 服务器

工作 工作
节点 节点
范围 诠释 范围 诠释
范围 浮动 范围 浮动
范围 星期几 范围 星期几
范围 约会时间 范围 约会时间
范围 尺寸 范围 尺寸

3. 如果别的 声明
if 语句的格式类似于 C 中的格式,但分隔符
"{" 和 "}" 始终存在:

如果( 表达式 ) {
or 更多 (真) 声明
}

如果( 表达式 ) {
or 更多 (真) 声明
} 其他 {
or 更多 (错误的) 声明
}

表达式 's 类型必须是 Int 或 Float,并在评估后
value 非零,则执行 true 语句。 在第二
形式,如果 表达式 计算结果为零,然后执行错误的语句。

一些样品 if 声明如下:

if (2 * x )
{
y = y + 3;
打印(y);
}

if (2 * x ) {
y = y + 3;
} 其他 {
如果( 3 * x ) {
y = 4;
} 其他 {
y = 5;
}
}

4. 循环 声明
for语句的格式如下:

为( 开始; 测试; 行动 ) {
or 更多 声明
}

就像在 C 中一样, 首先执行 开始 , 然后评估 test 流程条件
查看它是否返回非零值。 如果是,则 陈述是
执行。 之后 语句被执行,然后 行动 被评估,
然后它检查 test 再次以与之前相同的方式进行处理。
开始行动 可以是简单的赋值表达式或后运算符
表达。 test 是逻辑/关系表达式。 一些样本
声明如下:

(i = 0; i LT 3 ; i = i + 1)
{
打印(一);
}

(i = 0; i LT 2 * x; 我++)
{
if (x GT 3)
{
y = 99;
} 其他
{
x = 73;
}
}

5. 的foreach 循环 声明
该语句主要用于依次检索每个元素
a Set 数据类型:Set Server、Set CNode、Set Job、Set Que。 语法是:

的foreach ( 标识符1 in 标识符2 ) {
or 更多 声明
}

其中允许标识符的以下类型配对:

标识符1 标识符2
=========== ===========
服务器 服务器

工作 工作
节点 节点

示例:
服务器 s;
q;
工作 j;
节点 c;

服务器 SS;
平方;
工作 sj;
节点 SC;

foreach(s) in SS){
印刷);
}
foreach(q in 平方){
打印(q);
}
foreach(j in sj){
打印(j);
}
foreach(c) in SC){
打印(c);
}

6. 循环 声明
while 循环的语法是:

( 表达式 ) {
or 更多 声明
}

哪里 表达式 必须是 Int 或 Float 类型。 如果 表达式 非零,则零
或者更多 声明 被执行和 表达式 被重新评估。

示例:
诠释 i;
i = 3;
当我) {
如果( i EQ 0 ) {
打印(“打破 on i = 1");
打破;
}
一世 - ;
}

7. 开关 声明
switch 语句是一个多路决策,用于测试是否
标识符的值匹配多个值之一,并分支到一个
相应的语句组。
switch 语句的语法是:

开关( 识别码 ) {
案件 常量表达式 :
{
or 更多 声明
}
案件 常量表达式 :
{
or 更多 声明
}
...
案件 in 常量范围或集合表达式 :
{
or 更多 声明
}
案件 in 标识符-rangeOrSettype :
{
or 更多 声明
}
默认 :
{
or 更多 声明
}
}

哪里 常量表达式 是一个 表达式 类型为 Int、Float、Dayofweek、DateTime、
大小、字符串、服务器、队列、作业或 CNode。 常量范围或集合表达式
标识符-rangeOrSettype 可以是 Set Server、Set CNode、Set Que、Set
作业、范围 Int、范围浮点数、范围 Dayofweek、范围日期时间或范围大小。

识别码 不能是 Void 类型。 识别码 's 类型必须一致
常量表达式 的, 常量范围或集合表达式 的,标识符-
范围或集合类型 's 类型如下表所示:
识别码 恒定范围表达式, 标识符范围类型
=========== =========================================
服务器 服务器

工作 工作
节点 节点
诠释 范围 诠释
浮动 范围 浮动
星期几 范围 星期几
约会时间 范围 约会时间
尺寸 范围 尺寸

如果 case 表达式匹配 识别码 's 值,那么对应的
语句块被执行。 与 C 不同,执行不会下降
直到下一个 case 语句。 这样做的原因是 巴斯尔2c
翻译这个 开关 语句到 if-elseif-else 结构中。 案子
如果其他情况都不满足,则执行标记为 default。 这
默认 是可选的; 如果它不存在,并且没有一个案例匹配,则不
动作发生。

示例:
星期几 道指;

开关(道)
{
案件 MON:
{
打印(“案例 星期一");
}
案件 TUE:
{
打印(“案例 周二");
}
案件 星期三:
{
打印(“案例 星期三”);
}
案件 THU:
{
打印(“案例 星期四");
}
案件 FRI:
{
打印(“案例 星期五");
}
案件 SAT:
{
打印(“案例 SAT");
}
案件 太阳:
{
打印(“案例 太阳”);
}
默认情况下:
{
打印(“案例 默认");
}
}

诠释 a;
范围 诠释 里;
ri = (10, 12);
开关(一)
{
案件 in (1,5):
{
打印(“案例 1,5");
}
案件 in (6,9):
{
打印(“案例 6,9");
}
案件 in 里:
{
打印(“案例 里");
}
}

8. 打印 声明
打印语句能够将任何值打印到标准输出 识别码
or 常数 类型 Int、Float、Dayofweek、DateTime、String、Size、Que、Job,
CNode、服务器、Range Int、Range Float、Range Dayofweek、Range DateTime、
范围大小。
语法如下:

打印 ( 识别码 );
打印 ( 常数 );

示例:
约会时间 dt;
节点 中文;

dt = (4|4|1997@12:13:36);
cn = AllNodesLocalHostGet();

打印(DT);
打印(cn);

对于 Set 类型,请使用 的foreach 遍历每个元素并打印如下:

服务器 s;
服务器 SS;

ss = AllServersGet();

foreach(s) in 不锈钢) {
印刷);
}

9. 继续声明

继续 ;

继续 语句必须在一个 为了, foreach,
环形。 它导致封闭循环的下一次迭代开始。

10. 中断语句

打破 ;

打破 语句必须在一个 为了, foreach,
环形。 它提供了从封闭循环的早期退出。

11.返回语句

返回(标识符) ;
回报(常数) ;
返回() ;

return 语句提供了一个要返回的值(如果有的话)
功能。 返回的类型 识别码常数 必须匹配
调用函数的返回类型。 常数 允许的类型是除了
集合和范围类型。 最后一种格式, 返回() 通常在一个
不返回任何值的函数(如 调度主() ).

12.退出语句

退出(常数);

哪里 常数 是 Int 类型。 调用它会终止调度程序。

13. 评论声明
这些是以“//”为前缀的语句,它们被 BASL 忽略
编译器。

// Free Introduction 线 is 忽视
诠释 i; // 绳子 以下 斜线 is 忽视

操作员 优先级 AND 关联性


下表显示了定义的各种运算符优先级和关联性
在 BASL 语言中。 运算符按优先级递减的顺序列出。 这
运算符的优先级越高,执行得越早。 的顺序
同一级别的运算符的执行取决于结合性:left 表示
操作符是从左到右看到的,而 right 意味着它们是从右到左看到的。

操作者 关联性
======================================= =============
! ++ -- + (一元 加) - (一元 减)
* / %
+ -
LT LE GT GE
EQ 新商会
AND
OR
=

预定义 职能


In 巴塞尔(2), 服务器 数据类型直接映射到批处理服务器对象。 相似地, 节点
是给妈妈/resmom, 工作 是批处理作业,并且 是批量排队。 然而,并非所有
可以从 BASL 访问 PBS 对象的属性。 只是属性的一个子集,
那些在调度程序的上下文中似乎有意义的内容可用,并且
可以通过调用以下预定义函数来访问这些属性的值,
也称为辅助/助手功能。

(1) 服务器相关功能

服务器 AllServersGet(无效)
返回在配置文件中指定的服务器列表
调度程序编写者希望系统定期检查
状态、队列和作业信息。 看 PBS__sched__basl(8B) 查阅
讨论配置文件的格式。
注意:必须从内部调用此函数 调度主() so
在每次调度迭代中,最新的 服务器
返回结构。

服务器 AllServersLocalHostGet(无效)
返回代表本地主机的 Server 对象。 未设置值:
网络服务器。 这是一个调用非集群环境的简单函数
其中只有一台服务器主机存在。
注意:必须从内部调用此函数 调度主() (或来自
在 sched_main 调用的函数内),以便在每次调度时
迭代,最新的 服务器 返回结构。

ServerInetAddrGet(服务器 s)
返回 Server 的名称。 未设置值:NULLSTR

ServerDefQueGet(服务器 s)
返回 Server 的 default_queue 属性。 未设置值:NULLSTR

诠释 ServerStateGet(服务器 s)
返回 Server 的 server_state 属性。

返回值:
SERVER_ACTIVE、SERVER_IDLE、SERVER_SCHED、SERVER_TERM、
SERVER_TERMDELAY,-​​1(未设置值)

诠释 ServerMaxRunJobsGet(服务器 s)
返回 Server 的 max_running 属性。 未设置值:0

诠释 ServerMaxRunJobsPerUserGet(服务器 s)
返回 Server 的 max_user_run 属性。 未设置值:0

诠释 ServerMaxRunJobsPerGroupGet(服务器 s)
返回 Server 的 max_group_run 属性。 未设置值:0

服务器队列获取(服务器 s)
返回由 Server 管理的队列列表。

工作 ServerJobsGet(服务器 s)
返回由 Server 管理的作业列表。 为了获得这个的子集
清单,见 QueJobsGet().

诠释 ServerIntResAvailGet(服务器 s, 名称)
将值返回给中指定的资源 姓名 可用于工作
由该服务器运行(服务器 resources_available.name 属性)。 叫这个
具有 Int 类型值的资源的函数。 示例资源
名称是:cput、pcput、walltime、mppt、pmppt、nice、procs、mppe、ncpus、
pncpus,nodect,srfs_assist,mta,...,月。 对于这些的描述
资源名称,见 PBS_资源_irix5(7B), PBS_资源_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_服务器_属性(7B), PBS_资源_irix6(7B),
PBS_资源_linux(7B)。

示例:
诠释 中央处理器可用;
// 回报 # of CPU的 目前 可使用 in
// 服务器
CPU利用率 = ServerIntResAvailGet(服务器, "ncpus");

尺寸 ServerSizeResAvailGet(服务器 s, 名称)
将值返回给中指定的资源 姓名 可用于工作
由该服务器运行(服务器 resources_available.name 属性)。 叫这个
具有大小类型值的资源的函数。 示例资源
名称是:文件、内存、pmem、工作集、pf、ppf、srfs_tmp、srfs_wrk、
srfs_big、srfs_fast、sds、psds。 有关这些资源的描述
名字,见 PBS_资源_irix5(7B), PBS_资源_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_服务器_属性(7B), PBS_资源_irix6(7B),
PBS_资源_linux(7B)。

示例:
尺寸 内存可用;
// 回报 of 可使用 记忆 in
// 服务器
内存可用性 = ServerSizeResAvailGet(服务器, “记忆”);

ServerStringResAvailGet(服务器 s, 名称)
将值返回给中指定的资源 姓名 可用于工作
由该服务器运行(服务器 resources_available.name 属性)。 叫这个
具有字符串类型值的资源的函数。 样本
资源名称是:nodes、arch、neednodes。 对于这些的描述
资源名称,见 PBS_资源_irix5(7B), PBS_资源_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_服务器_属性(7B), PBS_资源_irix6(7B),
PBS_资源_linux(7B)。

示例:
类型;
// 回报 架构 (或 os 类型) of
// 服务器
类型 = ServerStringResAvailGet(服务器, “拱”);

诠释 ServerIntResAssignGet(服务器 s, 名称)
将值返回给中指定的资源 姓名 分配给
运行作业(服务器 资源分配名称 属性)。 叫这个
具有 Int 类型值的资源的函数。 示例资源
名称是:cput、pcput、walltime、mppt、pmppt、nice、procs、mppe、ncpus、
pncpus,nodect,srfs_assist,mta,...,月。 对于这些的描述
资源名称,见 PBS_资源_irix5(7B), PBS_资源_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_服务器_属性(7B), PBS_资源_irix6(7B),
PBS_资源_linux(7B)。

示例:
诠释 中央处理器;
// 回报 # of CPU的 目前 分配 in
// 服务器
处理器分配 = ServerIntResAssignGet(服务器, "ncpus");

尺寸 ServerSizeResAssignGet(服务器 s, 名称)
将值返回给中指定的资源 姓名 分配给
运行作业(服务器 资源分配名称 属性)。 叫这个
具有大小类型值的资源的函数。 示例资源
名称是:文件、内存、pmem、工作集、pf、ppf、srfs_tmp、srfs_wrk、
srfs_big、srfs_fast、sds、psds。 有关这些资源的描述
名字,见 PBS_资源_irix5(7B), PBS_资源_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_服务器_属性(7B), PBS_资源_irix6(7B),
PBS_资源_linux(7B)。

示例:
尺寸 sdsAssn;
// 回报 of SDS 空间 目前 分配
// in 服务器
SDS协会 = ServerSizeResAssignGet(服务器, "sds");

ServerStringResAssignGet(服务器 s, 名称)
将值返回给中指定的资源 姓名 分配给
运行作业(服务器 资源分配名称 属性)。 叫这个
具有字符串类型值的资源的函数。 样本
资源名称是:nodes、arch、neednodes。 对于这些的描述
资源名称,见 PBS_资源_irix5(7B), PBS_资源_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_服务器_属性(7B), PBS_资源_irix6(7B),
PBS_资源_linux(7B)。

节点 服务器节点获取(服务器 s)
返回由 server 管理的节点集。 未设置值:EMPTYSETCNODE。
注意:您通常可以为返回的节点调用以下函数
通过此调用:CNodeStateGet()、CNodePropertiesGet() 和 CNodeTypeGet()。

诠释 服务器节点查询(服务器 s, 规格)
向指定服务器发出请求,查询可用性
中指定的资源 规范。 目前唯一的资源
允许的规范是一种涉及“节点”的规范,它可以是
格式化“节点”、“节点=”或“节点=” ”。查询结果可以
通过调用以下函数访问:ServerNodesNumAvailGet(),
ServerNodesNumAllocGet()、ServerNodesNumRsvdGet()、
ServerNodesNumDownGet()。
注意:这是对 PBS_rescquery(3B)服务器功能。

返回值:
成功,失败

诠释 ServerNodesNumAvailGet(服务器 s)
返回可用于指定节点管理的节点数
服务器,或由指定的最近查询反映
服务器节点查询()。 如果返回值为零,则这意味着
当前需要一定数量的节点来满足规范
ServerNodesQuery() 当前不可用。 请求可能得到满足
在以后的某个时间。 如果结果是否定的,则没有已知的组合
节点可以满足规范。

诠释 ServerNodesNumAllocGet(服务器 s)
返回为指定管理的节点分配的节点数
服务器,或由指定的最近查询反映
服务器节点查询()。

诠释 ServerNodesNumRsvdGet(服务器 s)
返回为指定节点管理的节点保留的节点数
服务器,或由指定的最近查询反映
服务器节点查询()。

诠释 ServerNodesNumDownGet(服务器 s)
返回指定节点管理的节点数
服务器,或由指定的最近查询反映
服务器节点查询()。

诠释 ServerNodesReserve(服务器 s,字符串 规格,整数 资源)
向指定的服务器发出请求以保留资源
指定于 规范。 值为 0 资源编号 意味着这是为了做一个
新预订。 否则,该数字将代表一个现有的
(部分)保留。 当前为此保留的资源 资源编号
被释放,将再次尝试完全预订。 在
目前唯一可以指定的资源是
“节点”。 它应该被指定为 节点=规范 哪里
规范是用户在 -l 选项参数列表中指定的内容
对于节点,请参阅 qsub (1B)。
注意:这是对 pbs_recreserve(3B)服务器功能。

返回值:
成功或部分成功的参考编号
预订,或失败

诠释 服务器节点发布(服务器 s, 诠释 资源)
这会释放或释放使用参考号保留的资源
指定于 资源
注意:这是对 PBS_rescrelease(3B)服务器功能。

返回值:
成功或失败

(2) 阙相关函数:

队列名称获取( )
返回阙阙的名字。 未设置值:NULLSTR

诠释 查询类型获取( )
返回阙阙的queue_type 属性。
返回值:QTYPE_E(执行)、QTYPE_R(路由)、-1(未设置)
值)

诠释 QuNumJobsGet( )
返回 Que que 中的作业数。 未设置值:0

诠释 QueMaxRunJobsGet( )
返回阙阙的 max_running 属性。 未设置值:0

诠释 QueMaxRunJobsPerUserGet( )
返回阙阙的 max_user_run 属性。 未设置值:0

诠释 QueMaxRunJobsPerGroupGet( )
返回阙阙的 max_group_run 属性。 未设置值:0

诠释 查询优先级获取( )
返回阙阙的优先级属性。 未设置值:0

诠释 查询状态获取( )
返回Que que的started属性——作业执行选择
队列状态:SCHED_DISABLED、SCHED_ENABLED。 未设置值:
SCHED_DISABLED

工作 QuJobsGet( )
返回当前驻留在 que 中的作业列表。

诠释 QueIntResAvailGet(Que q, 名称)
将值返回给中指定的资源 姓名 可用于
从此 q 运行的作业(Que resources_available.name 属性)。
为具有 Int 类型值的资源调用此函数。
示例资源名称为:cput、pcput、walltime、mppt、pmppt、nice、
procs、mppe、ncpus、pncpus、nodect、srfs_assist、mta、...、mth。 为一个
这些资源名称的描述,请参见 PBS_资源_irix5(7B),
PBS_资源_sp2(7B), pbs_resources_sunos4(7B),
pbs_resources_unicos8(7B), pbs_服务器_属性(7B),
PBS_资源_irix6(7B), PBS_资源_linux(7B)。

尺寸 QueSizeResAvailGet(Que q, 名称)
将值返回给中指定的资源 姓名 可用于
从此 q 运行的作业(Que resources_available.name 属性)。
为具有大小类型值的资源调用此函数。
示例资源名称为:file、mem、pmem、workingset、pf、ppf、
srfs_tmp、srfs_wrk、srfs_big、srfs_fast、sds、psds。 对于描述
在这些资源名称中,请参阅 PBS_资源_irix5(7B),
PBS_资源_sp2(7B), pbs_resources_sunos4(7B),
pbs_resources_unicos8(7B), pbs_服务器_属性(7B),
PBS_资源_irix6(7B), PBS_资源_linux(7B)。

QueStringResAvailGet(Que q, 名称)
将值返回给中指定的资源 姓名 可用于
从此 q 运行的作业(Que resources_available.name 属性)。
为具有字符串类型值的资源调用此函数。
示例资源名称为:nodes、arch、neednodes。 对于描述
在这些资源名称中,请参阅 PBS_资源_irix5(7B),
PBS_资源_sp2(7B), pbs_resources_sunos4(7B),
pbs_resources_unicos8(7B), pbs_服务器_属性(7B),
PBS_资源_irix6(7B), PBS_资源_linux(7B)。

诠释 QueIntResAssignGet(Que q, 名称)
将值返回给中指定的资源 姓名 分配给
从此队列运行的作业(队列 资源分配名称 属性)。
为具有 Int 类型值的资源调用此函数。
示例资源名称为:cput、pcput、walltime、mppt、pmppt、nice、
procs、mppe、ncpus、pncpus、nodect、srfs_assist、mta、...、mth。 为一个
这些资源名称的描述,请参见 PBS_资源_irix5(7B),
PBS_资源_sp2(7B), pbs_resources_sunos4(7B),
pbs_resources_unicos8(7B), pbs_服务器_属性(7B),
PBS_资源_irix6(7B), PBS_资源_linux(7B)。

尺寸 QueSizeResAssignGet(Que q, 名称)
将值返回给中指定的资源 姓名 分配给
从此 q 运行的作业(Que 资源分配名称 属性)。
为具有大小类型值的资源调用此函数。
示例资源名称为:file、mem、pmem、workingset、pf、ppf、
srfs_tmp、srfs_wrk、srfs_big、srfs_fast、sds、psds。 对于描述
在这些资源名称中,请参阅 PBS_资源_irix5(7B),
PBS_资源_sp2(7B), pbs_resources_sunos4(7B),
pbs_resources_unicos8(7B), pbs_服务器_属性(7B),
PBS_资源_irix6(7B), PBS_资源_linux(7B)。

QueStringResAssignGet(队列 q, 名称)
将值返回给中指定的资源 姓名 分配给
从此 q 运行的作业(Que 资源分配名称 属性)。
为具有字符串类型值的资源调用此函数。
示例资源名称为:nodes、arch、neednodes。 对于描述
在这些资源名称中,请参阅 PBS_资源_irix5(7B),
PBS_资源_sp2(7B), pbs_resources_sunos4(7B),
pbs_resources_unicos8(7B), pbs_服务器_属性(7B),
PBS_资源_irix6(7B), PBS_资源_linux(7B)。

(3) 工作相关功能

获取职位ID( 工作 工作 )
返回作业作业的作业标识符。 未设置值:NULLSTR

工作名称获取( 工作 工作 )
返回 Job 作业的 Job_Name 属性。 未设置值:NULLSTR

工作所有者姓名获取( 工作 工作 )
返回 Job 作业的 Job_Owner 属性。 未设置值:NULLSTR

工作有效用户名Get( 工作 工作)
返回作业作业的 euser 属性。

JobEffectiveGroupNameGet(工作 工作)
返回作业作业的 egroup 属性。 未设置值:NULLSTR

诠释 作业状态获取 ( 工作 工作 )
返回 Job 作业的 job_state 属性。

返回值:
传输、排队、暂停、等待、运行、退出、-1(未设置)
值)

诠释 工作优先级获取( 工作 工作 )
返回作业作业的优先级属性。 未设置值:0

诠释 JobRerunFlagGet( 工作 工作 )
返回 Job 作业的 Rerunable 属性。
返回值:FALSE、TRUE、-1(未设置值)

诠释 JobInteractiveFlagGet( 工作 工作 )
返回 Job 作业的交互属性。
返回值:假、真。 未设置值:FALSE

约会时间 JobDateTimeCreatedGet(工作 工作)
返回 Job 作业的 ctime 属性。 未设置值:
(0|0|0@-1:-1:-1)

工作邮箱地址获取( 工作 工作 )
返回作业作业的 Mail_Users 属性。 未设置值:NULLSTR

文件中的作业阶段获取( 工作 工作 )
返回 Job 作业的 stagein 属性。 未设置值:NULLSTR

JobStageoutFilesGet( 工作 工作 )
返回 Job 作业的 stageout 属性。 未设置值:NULLSTR

诠释 JobIntResReqGet(作业 工作, 名称)
将值返回给中指定的资源 姓名 根据要求
工作(工作 资源列表.name 属性)。 调用这个函数
具有 Int 类型值的资源。 示例资源名称
是:cput、pcput、walltime、mppt、pmppt、nice、procs、mppe、ncpus、
pncpus,nodect,srfs_assist,mta,...,月。 对于这些的描述
资源名称,见 PBS_资源_irix5(7B), PBS_资源_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_服务器_属性(7B), PBS_资源_irix6(7B),
PBS_资源_linux(7B)。

示例:
诠释 cput请求;
// 回报 cput 需求 of 工作
请求请求 = JobIntResReqGet(工作, "cput");

尺寸 JobSizeResReqGet(作业 工作, 名称)
将值返回给中指定的资源 姓名 根据要求
工作(工作 资源列表.name 属性)。 调用这个函数
具有大小类型值的资源。 示例资源名称
是:文件、内存、pmem、工作集、pf、ppf、srfs_tmp、srfs_wrk、
srfs_big、srfs_fast、sds、psds。 有关这些资源的描述
名字,见 PBS_资源_irix5(7B), PBS_资源_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_服务器_属性(7B), PBS_资源_irix6(7B),
PBS_资源_linux(7B)。

示例:
尺寸 内存请求;
// 回报 记忆 需求 of 工作
内存请求 = JobSizeResReqGet(作业, “记忆”);

JobStringResReqGet(作业 工作, 名称)
将值返回给中指定的资源 姓名 根据要求
工作(工作 资源列表.name 属性)。 调用这个函数
具有字符串类型值的资源。 示例资源名称
是:节点,拱,neednodes。 有关这些资源的描述
名字,见 PBS_资源_irix5(7B), PBS_资源_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_服务器_属性(7B), PBS_资源_irix6(7B),
PBS_资源_linux(7B)。

示例:
节点;
// 回报 节点 需求 财产 of
// 工作
节点 = JobStringResReqGet(工作, “节点”);

诠释 JobIntResUseGet(作业 工作, 名称)
将值返回给中指定的资源 姓名 作业使用的 (Job
resources_used.name 属性)。 为资源调用此函数
Int 类型的值。 示例资源名称为:cput、pcput、
walltime、mppt、pmppt、不错、procs、mppe、ncpus、pncpus、nodect、
srfs_assist, mta,..., 月。 有关这些资源名称的说明,
看到 PBS_资源_irix5(7B), PBS_资源_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_服务器_属性(7B), PBS_资源_irix6(7B),
PBS_资源_linux(7B)。

示例:
诠释 wallt使用;
// 回报 of 墙上时间 用过的 by
// 工作
墙用 = JobIntResUseGet(工作, “挂墙时间”);

尺寸 JobSizeResUseGet(作业 工作, 名称)
将值返回给中指定的资源 姓名 作业使用的 (Job
resources_used.name 属性)。 为资源调用此函数
大小类型的值。 示例资源名称为:file、mem、
pmem、工作集、pf、ppf、srfs_tmp、srfs_wrk、srfs_big、srfs_fast、
sds,psd。 有关这些资源名称的说明,请参阅
PBS_资源_irix5(7B), PBS_资源_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_服务器_属性(7B), PBS_资源_irix6(7B),
PBS_资源_linux(7B)。

示例:
尺寸 srfs使用;
// 回报 of srfs_fast 用过的 by
// 工作
srfs使用 = JobSizeResUseGet(作业, "srfs_fast");

JobStringResUseGet(作业 工作, 名称)
将值返回给中指定的资源 姓名 作业使用的 (Job
resources_used.name 属性)。 为资源调用此函数
字符串类型的值。 示例资源名称为:节点、
拱,neednodes。 有关这些资源名称的说明,请参阅
PBS_资源_irix5(7B), PBS_资源_sp2(7B),
pbs_resources_sunos4(7B), pbs_resources_unicos8(7B),
pbs_服务器_属性(7B), PBS_资源_irix6(7B),
PBS_资源_linux(7B)。

(4) CNode相关功能

节点 AllNodesGet(无效)
返回由运行在服务器上的服务器管理的节点列表
本地主机。 这也可能包括那些被指定的节点
在调度程序编写器的调度程序配置文件中
希望系统定期检查状态等信息,
财产等等。 看 pbs_sched_basl(8B) 为了讨论
配置文件格式。
注意:必须从内部调用此函数 调度主() so
在每次调度迭代中,最新的 节点
返回结构。 不要从赋值语句中调用它
旨在初始化一个全局变量,因为该语句只会
被调用一次。

节点 AllNodesLocalHostGet(无效)
返回代表本地主机的 CNode 对象。 这是一个
调用非集群系统的简单函数,其中只有 1 个 CNode
存在。 未设置值:NOCNODE
注意:必须从内部调用此函数 调度主() (或
从 sched_main 调用的函数内),以便在每个
调度迭代,最新的 节点 结构是
回来。 不要从旨在用于的赋值语句中调用它
初始化一个全局变量,因为语句只会被调用
一旦。

CNodeNameGet(CNode 节点)
返回节点的唯一(官方)名称(即 ResMom 主机名
在 1 个妈妈/节点模型中)。 这将返回相同的字符串
在配置文件中指定。 未设置值:NULLSTR

CNodeOsGet(CNode 节点)
返回节点的操作系统架构(即“irix5”、“sp2”)。 未设置
值:NULLSTR

诠释 CNodeStateGet( 节点 节点 )
返回节点的状态。

返回值:
CNODE_OFFLINE、CNODE_DOWN、CNODE_FREE、CNODE_RESERVE、
CNODE_INUSE_EXCLUSIVE、CNODE_INUSE_SHARED、CNODE_UNKNOWN

诠释 CNodeTypeGet( 节点 节点 )
返回节点的类型。

返回值:
CNODE_TIMESHARED、CNODE_CLUSTER、CNODE_UNKNOWN

CNodePropertiesGet(CNode 节点)
返回节点已知的其他名称的逗号分隔列表
(属性,其他网络名称)。 例如,
“babbage.OpenPBS.org”可能是节点名称,但也可能是已知的
通过“babbage1,babbage2”。 未设置值:NULLSTR

CNodeVendorGet(CNode 节点)
返回机器硬件的供应商名称(即
“sgi”、“ibm”)。 未设置值:NULLSTR

诠释 CNodeNumCpusGet(CNode 节点)
返回连接到节点的处理器数。 未设置值:
-1

尺寸 CNodeMemTotalGet( 节点 节点, 类型 )
返回总内存 类型 为节点。 类型 是任意的
调度程序编写者在调度程序中定义的字符串
配置文件。 未设置值:-1b
示例:
// 得到 记忆
CNodeMemTotalGet(节点, “真实的”)
// 得到 虚拟 记忆
CNodeMemTotalGet(节点, “虚拟的”)

尺寸 CNodeMemAvailGet( 节点 节点, 类型 )
返回可用内存 类型 为节点。 类型 是任意的
调度程序编写者在调度程序中定义的字符串
配置文件。 未设置值:-1b
所以示例调用将是:
// 得到 可使用 记忆
CNodeMemAvailGet(节点, “真实的”)
// 得到 可使用 虚拟 记忆
CNodeMemAvailGet(节点, “虚拟的”)

诠释 CNodeIdletimeGet( 节点 节点 )
返回没有击键或鼠标移动的秒数
发生在连接到节点的任何终端上。 未设置值:-1

浮动 CNodeLoadAveGet( 节点 节点 )
返回节点的所有 CPU 的平均负载。 未设置值:-1.0

诠释 CNodeCpuPercentIdleGet( 节点 节点 )
返回节点所有处理器空闲时间的百分比
经历过。

诠释 CNodeCpuPercentSysGet( 节点 节点 )
返回节点的所有处理器拥有的时间百分比
花在运行内核代码上。

诠释 CNodeCpuPercentUserGet( 节点 节点 )
返回节点的所有处理器拥有的时间百分比
花费在运行用户代码上。

诠释 CNodeCpuPercentGuestGet( 节点 节点 )
返回节点的所有处理器拥有的时间百分比
花费在运行客户操作系统上。

诠释 CNodeNetworkBwGet( 节点 节点, 类型 )
返回节点网络的带宽 类型 以字节/秒为单位。
类型 由调度程序中的调度程序编写者定义
配置文件。 未设置值:-1
一些示例调用是:
CNodeNetworkBwGet( 节点, “嬉皮” );
CNodeNetworkBwGet( 节点, “外国直接投资” );

尺寸 CNodeDiskSpaceTotalGet(CNode 节点, 名称)
返回节点在磁盘上的总空间,由 姓名 哪里 姓名
是调度程序编写者在程序中任意定义的设备名称
调度程序配置文件。 未设置值:-1b
示例:
CNodeDiskSpaceTotalGet( 节点, "/scratch2" );

尺寸 CNodeDiskSpaceAvailGet(CNode 节点, 名称)
返回节点在磁盘上的可用空间,由 姓名 哪里
姓名 由调度器中的调度器编写器任意定义
配置文件。 未设置值:-1b
示例:
CNodeDiskSpaceAvailGet( 节点, "/scratch1" );

尺寸 CNodeDiskSpaceReservedGet(CNode 节点, 名称)
返回节点在磁盘上的保留空间(用户配额?)
姓名 哪里 姓名 由调度程序编写者在
调度程序配置文件。 未设置值:-1b
示例:
CNodeDiskSpaceReservedGet( 节点, "/scratch1" );

诠释 CNodeDiskInBwGet( 节点 节点, 姓名 )
返回标识的节点磁盘的写入带宽(字节/秒)
by 姓名 . 未设置值:-1
示例:
CNodeDiskInBwGet( 节点, “/快速地” );

诠释 CNodeDiskOutBwGet( 节点 节点, 姓名 )
返回节点磁盘的读取带宽(字节/秒),由
姓名 . 未设置值:-1
示例:
CNodeDiskOutBwGet( 节点, “/大” );

尺寸 CNodeSwapSpaceTotalGet( 节点 节点, 姓名 )
返回节点在交换上的总空间,由 姓名 哪里 姓名
由调度器中的调度器编写器任意定义
配置文件。 未设置值:-1b
示例:
CNodeSwapSpaceTotalGet( 节点, “基本的” );

尺寸 CNodeSwapSpaceAvailGet( 节点 节点, 姓名 )
返回节点在交换时的可用空间,由 姓名 哪里 姓名
是调度程序编写者在程序中任意定义的设备名称
调度程序配置文件。 未设置值:-1b
示例:
CNodeSwapSpaceAvailGet( 节点, “次要” );

诠释 CNodeSwapInBwGet( 节点 节点, 姓名 )
返回节点的交换设备的交换率,由 名称。
示例:
CNodeSwapInBwGet(节点, “次要”);

诠释 CNodeSwapOutBwGet( 节点 节点, 姓名 )
返回由节点标识的交换设备的交换率
名称。 未设置值:-1
示例:
CNodeSwapOutBwGet(节点, “基本的”);

尺寸 CNodeTapeSpaceTotalGet( 节点 节点, 姓名 )
返回节点在磁带上的总空间,由 姓名 哪里 姓名
由调度器中的调度器编写器任意定义
配置文件。 未设置值:-1b
示例:
CNodeTapeSpaceTotalGet(节点, "4mm");

尺寸 CNodeTapeSpaceAvailGet( 节点 节点, 姓名 )
返回节点在磁带上的可用空间,由 姓名 哪里
姓名 由调度器中的调度器编写器任意定义
配置文件。 未设置值:-1b
示例:
CNodeTapeSpaceAvailGet(node, "8mm");

诠释 CNodeTapeInBwGet( 节点 节点, 姓名 )
返回标识的节点磁带的写入带宽(字节/秒)
by 姓名 . 未设置值:-1
示例:
CNodeTapeInBwGet( 节点, “4 毫米” );

诠释 CNodeTapeOutBwGet( 节点 节点, 姓名 )
返回标识的节点磁带的读取带宽(字节/秒)
by 姓名 . 未设置值:-1
示例:
CNodeTapeOutBwGet( 节点, “8 毫米” );

尺寸 CNodeSrfsSpaceTotalGet( 节点 节点, 姓名 )
返回节点在 srfs 设备上的总空间由 姓名
哪里 姓名 由调度程序编写者在
调度程序配置文件。 未设置值:-1b
示例:
CNodeSrfsSpaceTotalGet(节点, “/快速地”);

尺寸 CNodeSrfsSpaceAvailGet( 节点 节点, 姓名 )
返回节点在 srfs 设备上的可用空间由 姓名
哪里 姓名 由调度程序编写者在某些情况下任意定义
配置文件。 未设置值:-1b
示例:
CNodeSrfsSpaceAvailGet( 节点, “/大” );

尺寸 CNodeSrfsSpaceReservedGet(CNode 节点, 名称)
返回节点在 srfs 设备上的保留空间总量
由...确定 姓名 哪里 姓名 由调度器任意定义
调度程序配置文件中的编写器。 未设置值:-1b
示例:
CNodeSrfsSpaceReservedGet( 节点, “/快速地” );

诠释 CNodeSrfsInBwGet( 节点 节点, 姓名 )
返回节点的 srfs 设备的写入带宽(字节/秒)
由...确定 姓名 . 未设置值:-1
示例:
CNodeSrfsInBwGet( node, "/fast" );

诠释 CNodeSrfsOutBwGet( 节点 节点, 姓名 )
返回节点的 srfs 设备的读取带宽(字节/秒)
由...确定 姓名 . 未设置值:-1
示例:
CNodeSrfsOutBwGet( node, "/big" );

(5) 杂项功能

约会时间 日期时间获取()
获取当前日期/时间。

诠释 日期时间到秒(日期时间 dt)
返回自纪元以来的秒数(UNIX 时间的开始 -
00:00:00, 1 年 1970 月 XNUMX 日)给定的日期/时间 dt。

诠释 作业操作( 工作 工作, 诠释 行动, 停止 )
执行 行动 on 工作停止 指定取决于
行动。 行动 可以是:SYNCRUN、ASYNCRUN、DELETE、RERUN、HOLD、
RELEASE、SIGNAL、MODIFYATTR、MODIFYRES,其中:
操作 产品描述
=============== ==========================
同步运行 运行 工作 同步,
呼叫
作业操作() 仅由
回报 ,尤其是 工作 具有
开始 运行 or ,尤其是
an 错误 具有
遭遇。
帕拉姆 值:
姓名 of 主机 运行
工作 下。

异步运行 运行 工作 异步,
呼叫
作业操作() 回报
立即 as 或很快需要, as
运行 请求 is
验证 by PBS 服务器,
不能 一定 ,尤其是
工作 具有 开始
执行。
帕拉姆 值:
姓名 of 主机 运行
工作 下。

删除 删除 工作。
帕拉姆 值:
“延迟=<# of 秒>"
- 延迟 # of
之间 发送
of 目标期限 杀人狂
工作 before
越来越 删除。

重新运行 重新运行 运行 工作,
涉及 终止
会议 领导者 of
工作 返回 工作
排队 州。

保持 地方 一种 or 更多 持有
on 工作。
帕拉姆 值:
“你”, "哦", "s", "你", "os",
“uos”
- 类型 of 持有 地方
on 工作: 用户), 其他),
系统)。

RELEASE 移除了 or 发布
持有 放置 on 工作。
帕拉姆 值:
“你”, "哦", "s", "你", "os",
“uos”
- 类型 of 持有 去掉
工作: 用户), 其他),
系统)。

信号 发送 a 信号
执行 工作。
帕拉姆 值:
"哈普", “签到”,...

修改属性 修改 指定
属性 of 工作
特定 值, ,尤其是
属性名称 is
!= “资源列表” or
“资源使用”。
帕拉姆 值:
“属性名称=值”

修改 修改 工作
资源列表
属性 特定
资源名称
资源值:
资源列表.res_name=
资源值
帕拉姆 值:
“res_name=res_val”
停止 价值取决于行动。 如果没有值,则指定 NULLSTR
这个参数是需要的。
返回值:成功或失败。
注意:任何无法识别的 行动 被忽略。
示例:
// 运行 工作 j 同步地
作业操作(j, 同步运行, 空字符串);

// 运行 工作 j 异步 on 主持人 “D b”
作业操作(j, 异步运行, “D b”);

// 删除 工作 j
作业操作(j, 删除, 空字符串);

// 删除 工作 j a 延迟 of 5
// 之间 发送 of 目标期限
// 杀人狂
作业操作(j, 删除, “延迟= 5”);

// 重新运行 工作 j
作业操作(j, 重新运行, 空字符串);

// 地方 a 用户) 举行 on 工作 j
作业操作(j, 抓住, "你");

// 地方 an 其他) 举行 on 工作 j
作业操作(j, 抓住, "o");

// 地方 a 系统) 举行 on 工作 j
作业操作(j, 抓住, "s");

// 地方 a 默认 举行 (u) on 工作 j
作业操作(j, 抓住, 空字符串);

// 释放 用户) 举行 工作 j
作业操作(j, 释放, "你");

// 释放 其他) 举行 工作 j
作业操作(j, 释放, "o");

// 释放 系统) 举行 工作 j
作业操作(j, 释放, "s");

// 释放 默认 举行 (u) 工作 j
作业操作(j, 释放, 空字符串);

// 提交 签到 信号 工作 j
作业操作(j, 信号, "SIGHUP");

// 更新 评论 属性 of 工作
// j "a 信息”。
// 停止 格式 是: 属性名称=新值
// 征询 PBS 文件 a 名单 of 工作
// 属性 名称 能够 be 指定的。
作业操作(j, 修改属性, “评论=一个 信息”);
// 更新 资源列表.cput 属性 of 工作
// j 3600 秒。
// 停止 格式 是: 资源名称=新值
// 我们 PBS_资源* 男子 a 名单 of
// 资源名称 能够 be 指定的。
作业操作(j, 修改, "cput=3600");

QueJobFind(阙 que,乐趣 诠释 函数,整数 心肺复苏术,诠释 价值);

QueJobFind(阙 que,乐趣 函数,整数 cpr,字符串 价值);

QueJobFind(阙 que,乐趣 约会时间 函数,整数 cpr,日期时间 价值);

QueJobFind(阙 que,乐趣 尺寸 函数,整数 cpr,大小 价值);

哪里 CPR 是以下之一:OP_EQ、OP_NEQ、OP_LE、OP_LT、OP_GE、OP_GT。 FUNC
是一个函数,它的唯一参数是 Job 类型的。 工作 是回报
类型。

说明:适用 FUNC 对每一个工作 , 并返回第一个
满足逻辑比较的作业: 功能(工作) CPR 折扣值

示例:

尺寸 JobVirtualMemAvailGet(作业 工作)
{
尺寸 深圳;

sz = JobSizeResReqGet(作业, “记忆”);
返回(sz);
}
诠释 JobWallTimeReqGet(作业 工作)
{
诠释 墙;

沃尔特 = JobIntResReqGet(工作, “挂墙时间”);
返回(墙);
}

诠释 JobCpuTimeUsedGet(作业 工作)
{
诠释 计算;

cput = JobIntResUseGet(工作, "cput");
返回(CPU);
}

findQueByName(设置 队列, 姓名)
{
q;

foreach(q in 队列) {
如果( 队列名称获取(q) EQ 名称 ) {
返回(q);
}
}
返回(NOQUE);
}
调度主()
{
服务器 s;
阙;
平方;

// 得到 本地 服务器
s = AllServersLocalHostGet();

// 得到 尾巴 of 服务器 s
sq = ServerQueuesGet(s);

// 得到 队列 命名 “快速地”
// 本地 服务器
= 按名称查找队列( 平方, “快速地” );

// 找到最适合您的地方 1 工作 谁的 墙上时间 需求
// is == 300s:
QueJobFind(问, JobWallTimeReqGet, OP_EQ, 300);

// 找到最适合您的地方 1 工作 谁的 邮箱地址 地址
// 通知 关于 工作 活动 != “巴约干”:
QueJobFind(问, 工作邮箱地址获取, OP_NEQ,
"巴约干");

// 找到最适合您的地方 1 工作 创建 after
// or on 3 / 3 / 1997:
QueJobFind(问, JobDateTimeCreatedGet, OP_GE,
(3|3|1997));

// 找到最适合您的地方 1 工作 创建 after
// 3:3:44:
QueJobFind(问, JobDateTimeCreatedGet, OP_GT,
(3:3:44));

// 找到最适合您的地方 1 工作 创建 after
// 3:3:44 on 3 / 3 / 1997:
QueJobFind(问, JobDateTimeCreatedGet, OP_GT,
(3|3|1997@3:3:44));

// 找到最适合您的地方 1 工作 谁的 CPU 用过的 < 1600s:
QueJobFind(问, JobCpuTimeUsedGet, OP_LT, 1600);

// 找到最适合您的地方 1 工作 谁的 虚拟 记忆
// 需求 <= 300MB:
QueJobFind(问, JobVirtualMemAvailGet, OP_LE,
300 兆);
}

工作 找工作( 开玩笑 诠释 功能, 诠释 心肺复苏)

工作 找工作( 开玩笑 功能, 诠释 心肺复苏)

工作 找工作( 开玩笑 约会时间 功能, 诠释 心肺复苏)

工作 找工作( 开玩笑 尺寸 功能, 诠释 心肺复苏)

哪里 CPR 可以是以下之一:OP_MAX、OP_MIN、 FUNC 是一个
唯一参数是 Job 类型的函数。

描述:返回具有最大值或最小值的作业
功能(工作) 因为它适用于每个工作 .

示例:
诠释 JobCpuTimeReqGet(作业 工作)
{
诠释 计算;

cput = JobIntResReqGet(工作, "cput");
返回(CPU);
}
调度主()
{
阙;
工作 工作;

// 找到最适合您的地方 工作 最高 CPU
// 要求:
工作 = QueJobFind(问, JobCpuTimeReqGet, OP_MAX);

// 找到最适合您的地方 工作 最低限度 CPU
// 要求:
工作 = QueJobFind(问, JobCpuTimeReqGet, OP_MIN);
}

队列过滤器(队列 que,乐趣 诠释 函数,整数 心肺复苏术,诠释 值)

队列过滤器(队列 que,乐趣 函数,整数 cpr,字符串 值)

队列过滤器(队列 que,乐趣 约会时间 函数,整数 心肺复苏,日期 值)

队列过滤器(队列 que,乐趣 尺寸 函数,整数 cpr,大小 值)

哪里 CPR 可以是以下之一:OP_EQ、OP_NEQ、OP_LE、OP_LT、
OP_GE,OP_GT, FUNC 是一个函数,它的唯一参数是 Job 类型的。

说明:适用 FUNC 对每一个工作 , 并返回一个新的队列
包含满足比较条件的所有作业:
功能(工作) CPR 折扣值

示例:
诠释 JobWallTimeReqGet(作业 工作)
{
诠释 墙;

沃尔特 = JobIntResReqGet(工作, “挂墙时间”);
返回(墙);
}
调度主()
{
阙;
新的;

// 退货政策 a 包含 所有 工作 in “阙”
// a 墙上时间 需求 == 300s:
新q = 查询过滤器(查询, JobWallTimeReqGet, OP_EQ, 300);

// 退货政策 a 包含 所有 工作 in “阙”
// an 邮箱地址 地址 != “巴约干”:
新q = 查询过滤器(查询, 工作邮箱地址获取, OP_NEQ, "巴约干");

// 退货政策 a 包含 所有 工作 in “阙”
// 创建 after or on 3 / 3 / 1997:
新q = 查询过滤器(查询, JobDateTimeCreatedGet, OP_GE,
(3|3|1997));

// 退货政策 a 包含 所有 工作 in “阙”
// 创建 after 3:3:44:
新q = 查询过滤器(查询, JobDateTimeCreatedGet, OP_GT,
(3:3:44));

// 退货政策 a 包含 所有 工作 in “阙”
// 创建 after 3:3:44 on 3 / 3 / 1997:
新q = 查询过滤器(查询, JobDateTimeCreatedGet, OP_GT,
(3|3|1997@3:3:44));

// 注意: 原版的 “阙” is 不能 改性
// 任何。
}

诠释 排序(设置 工作 s, 开玩笑 诠释 键, 诠释 顺序)

诠释 排序(设置 工作 s, 开玩笑 键, 诠释 顺序)

诠释 排序(设置 工作 s, 开玩笑 浮动 键, 诠释 顺序)

诠释 排序(设置 工作 s, 开玩笑 约会时间 键, 诠释 顺序)

诠释 排序(设置 工作 s, 开玩笑 尺寸 键, 诠释 顺序)

哪里 s 要排序的作业集。 是排序键,它是一个
唯一参数是 Job 类型的函数, 秩序 是排序
顺序:升序、降序。

描述:对元素进行排序 s , 在 ASCending 或
由返回的值的 DESCending 顺序 作为
应用于作业集的每个成员。 这 s 对象被修改
有了这个电话。 这将返回 SUCCESS 或 FAIL,具体取决于
那种。

例子:
尺寸 JobMemReqGet(作业 工作)
{
尺寸 内存;

成员 = JobSizeResReqGet(作业, “记忆”);
回报(记忆);
}

调度主()
{
服务器 主;

工作 工作;

诠释 命令;

// 得到 本地 服务器
= AllServersLocalHostGet();

工作 = 服务器作业获取(掌握);
排序(工作, 工作优先获取, 升序);
排序(工作, JobIdGet, 描述);
秩序 = 升序;
排序(工作, JobDateTimeCreatedGet, 命令);
秩序 = 描述;
排序(工作, JobMemReqGet, 命令);
}

诠释 排序(设置 s, 开玩笑 诠释 键, 诠释 顺序)

诠释 排序(设置 s, 开玩笑 键, 诠释 顺序)

诠释 排序(设置 s, 开玩笑 浮动 键, 诠释 顺序)

诠释 排序(设置 s, 开玩笑 约会时间 键, 诠释 顺序)

诠释 排序(设置 s, 开玩笑 尺寸 键, 诠释 顺序)

哪里 s 要排序的队列集。 是排序键,它是一个
唯一参数为 Que 类型的函数, 秩序 是排序
顺序:升序、降序。

描述:对元素进行排序 s , 在 ASCending 或
由返回的值的 DESCending 顺序 作为
应用于队列集的每个成员。 这 s 对象是
使用此调用进行了修改。 这将返回 SUCCESS 或 FAIL,具体取决于
排序的结果。

例子:
尺寸 QueMemAvailGet(队列 比)
{
尺寸 内存;

成员 = QueSizeResAvailGet(que, “记忆”);
回报(记忆);
}

调度主()
{
服务器 主;

问题;
诠释 命令;

// 得到 本地 服务器
= AllServersLocalHostGet();

疑问句 = 服务器队列获取(掌握);
排序(问题, 查询优先获取, 升序);
排序(问题, 队列名称获取, 升序);
秩序 = 描述;
排序(问题, QueMemAvailGet, 命令);
}

诠释 排序(设置 服务器 s, 开玩笑 诠释 键, 诠释 顺序)

诠释 排序(设置 服务器 s, 开玩笑 键, 诠释 顺序)

诠释 排序(设置 服务器 s, 开玩笑 浮动 键, 诠释 顺序)

诠释 排序(设置 服务器 s, 开玩笑 约会时间 键, 诠释 顺序)

诠释 排序(设置 服务器 s, 开玩笑 尺寸 键, 诠释 顺序)

哪里 s 要排序的服务器集。 是排序键
唯一参数是服务器类型的函数, 秩序
排序顺序:升序、降序。

描述:对元素进行排序 s , 在 ASCending 或
由返回的值的 DESCending 顺序 作为
应用于服务器组的每个成员。 这 s 对象是
使用此调用进行了修改。 这将返回 SUCCESS 或 FAIL,具体取决于
排序的结果。

例子:
尺寸 ServerMemAvailGet(服务器 服务)
{
尺寸 内存;

成员 = ServerSizeResAvailGet(服务, “记忆”);
回报(记忆);
}

调度主()
{
服务器 服务器;

诠释 命令;

诠释 退;

服务器 = AllServersGet();

RET = 排序(服务器, ServerMaxRunJobsGet, 升序);
排序(服务器, 服务器InetAddrGet, 升序);

秩序 = 描述;
排序(服务器, ServerMemAvailGet, 命令);
}

诠释 排序(设置 节点 s, 开玩笑 诠释 键, 诠释 顺序)

诠释 排序(设置 节点 s, 开玩笑 键, 诠释 顺序)

诠释 排序(设置 节点 s, 开玩笑 浮动 键, 诠释 顺序)

诠释 排序(设置 节点 s, 开玩笑 约会时间 键, 诠释 顺序)

诠释 排序(设置 节点 s, 开玩笑 尺寸 键, 诠释 顺序)

哪里 s 要排序的节点集。 是排序键,它是一个
唯一参数是 CNode 类型的函数, 秩序 是排序
顺序:升序、降序。

描述:对元素进行排序 s , 在 ASCending 或
由返回的值的 DESCending 顺序 作为
应用于节点集的每个成员。 这 s 对象是
使用此调用进行了修改。 这将返回 SUCCESS 或 FAIL,具体取决于
排序的结果。

例子:
尺寸 CNodeMyMemAvailGet(CNode 中)
{
尺寸 内存;

成员 = CNodeMemavailGet(cn, “虚拟的”);
回报(记忆);
}

调度主()
{
节点 节点;

诠释 命令;

节点 = AllNodesGet();

排序(scnode, CNodeIdletimeGet, 升序);
排序(scnode, CNodeNameGet, 升序);
秩序 = 描述;
排序(scnode, CNodeMyMemAvailGet, 命令);
}

CNode..Get() 职能


上一节讨论的 CNode..Get() 函数的返回值是
通过在每次调度迭代时向 CNode 的 MOM 发送资源查询获得。
例如, CNodeLoadAveGet(节点) 将返回从一些获得的值
资源> 查询(这可能是字符串“loadave”)发送到节点的 MOM。 这
” -> CNode..Get()" 映射是在内部建立的,但它们可以是
可以通过调度程序配置文件添加修改或更多映射。 配置
文件在讨论 pbs_sched_basl(8B)。
已经建立的映射如下所示:

对于所有架构:

CNode..Get() 实际 呼叫 主持人 资源
======================== =============
CNodeOsGet(节点)
CNodeLoadAveGet(节点) 负载
CNodeIdletimeGet(节点) 空闲时间

使用 onworks.net 服务在线使用 basl2cB


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad