用于化工过程模拟的分层任务图并行计算框架

曲士峰 ,  杨邵毅 ,  杜文莉 ,  段兆阳 ,  钱锋 ,  王美宏

Engineering ›› 2025, Vol. 51 ›› Issue (8) : 229 -239.

PDF (2731KB)
Engineering ›› 2025, Vol. 51 ›› Issue (8) : 229 -239. DOI: 10.1016/j.eng.2024.06.019
研究论文

用于化工过程模拟的分层任务图并行计算框架

作者信息 +

A Hierarchical Task Graph Parallel Computing Framework for Chemical Process Simulation

Author information +
文章历史 +
PDF (2795K)

摘要

基于序贯模块法的过程流程模拟软件仍然是过程设计、控制和优化中不可或缺的工具。然而,随着流程工业向智能操作和维护方向发展,传统的基于序贯法的过程模拟技术在计算密集型运算和大量中央处理器(CPU)时间需求方面面临挑战,特别是在大规模设计和优化任务中。为了应对这些挑战,本文提出了一种新颖的过程模拟并行计算框架(PSPCF)。这一框架在单元操作层面实现了循环过程的分层并行。值得注意的是,PSPCF引入了一个开创性的概念,即将模拟问题表述为任务图,并利用Taskflow这一先进的任务图计算系统来进行分层并行调度和执行单元操作任务。此外,PSPCF还集成了一种先进的工作窃取机制,以自动平衡线程资源与单元操作任务的繁重工作负载。为了评估该框架的性能,使用PSPCF在一个流程模拟平台上模拟了一个较简单的并联塔过程和一个更复杂的裂解气分离过程。这一框架展示了显著的时间节省效果,对于较简单的过程实现了处理时间缩减60%以上,对于更复杂的分离过程实现了35%~40%的速度提升。

Abstract

Sequential-modular-based process flowsheeting software remains an indispensable tool for process design, control, and optimization. Yet, as the process industry advances in intelligent operation and maintenance, conventional sequential-modular-based process-simulation techniques present challenges regarding computationally intensive calculations and significant central processing unit (CPU) time requirements, particularly in large-scale design and optimization tasks. To address these challenges, this paper proposes a novel process-simulation parallel computing framework (PSPCF). This framework achieves layered parallelism in recycling processes at the unit operation level. Notably, PSPCF introduces a groundbreaking concept of formulating simulation problems as task graphs and utilizes Taskflow, an advanced task graph computing system, for hierarchical parallel scheduling and the execution of unit operation tasks. PSPCF also integrates an advanced work-stealing scheme to automatically balance thread resources with the demanding workload of unit operation tasks. For evaluation, both a simpler parallel column process and a more complex cracked gas separation process were simulated on a flowsheeting platform using PSPCF. The framework demonstrates significant time savings, achieving over 60% reduction in processing time for the simpler process and a 35%–40% speed-up for the more complex separation process.

关键词

并行计算 / 过程模拟 / 任务图并行 / 序贯模块法

Key words

Parallel computing / Process simulation / Task graph parallelism / Sequential modular approach

引用本文

引用格式 ▾
曲士峰,杨邵毅,杜文莉,段兆阳,钱锋,王美宏. 用于化工过程模拟的分层任务图并行计算框架[J]. 工程(英文), 2025, 51(8): 229-239 DOI:10.1016/j.eng.2024.06.019

登录浏览全文

4963

注册一个新账户 忘记密码

1 引言

随着流程工业对环境的影响日益受到国际社会的关注,智能化和优化制造已被应用于流程工业,以帮助工厂降低能源消耗、资源消耗和环境污染[1],这符合绿色生产的需求[2‒3]。高效智能制造的核心是工业过程的数字化,包括通过建模技术为石化企业建立数字工厂[4],以及通过结合过程机理实现虚拟制造[5]。过程模拟作为一项不可或缺的数字化技术,被广泛用于化工过程的设计和优化。它是一个基于化学工程、系统工程、应用数理统计、计算方法和计算机技术等多学科理论的综合计算系统。随着流程工业向更智能化的操作和维护方向发展,许多商业过程流程模拟软件在计算时间和成本方面面临越来越大的挑战,特别是对于大规模设计和优化问题[6]。传统的过程模拟框架难以为基于大规模设计的任务或化工厂的实时优化进行及时计算。随着单处理器计算的进步接近极限,多核处理器已被广泛采用以提高计算能力。大量研究致力于利用并行计算来解决具有挑战性的工业任务。

序贯模块法(SM)和联立方程法(EO)是过程模拟系统中两种主要的方法[7]。在基于联立方程法的系统中,可以通过将流程图中单元操作的数学模型与连接关系一起组装成一个大型方程组来建立整体装置模型[8]。通常使用牛顿法求解这些非线性方程组,从而实现流程图的同步优化和收敛[9]。在这类系统中,并行性通常通过矩阵的并行计算来实现。在20世纪80年代,Ortega等[10]对在向量和并行计算机上求解偏微分方程的数值方法进行了广泛综述。模块化积分方法已被提出作为通过积分单个大型方程组来模拟大型系统的可行替代方案,为使用多处理器模拟超大规模过程系统的动态特性提供了可能[11]。近期研究进一步发展了这些方法。Ma等[12]开发了一种并行计算方法,通过将大规模非线性方程分成若干组并使用多线程进行同步函数评估来求解大规模EO模型。Weng等[13]提出了一种多线程并行计算方法来计算多活性位自由基聚合的分子量分布。Carrasco等[14]提出了基于双层和并行编程的方法,并将其应用于非线性和高维模块化系统,以减少与系统维数相关的计算时间挑战。Lu等[15]开发了一种用于模拟气固流动的粗粒度离散颗粒方法,该方法充分利用了中央处理器(CPU)-图形处理器(GPU)混合超级计算。大多数研究通过利用这些高阶矩阵的稀疏性,对大型化学过程模拟中产生的矩阵进行重新排序和分区,并将每个子矩阵分配给多台计算机或线程进行独立计算。并行性也被应用于流程优化和综合,以加速计算。为了提高精馏过程随机优化的效率,Lyu等[16]通过池模型将种群分配到不同线程的组中,从而充分利用多核CPU。然而,这些并行解决方案大多基于EO,在问题表述灵活性方面存在局限性。针对通用序贯模块法的过程模拟的并行计算在文献中仍然是一个相对未被充分探索的领域。

