callx(dfx,...;;x)

阅读(53) 标签: 多线程, 网格文件,

描述:

多线程执行本地网格文件dfx,返回多任务结果集拼成的序列。

语法:

callx(dfx,…;;x)

备注:

多线程执行本地脚本dfx为参数,序列长度表示作业数。如果有分进程则执行多进程计算。实际并行数为本机适合作业数,多出作业等待执行。

xreduce动作,无x时返回每个作业的结果构成的序列;有x时,以每个作业的结果为~,当前值为~~计算x,结果再置于~~,最后返回~~即分机的结果序列。

参数:

dfx

网格文件,dfx可设置为绝对路径或相对路径。相对路径为工具->选项->【环境】菜单下的寻址路径

x

reduce动作,可省略

传递给dfx的参数值。该参数格式一般为序列,需要给dfx传递几个参数,即有几个序列。在并行计算时,将按照该参数的序列长度将计算任务拆分为多个子任务,将序列的每一个成员,作为dfx的参数值传递到各自的子任务中。如果该参数是单值参数,则将单值自动复制到各个子任务中。

 

示例:

test.dfx为本地文件,文件内容如下:

 

A

B

1

=connect("demo").query("select * from SCORES  where SUBJECT=?",arg1)

2

return A1

return A1.(SCORE)

 

 

A

 

1

=callx("test.dfx",["English","Math","PE"];)

本地并行,传递参数至test.dfx中,test.dfx存放在工具->选项->【环境】菜单下的寻址路径,返回查询出的结果序列

2

=callx("test.dfx",["English"];;~~|~)

本地并行计算,传递参数至test.dfx中,并且根据汇总表达执行reduce动作,汇总表达式为:~~|~,将test.dfxA2的返回序列与A3的返回序列和列,返回结果序列