submitJob

语法

submitJob(jobId, jobDesc, jobDef, args…)

参数

jobId 是作业的ID,是字符串类型。

jobDesc 是字符串,用于描述作业。

jobDef 是用于定义作业的本地函数。请注意,该参数是一个函数对象,而不是表示函数名的字符串,因此不可使用引号。

args… 是函数的参数。如果函数没有参数,可以不指定。

详情

把批处理作业提交到本地节点并且返回作业的ID. 如果要把批处理作业提交到远程节点,需要结合使用rpc或 remoteRun 函数。详情请参考 批处理作业管理

例子

  • 把作业提交到本地节点:

$ def jobDemo(n){
$     s = 0
$     for (x in 1 : n) {
$         s += sum(sin rand(1.0, 100000000)-0.5)
$         print("iteration " + x + " " + s)
$     }
$     return s
$ };

$ submitJob("jobDemo1","job demo", jobDemo, 100);
jobDemo1

$ getJobStatus("jobDemo1");

node

userID

jobId

jobDesc

priority

parallelism

receivedTime

startTime

endTime errorMsg

local8848

guest

jobDemo1 job demo

0

1

2020.09.13T13:40:10.138

2020.09.13T13:40:10.139

在作业的状态中,endTime为空,这意味着作业还在执行中。作业完成后,就能在状态中看到endTime的值。

$ getJobStatus("jobDemo1");

node

userID

jobId

jobDesc

priority

parallelism

receivedTime

startTime

endTime

errorMsg

local8848

guest

jobDemo1

job demo

0

1

2020.09.13T13:40:10.138

2020.09.13T13:40:10.139

2020.09.13T13:41:43.644

$ getJobMessage("jobDemo1");

2020-09-13 13:40:10.139269 Start the job [jobDemo1]: job demo
2020-09-13 13:40:11.159543 iteration 1 3914.672836
2020-09-13 13:40:12.118014 iteration 2 4263.240185
2020-09-13 13:40:13.069435 iteration 3 4006.833021
......
2020-09-13 13:41:41.769256 iteration 97 -1897.963368
2020-09-13 13:41:42.706748 iteration 98 -2455.003061
2020-09-13 13:41:43.640253 iteration 99 924.915703
2020-09-13 13:41:43.640253 The job is done.

$ getJobReturn("jobDemo1");
924.915703

$ submitJob("jobDemo2",, jobDemo, 10);
jobDemo2

$ getRecentJobs();

node

userID

jobId

jobDesc

priority

parallelism

receivedTime

startTime

endTime

ErrorMsg

local8848

guest

jobDemo1

job demo

0

1

2020.09.13T13:40:10.138

2020.09.13T13:40:10.139

2020.09.13T13:41:43.644

local8848

guest

jobDemo2

jobDemo

0

1

2020.09.13T13:58:20.552

2020.09.13T13:58:20.554

2020.09.13T13:58:29.584

  • 把作业提交到远程节点:

使用rpc函数(”DFS_NODE2”与本地节点在同一集群):

$ def jobDemo(n){
$     s = 0
$     for (x in 1 : n) {
$         s += sum(sin rand(1.0, 100000000)-0.5)
$         print("iteration " + x + " " + s)
$     }
$     return s
$ }

$ rpc("DFS_NODE2", submitJob, "jobDemo3", "job demo", jobDemo, 10);
Output: jobDemo3


$ rpc("DFS_NODE2", getJobReturn, "jobDemo3");
Output: -3426.577521
  • 使用 remoteRun 函数或 remoteRunWithCompression 函数,这里以 remoteRun 为例:

$ conn = xdb("DFS_NODE2")
$ conn.remoteRun(submitJob, "jobDemo4", "job demo", jobDemo, 10);
Output: jobDemo4

$ conn.remoteRun(getJobReturn, "jobDemo4");
Output: 4238.832005