与联立方程法不同,基于序贯模块法的过程模拟对于大规模设计和优化问题涉及更广泛的迭代过程,导致时间成本过高。尽管如此,序贯模块法仍然是大多数商业过程流程模拟软件采用的首选模拟方法,如Aspen Plus(Aspen Technology Inc.)、Aspen Hysys(Aspen Technology Inc.)、PRO/II(Schneider Electric SimSci)、UniSim(Honeywell Inc.)和Petro-SIM(KBC Advanced Technologies plc.)[17‒18]。这种偏好的原因是多方面的。

• 在基于序贯模块法的过程模拟中,单元操作之间的数据流与实际化学过程中的物料流一致,符合工程师的直观经验。

• 基于序贯模块法的模拟系统的编程、维护和扩展通常很方便。

• 与联立方程法相比,在序贯模块法框架中更容易识别模拟失败的原因。

• 序贯模块法下的模拟计算比基于联立方程法的框架需要更少的计算机内存。

• 与联立方程法相比,基于序贯模块法的框架的收敛稳定性对初始猜测值的依赖性较小[19]。

如前所述,与联立方程法相比,序贯模块法在从较差的初始猜测值求解非线性方程组方面具有明显优势[20‒21]。这在建模的早期阶段尤为重要,因为此时模型变量值在很大程度上是未知的,初始猜测值可能远离解。为了提高鲁棒性,几种基于联立方程法的过程流程模拟软件会先执行初始的序贯模块法模拟,以便为大型非线性方程组中的变量提供更好的初始值[22]。总之,基于序贯模块法的流程模拟系统对于当今化工和石化行业的过程模拟任务仍然是不可或缺的。

为了解决基于序贯模块法的计算耗时问题并加速模拟,需要为基于序贯模块法的流程模拟系统开发一个并行化框架,以适应广泛配备的多核处理器。根据序贯模块法,流程图求解过程的数据流与单元操作之间的物料流是一致的。因此,流程图的计算可以自然地表示为一个由独立阶段组成的任务图,这些阶段通过数据通道进行显式通信[23]。一个配置良好的任务图可以通过任务图计算系统(TGCS)并行执行。TGCS在大规模科学计算中发挥着关键作用,它将函数调用及其依赖关系封装在自顶向下的任务图中,实现了可扩展到多处理器(包括多核CPU)的不规则并行分解策略。近年来,TGCS引起了广泛的研究兴趣,Fastflow [23]、StarPU [24]、TPL [25]、Legion [26]、Kokkos DAG [27]、PaRSEC [28]、HPX [29]和Taskflow [30]等系统已在包括机器学习和仿真在内的各种科学计算应用中取得成功。

本文提出了一个基于TGCS的高效过程模拟并行计算框架(PSPCF)。该框架是第一个允许基于序贯模块法的系统使用TGCS支持并行计算的通用计算框架,并且可以轻松集成到现有的过程建模系统中以实现并行化。PSPCF在单元操作级别对基于序贯模块法的化学过程模拟进行并行化,显著加快了计算速度。它提供了比大多数已发表的基于联立方程法的并行计算策略更粗粒度的并行性,以及更高的可扩展性和通用性。通过开发分层任务图生成系统,所提出的框架还能有效地对带有循环的过程进行并行化。集成工作窃取机制,以自动平衡线程资源与任务工作负载。

本文的其余部分组织如下:第2节讨论将基于序贯模块法的模拟问题转换为支持并行计算的任务图;第3节介绍集成到所提出框架中的先进TGCS的细节;第4节介绍PSPCF的主要系统和工作流程;在第5节中,将PSPCF应用于两个过程流程模拟计算任务以评估计算性能;最后,第6节给出结论。

2 将过程流程图转换为任务图——求解序贯模块法模拟的新视角

对于采用序贯模块法的过程模拟,每个化工过程都可以通过将一组标准数学单元操作模块以任意和灵活的网络方式连接,并通过物料流和能量流进行表示[31]。根据序贯模块法,为每种类型的单元操作准备专用的子程序,如闪蒸单元、精馏塔、吸收塔、各种反应器、压缩机、泵、阀门等。该子程序包含相应的数学模型方程和模型求解程序,如图1所示。然后,模拟系统根据单元操作之间的相互连接,通过顺序调用每个单元操作来求解整体过程模型[32]。一旦提供了进料流的物性、单元结构参数和操作参数,每个单元就开始计算其物理输出,然后将其作为输入传递给后续单元。值得注意的是,这种基于序贯模块法的模拟中的计算可以代表流并行的主要场景。流并行是一种编程范式,它支持使用一组串行或并行阶段对一系列任务进行并行执行。过程流程图可以自然地表示为一个由独立任务组成的任务图,这些任务通过数据通道进行显式通信。在这种情况下,并行性是通过同时执行图的每个阶段来实现的。通过将化工过程流程图转换为任务图,其计算变成了对数据流的一系列变换。

