CST如何安装和设置分布式计算?
作者 | Wang Yuanteng
最近常有用户问到分布式计算设置相关问题。其实,帮助文档中详细介绍了分布式计算(Distributed Computing,简称DC)设置的方法,今天将DC设置的几部分关键内容总结一下。
CST支持多核、GPU、DC和MPI四种高性能计算方式。DC支持互相独立的计算任务,如频域求解器不同频点的计算、参数扫描或优化的计算、连续激励多个端口。下面详细介绍DC的系统架构、安装和设置方式。
DC系统架构
在进行DC设置之前,我们首先需要了解一下DC系统架构:
工作原理主要分成以下几个步骤:
Frontend即用户前端,用户从Frontend向DC Main Controller提交仿真作业。
DC Main Controller作为一个排队系统,根据在求解器设置中输入的条件选择Solver Server(DC Main Controller可以连接任意数量的Frontend和DC Solver Server)。
DC Main Controller通过网络将仿真任务发送到可用的选定服务器上。提交任务依据“先到先得”原则。
DC Solver Servers的作用是保持和MainController的通信,并在本地运行和控制求解器的可执行文件。
作业在DC Solver Server上一旦完成,就会被发送回DC Main Controller,排队等待最终传输回相应Frontend。
Frontend提交仿真作业给分布式计算系统后,可以断开(即关闭)CST前端。当Frontend再次连接到系统,它将自动接收当前打开的项目所有之前计算的仿真结果(这里Main Controller必须可以访问lincense server)。
安装和设置
Main Controller只需要安装在网络中的一台计算机上,该计算机不一定要安装CST Studio Suite其他组件。
Solver Server需要安装在网络中远程运行仿真的每台计算机上,且计算机需要安装CST Studio Suite程序。
实际上,用户安装CST时如果选择typical,DC Main Controller和DC Solver Server都会被安装。并且,DC Main Controller和DC Solver Server安装后会有一些默认设置,为了使DC更够正常使用,我们需要搞明白几个关键的设置。
DC Main Controller
1:指定TCP/IP服务器端口,默认为36300。Main Controller将使用该端口与Frontend和Solver Server通信。需确保防火墙已配置,使该端口可以正常访问。
2:需要指定一个工作目录,所有仿真数据存储在该目录,直到仿真结果已成功传输回前端。强烈建议使用本地硬盘,避免不必要的网络流量。该文件夹中存储的数据量可能会很大,需确保有足够的磁盘空间。
3: 补丁目录,该目录用作自动更新补丁包,允许将CST服务包自动分发和安装到所有Solver Server。
该界面还包括安全设置,具体可以查阅help进行设置。
单击Start Server即启动DC Main Controller服务。
DC Solver Server
1:指定服务器端口号,默认为38300。该端口将用于求解器可执行文件和Solver Server通信以及Main Controller和Solver Server之间的通信。
2:指定工作目录,当前仿真任务的数据将暂存在该目录下。强烈建议使用本地硬盘,以避免不必要的网络流量,因为数据传输过程会降低求解器性能。确保有足够的磁盘空间来保存数据。
3:指定DC Main Controller计算机的名称或IP地址,以及它的TCP/IP端口地址。点击Start Server,Solver Server将自动连接到主控制器,即可以在Main Controller连接到的服务器列表中看到该服务器,如下图。
指定DC Main Controller非常重要,前面所有内容不改都可以用,但这里不改可能会错。默认的DC Main Controller是localhost,也就是本机。所以,当网络中作为计算的机器安装了Main Controller的时候,需要将本机的Main Controller服务停止掉,这里修改成实际使用的Main Controller机器。
根据以上信息我们可以知道,从设置角度来说,Frontend和Main Controller可以在同一台机器上,甚至它们也可以和其中一台Solver Server在同一台机器上(但最好不要)。大家可以根据自己的资源情况和使用需求灵活设置。
4:指定本地计算机上运行的服务器的数量,即同时执行的求解器数量,默认为1。设置服务器数量后,点击Select CPU device或Select Hardware acceleration device,可以将CPU或GPU分配给多个不同的Solver Server。
Set Priorities可以为每个求解器服务器设置优先级,数字越小,优先级越高。Max number of allowed threads per server 如字面意思,可以指定每个服务器允许的最大线程数,限制每个求解器运行所使用的CPU核数。注意,实际物理CPU核的数量其实是这个设置的上限。
另外,即使解算器服务器正在运行,上述大多数设置也可以修改。
设置完成之后,回到MainController界面:
在这里可以找到有关已连接的Solver Server的信息,如可用内存、已安装的CPU、已安装的硬件加速设备和操作系统信息。单击Active可以启用或禁用特定的Solver Server,单击PP可以要启用或禁用特定服务器上的远程后处理。这样就完成了DC系统相关的设置,接下来去仿真任务中调用即可。
Frontend
在仿真工程的Solver->Accleration->DC进行设置,即可以激活DC。DC支持三种应用方式:参数扫描/优化,分布激励计算,远程计算。
根据仿真需要,可以勾选DC使用的方式和设置数量,可参考FAQ049:如何设置硬件加速选项:GPU/DC/MPI/token DC部分(这里需要注意使用DC所带来的的token消耗数量为所使用服务器CPU和GPU消耗token数总和),点击OK,回到求解器界面点击Start,即可以激活分布式计算。
如果分布式作业正在运行,则可以在自动打开的“分布式计算状态”窗口中查看进度。
更加详细的DC设置方法或者相关问题,可以仔细阅读帮助文档。本号之前也介绍过一些相关内容,感兴趣可以回顾:
如何设置分布式计算的共享储存
如何设置分布式计算(Distributed Computing)的 TCP-IP子网