Itasca公司非正式地宣布FLAC3D 9.2将与云平台Rescale合作正式支持集群计算 (Cluster Computing),其实这是一个对大多数同学可能根本用不着的功能,因为我们有的是时间,睡觉之前让它运行即可,早晨起来看结果。
当一些岩土软件,例如Midas GT NX和Irazu,宣称它们支持GPU运算时,Itasca软件一直采用的是MPI技术【双CPU运行FLAC3D的相关事项】,使用多线程进行并行运算,集群计算可以看作是一种广义的多线程运算方法。事实上,一些大型数值模拟软件,如Cosmol和Abaqus都使用的是集群计算技术而不是GPU技术。
2. 集群计算的概念
集群计算是一种通过将多台独立的计算机(称为节点)连接在一起,协同工作以完成计算任务的技术。这些节点通常通过高速网络相互连接,共享资源和负载。集群计算的目标是提高系统的性能、可靠性和可扩展性。集群计算的主要特点包括:
(1) 并行处理:集群中的节点可以同时执行不同的任务或同一任务的不同部分,从而加快计算速度。
(2) 高可用性:如果某个节点发生故障,集群可以自动将其从系统中移除并重新分配任务,确保服务的连续性。
(3) 负载均衡:集群可以根据节点的可用资源(如 CPU、内存、存储空间等)动态地分配任务,确保资源得到充分利用。
(4) 可扩展性:集群可以通过添加更多节点来增加计算能力和存储容量。
3. FLAC3D的集群计算
尽管Itasca声称在FLAC3D 9.2正式支持集群计算,但集群计算的命令很早以前就有,理论上把两台计算机通过OpenMPI连接起来,就能进行集群计算,只是由于条件所限,我们没法进行这种试验。FLAC3D的集群计算命令和FISH是:
model configure cluster
model cluster assign-groups on
cluster.active
cluster.call
cluster.comm
cluster.execution
cluster.process
cluster.total
Itasca使用了一个简单的模型测试集群计算的性能,命令如下:
zone create brick size 200 200 200
zone cmodel assign mohr-coulomb
zone property bulk 3e8 shear 2e8 coh 1e6 fric 15 dens 1000
zone face skin
zone face apply velocity-normal 0 range group 'West'
zone face apply velocity-normal 0 range group 'South'
zone face apply velocity-normal 0 range group 'Bottom'
model gravity 10
在这个试验中,使用了4个节点,每个节点36核,因此总共144核,每分钟每个节点Rescale收费7.2c,因此每分钟的费用为7.2*4=28.8c,计算时间花了11分钟,因此本次计算总的花费为28.8*11=316.8c=$3.168,按当前的汇率计算,约为22.2元人民币。
4. 本地计算
测试的机器配置如下图所示,计算机仅有24核,还没有上述1个节点的核数多,运行文件,结果99秒就完成了。说什么也不应该这样呀,测试了个寂寞,不清楚哪里出现的问题。没法往下写啦!