并行度对计算速度有显著影响[33]。对于过程模拟而言,一个实用的并行粒度处于物性算法级别。这个级别的并行性可以有效利用多核计算资源。然而,物性计算与单元操作对象之间的交互是复杂的,这给并行性设计带来了挑战。在这个级别实现并行计算需要放弃传统的面向对象结构和代码,并重新组织算法之间的大量依赖关系。同样,这种局限性也适用于基于联立方程法系统中的大多数并行策略,它们无法提供可扩展和通用的解决方案。

为了避免这种艰巨的重新配置,在单元操作级别实现并行性更为可行。为了实现这一点,可将整个过程模拟划分为一系列可以独立计算的子任务。通过这种分解,过程模拟程序可以用一个包含节点(单元操作)和边(依赖关系)的任务图来表示。如果模拟任务可以转换为任务图问题,那么使用先进的任务图计算系统来执行并行计算就变得可行了。

以图2所示的简单化工过程流程图为例,一个单元操作将其前序单元的输出作为输入。例如,单元操作HEATER_1的模拟任务只能在COMP_1和FLASH_1的计算完成后才能开始。对于像HEATER_1和VALVE_1这样的并联单元操作,一个单元的执行独立于另一个单元。因此,三个单元操作可以分配到不同的线程并同时执行。尽管独立的单元操作提供了并行计算的潜力,但在大规模过程模拟中,在遵守依赖关系并实现负载平衡的同时将大量任务分配给多个线程仍然是一个挑战。

由于循环结构的存在,过程模拟中的并行性变得更加复杂,而这在化工过程中恰恰是常见的。循环结构的模拟要求过程计算系统同时处理循环内的所有单元操作[34]。为此,必须首先通过分区技术[35]识别循环块(如图2中的红色方框所示),该技术基于流程图拓扑分离最大不可再分块。分块后,使用撕裂算法[36]确定循环内的计算顺序。迭代过程涉及对撕裂流变量的假设和重新计算,直到达到上、下游物流状态的一致性,这在模拟带有循环的过程中至关重要[37]。同样,依赖于循环迭代计算的单元的模拟只能在完成前序循环内单元的计算后才能进行。因此,循环内的所有单元操作应被视为单个实体,并与循环外的其他同级单元一起执行。

没有循环结构的过程可以映射为一个有向无环任务依赖图,该图由流程图中单元操作的模拟子程序组成。通过将流程图转换为任务依赖图,化工过程模拟问题可以利用现有TGCS的强大功能高效执行,从而为模拟并行化提供了极大的便利性。相互依赖的任务必须根据其依赖关系顺序执行。大多数TGCS配备了先进的工作窃取算法来在线程之间调度任务,从而解决负载不平衡问题[38]。因此,基于TGCS开发模拟并行计算系统是可行的,可以根据依赖关系为任务分配线程资源,并对相互独立的单元执行并行计算。然而,在处理带有循环的过程时,迭代过程的循环执行超出了TGCS中常用的传统有向无环图(DAG)模型的能力。在这种情况下,一个名为Taskflow的新型TGCS作为解决方案应运而生。Taskflow不仅集成了先进的工作窃取方案,还集成了独特的任务模型,支持循环的迭代执行和分层任务依赖图的构建。下一节将详细介绍Taskflow及其在所提出框架中的集成。

3 先进的任务图计算系统——Taskflow

近年来,已经开展大量关于TGCS的研究,其在包括机器学习、数据分析和仿真在内的各种科学计算应用中取得了显著成功。由Huang等[30]开发的Taskflow是一个新型TGCS,支持各种类型的任务模型。两种独特的模型——可组合任务和条件任务——是Taskflow的核心组成部分,这两种模型使Taskflow成为解决循环过程迭代执行问题的工具。因此,Taskflow被选为本文提出框架的模拟运行时环境。Taskflow设计了两个层次的调度——任务级和工作线程级,本节将对此进行详细阐述。

3.1 任务级调度

任务级调度涉及为图内控制流设计可行的执行计划,并根据任务依赖关系将任务图中的任务高效地分配给工作线程。在Taskflow的各种任务模型中,三种基本任务模型被集成到本文提出的框架中:静态任务、可组合任务和条件任务。

静态任务是Taskflow中最基本的任务类型,运行一个不带参数的可调用对象。条件任务是Taskflow的独特功能,解决了其他TGCS在表达超出DAG范围的循环控制流方面的局限性。通过循环控制流,条件任务支持模拟过程流程图中循环的迭代执行。本文提出的框架将受益于这种能力,能够实现循环控制流决策,而无需将控制流分区或展开为扁平的DAG。图3展示了Taskflow中的if-else控制流,其中一个条件任务位于两个静态任务B和D之前,根据条件的返回值指导执行。可组合任务允许开发人员定义任务层次结构,并从模块化块构建大型任务图。通过可组合任务,用户可以将繁重的并行工作负载分解为携带特定任务依赖图的小模块任务,这在很大程度上促进了并行任务编程中的模块化。该模型特别适合于化工过程流程图中循环块的模块化,如图4所示。顶层任务图(即主图)定义了一个静态任务A,它在一个模块任务之前运行,该模块任务组成了由三个相互依赖的任务mA、mB和mC构成的子图。

对于任务级调度,静态任务模型和可组合任务模型是任务依赖图的基本节点,而条件任务是实现控制流的关键。条件任务与其他任务之间的执行逻辑使用两种依赖关系符号进行区分:弱依赖(图3中用虚线箭头表示)和强依赖(图3中用实线箭头表示)。零依赖的任务,即不依赖于任何其他任务的执行结果的任务,由任务调度器优先处理,调度器在满足强剩余依赖关系后立即执行任务,或者在弱依赖的情况下直接跳转到由条件任务的返回值索引的任务。

3.2 工作线程级调度

