首页 理论教育 如何设计高效的并行方法?

如何设计高效的并行方法?

时间:2023-06-26 理论教育 版权反馈
【摘要】:本章所提出的并行机会约束动态规划方法同样以单个时段内所有变量组合在递推公式中的运算作为父任务,通过Fork/Join框架实现算法的并行化。创建线程池,并根据初始化的变量离散个数以及计算机配置的逻辑线程数确定阈值。利用爬山法和递推公式计算各变量组合的全时期期望发电量。图10.3PCCDP算法求解过程图第六步:判断j=1是否满足。,1}对径流系列进行模拟调度,并把模拟结果记录在结果集中,并进入下一步。

如何设计高效的并行方法?

本章所提出的并行机会约束动态规划(PCCDP)方法同样以单个时段内所有变量组合(St,Qt,Nt)在递推公式中的运算作为父任务,通过Fork/Join框架实现算法的并行化。PCCDP算法计算步骤具体如下。

第一步:数据准备。读取计算相关的静态数据,包括电站基础属性、特征曲线以及约束条件等,并将其储存在主线程中,用于各内核共同调用。

第二步:参数初始化,并创建线程池以及确定阈值。初始化参数主要包括计算参数γ、λ、μ、φ、η、δ以及ε等,变量离散个数L、G和C,以及其他计算条件。创建线程池,并根据初始化的变量离散个数以及计算机配置的逻辑线程数确定阈值。

第三步:设置初始迭代周期j=1,初始计算时段t=T。

第四步:并行求解本时段利用Fork/Join并行框架并行计算本时段变量组合(St,Qt,Nt)在余留效益函数中的返回值,采用爬山法推求出各个离散水位状态下的最优决策出力。并行步骤如下:

(1)当前时段变量组合(St,Qt,Nt)在递推公式(10.4)中的运算作为父任务。

(2)划分子任务。按照变量组合任务(St,Qt)分配,即在同一变量组合(St,Qt)条件下所有离散的Nt划分在一个子任务里,便于后续采用爬山法搜索最优决策出力。另外,为了确保各线程之间的计算不会出现数据相关,需保证各线程之间的计算数据相互独立。计算数据主要包括静态数据与动态数据:静态数据不会造成子线程之间数据相关,可直接从主线程中读取调用;动态数据包括电站的计算水位、出力以及各状态组合的期望发电量结果集等,则需在各个线程中单独定义。

(3)子线程同时计算各自分配的子任务。利用爬山法和递推公式(10.4)计算各变量组合的全时期期望发电量。(www.xing528.com)

(4)各子线程返回值储存在自身结果集中,当工作线程完成所有子任务的计算,关闭工作线程。合并子任务的结果集,确定各离散水位状态下的最优决策出力以及余留效益值,返回主线程。

第五步:判断t=1是否满足。若不满足,则设置t=t-1,返回第四步;否则,进入下一步。

图10.3 PCCDP算法求解过程图

第六步:判断j=1是否满足。若满足,则设置t=T以及j=j+1,返回第四步;否则,进入下一步。

第七步:判断相邻周期的优化调度策略是否相同。若不相同,则设置t=T以及j=j+1,返回第四步;否则,利用T,T-1,…,1}对径流系列进行模拟调度,并把模拟结果记录在结果集中,并进入下一步。

第八步:判断模拟调度结果是否满足更新策略终止条件。若不满足,则更新计算参数λ和μ,返回第三步;否则,根据结果集中的模拟结果和优选准则,选取最优调度规则。

PCCDP算法求解过程见图10.3。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