作者 | 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,即可以激活分布式计算。

如果分布式作业正在运行,则可以在自动打开的“分布式计算状态”窗口中查看进度。

【推荐内容】

如何在CST中运行自己编写的Python脚本?

 CST案例:可调谐全硅手性超表面在太赫兹频段

CST软件使用特征模式分析的超宽带超表面吸波体

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