在工作线程级别,Taskflow利用工作窃取机制以动态负载平衡的方式执行任务图。工作窃取是一种平衡线程资源与任务工作负载的调度策略。它解决了在静态多线程计算机(具有固定数量的核心或工作线程)上执行动态多线程计算(可以“生成”新的执行线程)的问题。在过去几十年中,工作窃取调度已经引起了广泛的研究兴趣[39‒41]。然而,大多数工作窃取方法在解决方案的通用性和性能可扩展性方面存在困难。通过新颖的工作线程管理方案,Taskflow中的自适应工作窃取调度将工作线程的数量适配到动态生成的任务并行性,从而克服了复杂数据结构的局限性。该方案减少了在执行任务依赖图期间线程之间对任务的竞争,并以更高的概率将可执行任务分配给适当的线程。

该方案如图5所示,来自科学计算过程的任务依赖图(左侧)显示了任务(节点)和依赖关系(边)。Taskflow中的工作窃取调度器架构(右侧)展示了线程管理的效率。每个工作线程都有一个用于就绪任务的私有双端队列。工作线程可以从其双端队列的一端添加和弹出任务,而其他工作线程可以从另一端窃取任务。由调度器创建的窃取线程负责执行这一窃取工作。在初始化期间,调度器生成准备好执行任务的CPU工作线程。之后,工作线程开始执行任务图,并通过锁来保护主队列,防止任务图并发提交。通常,工作线程从其内部双端队列的头部获取任务。当它完成一个任务时,调度器自动减少后续任务的依赖关系,并在依赖关系满足时将新任务推送到该工作线程的双端队列。如果双端队列为空,则从其他繁忙线程的双端队列或主队列中获取任务。窃取线程的数量根据任务负载进行调整,以减少资源浪费或增加活动工作线程数量直至最大值。

执行器作为工作线程级调度的载体,是一个用于管理工作线程并通过高效的工作窃取算法执行任务图的对象。执行器的工作线程数量可以通过发出带有无符号整数作为参数的调用来调整。值得注意的是,执行器以不同于其他类型任务的方式处理由可组合任务生成的模块任务。当模块任务被分配给工作线程时,模块任务的执行要求独占使用单个工作线程。此外,该模块任务内部的静态任务需要由单独的工作线程执行。因此,执行器在执行模块任务时总是生成一个额外的工作线程。应该注意的是,即使在执行器的工作线程数量设置为1的情况下,如果遇到模块任务,仍然会生成第二个线程来完成模块任务的执行。

在我们提出的计算框架中,这种自适应的工作线程级调度方案加速了过程模拟任务依赖图的执行。

4 过程模拟并行计算框架的主要系统和工作流程

在本节中,我们介绍PSPCF,它包括主图设置系统(MGSS)和循环子图生成系统(RSGS)。PSPCF在单元操作级别增强了过程模拟计算,并通过工作窃取机制加速了并行计算过程。通过将Taskflow的图内控制流应用到我们的框架中,实现了循环计算的迭代过程。通过设置控制流节点参数,用户可以指定循环的加速方法、收敛准则和最大迭代次数。提出的并行计算框架是分层的,能够在过程模拟计算中实现分层并行。

4.1 主图设置系统

MGSS从模拟的过程流程图构建分层可执行任务图,如图6所示。过程模拟流程图(顶部)被转换为主图(底部),主图包含流程图中所有单元操作的模拟任务(即模拟任务节点)。这些模拟任务节点由Taskflow的静态任务机制支持,包含用于单元操作的子程序,其中包括数学模型方程和求解算法。当模拟相应的单元操作时执行这些子程序。MGSS的操作方式取决于模拟的过程流程图是否包含循环回路。

4.1.1 无循环的过程流程图

当MGSS接收到不含循环的配置过程流程图(图6中的顶部)时,它创建单元操作和物料流的模拟任务节点,并将它们链接到预处理期间准备的相应模拟子程序[31]。模拟任务节点之间的依赖关系根据全局过程拓扑建立,主图输出所有模拟任务节点及其依赖关系。

4.1.2 含循环的过程流程图

对于包含循环回路的流程图,需要迭代求解循环内的单元操作。这些循环被称为循环块(如图7中红色方框所示),需要两级分层计算结构。在较高层,块外任务与一种新类型的节点(即子图任务节点)一起执行,子图任务节点由特定循环块内的所有任务(即块内任务)组成。此外,块内任务在其相应的子图任务节点内的较低层执行。对于依赖于块内任务节点的块外任务节点,其程序被延迟,直到整个前序循环块的迭代执行完成并且收敛结果可用。这些子图任务节点由Taskflow的可组合任务机制实现。

MGSS首先使用基于流程图拓扑的系统分区技术识别循环块。之后,使用撕裂算法推断每个循环块的最优撕裂流集合。或者,用户可以手动分配撕裂流集合以调整模拟的收敛性。在指定每个循环块的撕裂流之后,创建相应的循环子图任务节点。子图构建的细节将在下一节详细说明。然后将这些循环子图任务节点添加到主图中,与其他块外模拟任务节点处于同一层级,并根据全局过程拓扑与块外节点连接。

图8提供了对应于图7中过程流程图的两级分层主图。块外任务节点与循环子图任务节点一起构成主图的较高层。较低层由循环子图内的任务节点构建,即块内任务。通过这种两级分层计算结构,循环块的迭代计算和块外单元操作的计算处于同一层级。值得注意的是,对于主图上与循环子图直接连接的模拟任务节点,这些节点的依赖关系是与集总的循环子图任务节点建立的,而不是与流程图中直接连接的单元操作的块内模拟任务节点建立。例如,在图8中,模拟任务节点S18的依赖关系设置在循环子图任务节点上,而不是模拟任务节点COLUMN上。

