10.1.5并行服务器的使用

当并行服务器已经开始工作后,就可以在网格中通过callx命令分配计算任务到各个服务器了。如下面的网格parallel01.dfx

 

A

1

=file("D:/files/txt/PersonnelInfo.txt")

2

=A1.import@t(;pPart:pAll)

3

=A2.select(State==pState)

4

return A3

这个网格中的代码,从人员信息文件PersonnelInfo.txt中,读取一部分数据,并从中选出指定州的员工数据。其中用到的网格参数如下:

在主程序中,使用集群并发计算调用parallel.dfx,来计算全部Ohio州的员工:

 

A

1

[192.168.10.229:8281]

2

=callx("D:/files/dfx/parallel01.dfx","OH",to(20),20;A1)

3

=A2.conj()

其中,A1指定计算时调用的并发服务器列表,A2中用callx调用这些服务器来执行并发计算。计算后,A2中的结果如下:

可见,在使用集群服务器时,一个任务会根据参数的数量拆分为多个工作,交由集群服务器去执行。而每个分机又会将工作分配给各个进程去处理,每个进程都会返回一个结果,A2中的数据是就是每个结果排列构成的序列。在A3中将结果合并后,如下:

通过这种方法,主程序可以把复杂运算或者大数据量的运算,拆分成多个小任务,交由多个并行服务器分别计算,并在主程序中整合结果。关于并行计算的详细讲解,将在10.2集群计算 中继续。