4.2 循环子图生成系统

当MGSS构建含有循环的过程流程图的分层可执行主图时,使用循环子图生成系统(RSGS)来处理迭代循环过程。

化学过程模拟中计算循环块的常规程序,首先为撕裂流分配初始猜测值,然后按顺序模拟循环块内的所有单元操作。在完成块的每次完整循环计算后,根据特定规则更新撕裂流的猜测值。这样,撕裂流的模拟程序在每次迭代期间执行两次,迭代过程重复进行,直到撕裂流的猜测值与计算值之间的差异不大于指定的容差。任务图计算系统的图内控制流是实现这一计算过程的潜在工具,尽管应用于RSGS仍然具有挑战性。具体来说,传统的任务调度器难以有效调度包含收敛检查的循环子图的循环模拟,并难以协调具有不同类型依赖关系的块内任务的执行。因此,在循环子图内创建了两种类型的任务节点:循环定位任务节点和条件任务节点。

• 循环定位任务节点。循环定位任务节点由Taskflow的静态任务模型支持,用于通知任务调度器循环子图从哪个任务节点开始计算。在每个循环子图中,在第一个模拟任务节点之前添加两个循环定位任务节点作为起点,帮助调度器识别块内任务节点的计算顺序。这种定位节点的存在还可以防止当同一子图中某些分支计算更快并早于其他慢速分支进入下一次迭代时发生不同步错误。这样,定位任务节点通过将循环子图的所有并行模拟保持在同一次迭代内来确保每次迭代的整体同步。

• 条件任务节点。为了实现循环子图的迭代计算,条件任务节点被定义为放置在每次迭代末尾的逻辑单元,用于检查当前误差是否满足用户给定的收敛容差。条件任务节点仅存在于循环子图中,由Taskflow的条件任务模型支持。

条件任务节点配备多种收敛加速算法的程序,并调节循环子图的图内控制流。如第3.1节所述,根据任务的执行是依赖于条件任务节点还是依赖于其他任务节点,迭代过程中任务的依赖关系可以分为弱依赖(条件外任务)和强依赖(其他任务)。没有箭头入口的任务节点称为零依赖任务。计算过程总是从执行零依赖任务开始。然后,任务调度器继续执行具有强依赖关系的任务,直到暴露弱依赖关系,此时条件任务节点会评估是否已达到收敛。调度器直接跳转到该条件任务节点的返回值所索引的任务。值得注意的是,为了执行一系列任务节点,零依赖任务是必需的。否则,将形成如图9所示的无终止循环。在这种情况下,任务调度器将无法选择从哪里开始,子图中的所有任务都将被阻止执行主图。

至此,已经介绍了RSGS中的所有节点类型。图10显示了RSGS的输出,即对应于红色方框中循环块的任务子图。在MGSS识别循环块并推断撕裂流集合后,激活RSGS以生成相应的循环子图。撕裂流是RSGS放置在子图中的第一个任务节点(图10中的S7和S9)。然后依次将其他块内模拟任务节点添加到子图中,其依赖关系根据流程图的拓扑结构建立。值得一提的是,在放置最后的块内任务节点(即连接到撕裂流的前序单元操作任务节点,见图10中的PUMP 1和FLASH 3)之后,不应在它们与后续撕裂流之间建立连接。否则,由于缺少零依赖任务,循环子图会变成无终止的循环。为了解决这个问题,考虑到撕裂流的模拟程序在每次迭代中执行两次,可以在所有块内模拟任务节点添加到子图后,在内存中添加撕裂流实例化对象的副本(S7', S9')。通过将最后的块内任务节点PUMP 1和FLASH 3连接到复制的撕裂流S7'和S9',而不是原始撕裂流,到此为止生成了一个在头部和尾部都有撕裂流的单向子图。

接下来,在头部撕裂流之前放置循环定位任务节点起点,以标记每次迭代的开始。还在尾部撕裂流之后添加条件任务节点,通过分析撕裂流存储的计算结果来评估循环是否收敛。通过用弱依赖连接条件节点和起点节点,在循环子图中形成循环回路。最后,为了使任务调度算法正常工作,应在起点之前放置定位任务节点init,以提供零依赖源,使调度器识别循环子图的起点。

4.3 PSPCF的架构

图11展示了PSPCF的架构。在此设置中,用户将单元操作拖到画布上并连接它们以配置流程图,包括设置结构参数和操作参数。在接收到过程流程图后,MGSS在计算结构的较高层生成分层可执行主任务图。该层主要执行块外模拟单元和循环块。如果MGSS在流程图拓扑中检测到循环结构,它会激活RSGS,在计算结构的较低层构建带有图内控制流的可执行任务子图,促进块内任务的迭代执行。

作为MGSS的输出,过程流程图的主图本质上是一组具有依赖关系的单元操作模拟任务节点。这些任务通过任务调度器分配给多个线程,任务调度器负责管理一组工作线程来调度和执行依赖任务。当任务调度器从MGSS接收到主图时,它根据依赖关系将图中的任务分派给工作线程。为了加速过程模拟任务图的执行,PSPCF还集成了工作线程级调度器,该调度器基于工作窃取方案动态平衡工作线程数量与任务并行性,如第3.2节所述。

PSPCF的一个关键特性是其能够处理块内任务的并行计算。如图11所示,当识别出循环子图时,它被分配给其中一个工作线程,而块内任务则被转储到其他线程以促进并行执行。

5 结果

为了评估PSPCF的性能,本文研究了两个案例:一个包含8个并联塔的简单化工过程和一个用于乙烯生产中分离裂解气的实际过程。研究重点关注运行时间、负载平衡和层次机制。实验在Windows 11 x86 64位机器上进行,配备第11代Intel® CoreTM i7-1165G7 2.80 GHz CPU和16 GB内存。PSPCF使用Ninja以C++19标准编译,提供的数据代表10次运行的平均值。

5.1 并联塔

在第一个案例研究中,使用了包含8个并联精馏塔的流程图。该流程图的任务图如附录A中的图S1所示。

在PSPCF中手动配置了线程工作线程数量,以测试不同条件下的加速性能。在Aspen Plus中设置了相同的过程流程图,以评估PSPCF计算的准确性。在附录A中的图S2中,比较了PSPCF和Aspen Plus之间液相中重关键组分(乙烷)和轻关键组分(乙烯)的浓度分布,显示出令人满意的一致性。图12绘制了随着工作线程数量增加的流程图的总执行时间。与仅使用一个工作线程相比,使用四个或更多工作线程时观察到55%~65%的运行时间加速。

当工作线程数量超过5个时,总执行时间的下降趋势发生逆转,并随着工作线程数量的增加而略有上升。在8个工作线程时,总执行时间出现下降。这可以归因于两个原因。首先,如附录A中的图S3所示,与其他单元操作相比,执行精馏塔操作需要耗费大量时间。这影响了工作线程之间的负载平衡。当工作线程数量从1个增加到4个时,塔执行所需的批次数量减少,在4个工作线程时达到最优负载平衡。超过这个数量后,不再观察到进一步的时间节省,并且在第二批塔执行期间某些线程变为空闲状态。这解释了观察到的执行时间变化。此外,多个工作线程同时执行复杂的精馏任务会导致由于调用平衡闪蒸算法和共享内存数据访问而产生等待损失,这进一步解释了总执行时间增加的原因。

5.2 乙烯生产中的裂解气分离过程

进一步在乙烯生产中的复杂分离过程上评估了PSPCF的性能,该过程对于分离高纯度乙烯及回收丙烯和丁二烯等有价值的副产品至关重要。该过程如附录A中的图S4所示,涉及多个步骤,提高了乙烯生产的效率和收率,同时确保环境合规和操作安全。

分离流程图由四个循环块组成,其中由条件任务支持的图内控制循环实现了块内任务的迭代计算。PSPCF用于分离过程流程图的任务图如附录A中的图S5所示。该流程图的Aspen Plus流程图以及过程的详细描述见附录A中的图S6。使用五个指定工作线程的总执行时间线如图13所示,其中提供了对图内控制流的详细见解,特别是循环4。表1中列出了PSPCF和Aspen Plus对分离过程中主要产品物流的摩尔流量和产品浓度的结果,证明了PSPCF在复杂过程中的高计算精度。

按照第4.2节介绍的方案,循环子图任务的时间线跨度从循环定位任务开始。循环内模拟任务的跨度在每个循环时间线中重复,直到块内撕裂流满足收敛条件。如第3.2节所述,执行器为模块任务生成额外的工作线程。在图13中,这些额外生成的工作线程被标记为“L1”,以区别于执行循环子图的线程。例如,循环4的循环子图分配给W2.L0,为同步执行块内任务创建了额外的线程W2.L1。在五个指定工作线程的场景中,由于三个工作线程用于执行循环子图(循环1分配给W1.L0,循环2分配给W4.L0,循环3和循环4分配给W2.L0),生成了三个额外线程(W1.L1、W4.L1和W2.L1),因此总共有8个工作线程。

精馏塔仍然是分离过程中最耗时的任务。在这种情况下,多个处理器无法被有效利用,因为不同单元操作的CPU时间会有显著差异[42]。循环4内的单元操作(包括精馏塔)总共迭代10次。根据条件任务的任务调度机制,新一轮的循环迭代只有在前一次迭代结束后才会开始。因此,即使有空闲的工作线程可用,不同迭代中的任务也无法并行执行。如图13所示,塔任务在W2.L1和W4.L0中执行10次,这代表RigorousColumn_4和RigorousColumn_5的执行过程,且这些不同迭代的任务只能顺序执行而不能并行执行。这种情况不仅发生在循环子图的执行中,还发生在执行时间非常短的块外任务必须等待耗时的前序循环子图或精馏塔执行完成时。

图14中绘制的总执行运行时间显示,与单线程计算相比,PSPCF实现了35%~40%的运行时间加速。表2和表3比较了总执行运行时间和每个工作线程的负载率,表明当指定工作线程数量达到7个时,工作调度算法达到其容量极限,由于过程流程图的依赖结构,导致工作线程空闲,并引发显著的负载不平衡。

工作线程的平均负载率与生成的工作线程数量呈负相关,表明在不考虑过程依赖结构的情况下增加工作线程数量可能无法如预期地提高计算速度。实际上,存在一个最优的生成工作线程数量,可以最大化并行计算的效率。这个最优数量根据过程的具体依赖结构和计算机配置而变化。在这个特定案例中,确定的最优工作线程数量为三个。

需要注意的是,用于验证的过程流程图是在自主开发的过程模拟软件上建模的。虽然PSPCF是一个通用框架,旨在使基于序贯模块法的软件能够实现并行化,但本软件与其他商业平台之间在模拟时间上存在差异,因此无法直接对比评估PSPCF在不同模拟平台下并行化的效果。目前正在积极寻求在Aspen Plus等知名商业平台上验证PSPCF。然而,为验证目的改编其非开源代码是不可行的。

6 结论

本文介绍了一种用于化学过程模拟的分层任务图并行计算框架PSPCF。通过结合先进的任务图计算系统Taskflow,PSPCF在单元操作级别实现了模拟计算的并行化,并通过工作窃取方案提高了计算速度。它使用条件任务模型和可组合任务模型有效地解决了带有循环的过程的并行化问题。在两个化工过程上评估了PSPCF的性能,考虑了运行时间、负载平衡和层次机制。结果表明,过程计算速度有显著提高。更具体地说,对于复杂的裂解气过程,PSPCF实现了35%~40%的运行时间缩减。结果还强调,流程图依赖结构显著影响PSPCF的性能,高效并行计算的最优工作线程数量根据过程依赖关系和计算机配置而变化。

PSPCF是第一个支持使用TGCS进行并行计算的基于序贯模块法系统的通用计算框架,能够模拟任意拓扑结构的流程图。本研究通过将模拟问题转换为分层任务图,以使用现有的TGCS实现高效执行,为化学过程模拟提供了新的见解。现有过程建模工具的运行时框架可以在不付出太多成本的情况下替换为PSPCF,使这些工具能够通过基于序贯模块法的计算为基于联立方程法的模拟生成更高效的初始猜测值。得益于图构建的灵活性,PSPCF还有助于加速更高层次的过程计算,例如,使用启发式算法的流程图优化。对于优化任务,PSPCF可以复制优化涉及的特定过程部分,并构建并行优化任务图。

未来的一个关键方向是将AI模型集成到PSPCF中,以确定硬件配置和任务并行化程度对最优线程数量的影响。这种集成将使工作调度器能够自动确定并行过程执行的最佳工作线程数量。此外,为了最大化计算资源利用率,未来的研究将集中于开发可扩展到GPU和CPU的先进工作窃取调度算法,提高大型服务器平台上过程模拟的计算速度。

参考文献

[1]

Yang T, Yi X, Lu S, Johansson KH, Chai T. Intelligent manufacturing for the process industry driven by industrial artificial intelligence. Engineering 2021;7(9):1224‒30. . 10.1016/j.eng.2021.04.023

[2]

Mao S, Wang B, Tang Y, Qian F. Opportunities and challenges of artificial intelligence for green manufacturing in the process industry. Engineering 2019;5(6):995‒1002. . 10.1016/j.eng.2019.08.013

[3]

Ge W, Guo L, Li J. Toward greener and smarter process industries. Engineering 2017;3(2):152‒3. . 10.1016/j.eng.2017.02.010

[4]

Zhou J, Li P, Zhou Y, Wang B, Zang J, Meng L. Toward new generation intelligent manufacturing. Engineering 2018;4(1):11‒20. . 10.15302/J-SSCAE-2018.04.006

[5]

Qian F, Zhong W, Du W. Fundamental theories and key technologies for smart and optimal manufacturing in the process industry. Engineering 2017;3(2):154‒60. . 10.1016/j.eng.2017.02.011

[6]

Dowling AW, Biegler LT. A framework for efficient large scale equation oriented flowsheet optimization. Comput Chem Eng 2015;72:3‒20. . 10.1016/j.compchemeng.2014.05.013

[7]

Shacham M, Macchieto S, Stutzman LF, Babcock P. Equation oriented approach to process flowsheeting. Comput Chem Eng 1982;6(2):79‒95. . 10.1016/0098-1354(82)87001-4

[8]

Barton PI, Pantelides CC. Modeling of combined discrete/continuous processes. AIChE J 1994;40(6):966‒79. . 10.1002/aic.690400608

[9]

Biegler LT, Grossmann IE, Westerberg AW. Systematic methods for chemical process design. Old Tappan: Prentice Hall; 1997. . 10.2172/764690

[10]

Ortega JM, Voigt RG. Solution of partial differential equations on vector and parallel computers. SIAM Rev 1985;27(2):149‒240. . 10.1137/1.9781611971774.bm

[11]

Liu YC, Brosilow CB. Simulation of large scale dynamic systems—I. modular integration methods. Comput Chem Eng 1987;11(3):241‒53. . 10.1016/0098-1354(87)85006-8

[12]

Ma Y, Shao Z, Chen X, Biegler LT. A parallel function evaluation approach for solution to large-scale equation-oriented models. Comput Chem Eng 2016;93:309‒22. . 10.1016/j.compchemeng.2016.07.015

[13]

Weng J, Chen X, Biegler LT. A multi-thread parallel computation method for dynamic simulation of molecular weight distribution of multisite polymerization. Comput Chem Eng 2015;82:55‒67. . 10.1016/j.compchemeng.2015.05.027

[14]

Carrasco JC, Lima FV. Bilevel and parallel programing-based operability approaches for process intensification and modularity. AIChE J 2018;64(8):3042‒54. . 10.1002/aic.16113

[15]

Lu L, Xu J, Ge W, Yue Y, Liu X, Li J. EMMS-based discrete particle method (EMMS‒DPM) for simulation of gas‒solid flows. Chem Eng Sci 2014;120:67‒87. . 10.1016/j.ces.2014.08.004

[16]

Lyu H, Cui C, Zhang X, Sun J. Population-distributed stochastic optimization for distillation processes: implementation and distribution strategy. Chem Eng Res Des 2021;168:357‒68. . 10.1016/j.cherd.2021.02.023

[17]

Bimakr F, Baniadam M, Fathikalajahi J. Evaluation of performance of an industrial gas sweetening plant by application of sequential modular and simultaneous modular methods. Chem Biochem Eng Q 2008;22(4):411‒20.

[18]

Haydary J. Chemical process design and simulation: Aspen Plus and Aspen Hysys applications. Hoboken: John Wiley & Sons, Inc.; 2019. . 10.1002/9781119311478

[19]

Pantelides CC, Nauta M, Matzopoulos M, Grove H. Equation-oriented process modelling technology: recent advances & current perspectives. In: Proceedings of the 5th Annual TRC-Idemitsu Work; 2015 Feb 11‒12; Abu Dhabi, UAE; 2015.

[20]

Pantelides CC, Renfro JG. The online use of first-principles models in process operations: review, current status and future needs. Comput Chem Eng 2013;51:136‒48. . 10.1016/j.compchemeng.2012.07.008

[21]

Biegler LT. Nonlinear programming: concepts, algorithms, and applications to chemical processes. Philadelphia: Society for Industrial and Applied Mathematics; 2010. . 10.1137/1.9780898719383

[22]

Pattison RC, Baldea M. Equation-oriented flowsheet simulation and optimization using pseudo-transient models. AIChE J 2014;60(12):4104‒23. . 10.1002/aic.14567

[23]

Aldinucci M, Danelutto M, Kilpatrick P, Torquati M. Fastflow: high-level and efficient streaming on multi-core. In: Pllana S, Xhafa F, editors. Programming multi-core and many-core computing systems. Hoboken: John Wiley & Sons, Inc.; 2017. p. 261‒80. . 10.1002/9781119332015.ch13

[24]

Augonnet C, Thibault S, Namyst R, Wacrenier PA. STARPU: a unified platform for task scheduling on heterogeneous multicore architectures. In: Sips H, Epema D, Lin HX, editors. Euro-Par 2009—parallel processing. Berlin: Springer; 2009. p. 863‒74. . 10.1007/978-3-642-03869-3_80

[25]

Leijen D, Schulte W, Burckhardt S. The design of a task parallel library. ACM SIGPLAN Not 2009;44(10):227‒42. . 10.1145/1639949.1640106

[26]

Bauer M, Treichler S, Slaughter E, Aiken A. Legion: expressing locality and independence with logical regions. In: Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis; 2012 Nov 10‒16; Salt Lake City, UT, USA. Piscataway: IEEE; 2012. . 10.1109/SC.2012.71

[27]

Carter Edwards H, Trott CR, Sunderland D. Kokkos: enabling manycore performance portability through polymorphic memory access patterns. J Parallel Distrib Comput 2014;74(12):3202‒16. . 10.1016/j.jpdc.2014.07.003

[28]

Bosilca G, Bouteiller A, Danalis A, Faverge M, Herault T, Dongarra JJ. PaRSEC: exploiting heterogeneity to enhance scalability. Comput Sci Eng 2013;15(6):36‒45. . 10.1109/mcse.2013.98

[29]

Kaiser H, Heller T, Adelstein-Lelbach B, Serio A, Fey D. HPX: a task based programming model in a global address space. In: Proceedings of the 8th International Conference on Partitioned Global Address Space Programming Models; 2014 Oct 6‒10; Eugene, OR, USA. New York City: Association for Computing Machinery; 2014, p. 6. . 10.13140/2.1.2635.5204

[30]

Huang TW, Lin DL, Lin CX, Lin Y. Taskflow: a lightweight parallel and heterogeneous task graph computing system. IEEE Trans Parallel Distrib Syst 2022;33(6):1303‒20. . 10.1109/TPDS.2021.3104255

[31]

Motard RL, Shacham M, Rosen EM. Steady state chemical process simulation. AIChE J 1975;21(3):417‒36. . 10.1002/AIC.690210302

[32]

Westerberg AW, Piela PC. Equational-based process modeling. 1994.

[33]

Li H, Gao B, Chen Z, Zhao Y, Huang P, Ye H, et al. A learnable parallel processing architecture towards unity of memory and computing. Sci Rep 2015;5(1):13330. . 10.1038/srep13330

[34]

Pierucci SJ, Ranzi EM, Biardi GE. Solution of recycle problems in a sequential modular approach. AIChE J 1982;28(5):820‒7. . 10.1002/aic.690280518

[35]

Cho KW, Yeo YK, Kim MK. Application of partitioning and tearing techniques to sulfolane extraction plant. Korean J Chem Eng 1999;16(4):462‒9. . 10.1007/BF02698269

[36]

Varma GV, Lau KH, Ulrichson DL. A new tearing algorithm for process f lowsheeting. Comput Chem Eng 1993;17(4):355‒60. . 10.1016/0098-1354(93)80026-j

[37]

Kisala TP, Trevino-Lozano RA, Boston JF, Britt HI, Evans LB. Sequential modular and simultaneous modular strategies for process flowsheet optimization. Comput Chem Eng 1987;11(6):567‒79. . 10.1016/0098-1354(87)87003-5

[38]

Blumofe RD, Leiserson CE. Scheduling multithreaded computations by work stealing. J Assoc Comput Mach 1999;46(5):720‒48. . 10.1145/324133.324234

[39]

Tardieu O, Wang H, Lin H. A work-stealing scheduler for X10’s task parallelism with suspension. ACM SIGPLAN Not 2012;47(8):267‒76. . 10.1145/2370036.2145850

[40]

Acar UA, Charguéraud A, Rainey M. Scheduling parallel programs by work stealing with private deques. In: Proceedings of the 18th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming; 2013 Feb 23‒27; Shenzhen, China. New York City: Association for Computing Machinery; 2013. p. 219‒28. . 10.1145/2442516.2442538

[41]

Muller SK, Acar UA. Latency-hiding work stealing: scheduling interacting parallel computations with work stealing. In: Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures; 2016 Jul 11‒13; GrovePacific, CA, USA. New York City: Association for Computing Machinery; 2016. p. 71‒82. . 10.1145/2935764.2935793

[42]

Cera GD. Parallel dynamic process simulation of a distillation column on the BBN butterfly parallel processor computer. Comput Chem Eng 1989;13(7):737‒52. . 10.1016/0098-1354(89)85048-3

AI Summary AI Mindmap
PDF (2731KB)

Supplementary files

Supplementary data

8108

访问

0

被引

详细

导航
相关文章

AI思维导图

/

〈 〉