CN107015852A - 一种大规模梯级水电站群多核并行优化调度方法 - Google Patents
一种大规模梯级水电站群多核并行优化调度方法 Download PDFInfo
- Publication number
- CN107015852A CN107015852A CN201610457045.0A CN201610457045A CN107015852A CN 107015852 A CN107015852 A CN 107015852A CN 201610457045 A CN201610457045 A CN 201610457045A CN 107015852 A CN107015852 A CN 107015852A
- Authority
- CN
- China
- Prior art keywords
- particle
- scale
- subtask
- population
- parallel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
- G06Q50/06—Electricity, gas or water supply
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
Abstract
本发明公开了一种大规模梯级水电站群多核并行优化调度方法,划分子种群:从主线程中获取初始种群的计算规模作为父任务规模,采用Fork/Join并行框架的通用的阈值计算公式将父任务划分为不少于1个规模更小的子任务,且每次递归分解将父任务规模对半划分为2个规模相同的子任务,直至子任务规模小于或等于阈值,停止分解;子线程同时计算各自分配的子任务:每个分配到子线程的子任务的种群规模相同,并且设置相同计算参数的自适应混合粒子群算法计算各子任务的最优解;输出最优解:当各子线程完成所有子任务的计算,合并所有子任务的最优解并筛选出全局最优解,返回主线程。本发明实现方法的并行化,提高求解效率,减少线程闲置时间,提高线程利用率。
Description
技术领域
本发明涉及水电技术领域,具体是一种大规模梯级水电站群多核并行优化调度方法。
背景技术
随着我国西南地区乌江、澜沧江、红水河、金沙江等特大干流梯级水电站群的出现,这类大规模水电系统优化调度方法研究变得尤为重要。这类梯级水电站群突出的显著特点是电站级数非常多,比如,乌江流域规划11座电站,已建9座;澜沧江规划15级电站,已建6座;红水河规划10级电站,已建9座;金沙江中下游规划12级电站,已建6座。水电站群电站级数多意味着梯级水电站之间的水力和电力联系变得愈加复杂,增加了问题的约束条件数目,对于部分求解方法而言,其计算量随电站及约束数目会呈指数增长,进一步加剧了水电系统优化问题求解难度,如何保证系统求解已成为大规模水电系统面临的核心问题之一。以往常用的非线性规划、动态规划等经典方法,在求解大规模水电系统优化问题时,存在无法避免的缺陷,建模求解非常困难,比如,非线性规划方法难以对模型约束或目标函数简化,即使采用一些线性化方法简化也易于使问题偏离实际;动态规划方法受求解规模限制,大规模问题易导致维数灾问题,造成求解困难甚至因内存不足而无法计算。为了使在有限时间内求解大规模水电站群优化调度问题成为可能,并同时保证优化结果的质量,需要探索新的合理有效的求解算法。随着90年代计算机技术的发展,为粒子群算法、遗传算法、模拟退火方法、混沌算法等启发式智能算法的兴起提供了有利条件。这些智能算法在求解优化问题时,并不依赖于问题本身的性质和特点,在一定条件下证明可收敛到全局最优,且具有鲁棒性强、收敛速度快、寻优机制简单等优点,在求解优化问题中被广泛应用。但是,单一的智能算法在应用时仍然存在一定的缺陷,如粒子群算法存在早熟收敛、容易陷入局部最优、停滞等,遗传算法求解容易早熟且局部搜索能力差等。因此,根据不同智能算法的优缺点,通过多种智能算法之间的相互结合,改进单一算法的缺陷,是大规模水电系统优化问题新的求解途径。
目前,学者们对混合智能算法的研究取得了丰硕的成果。但是,群体算法的求解精度与计算规模存在一定竞争关系,即种群规模或迭代次数越大,在解空间搜索到全局优化解的概率越大,求解精度越高,但是同时也意味着计算耗时越多,求解效率越低,尤其是应用于我国当前大规模梯级水电站群优化调度时,求解效率下降非常显著。另外,随着电网和水电公司的精细化调度需求越来越高,提高求解效率已不容忽视。因此,如何在保证结果质量的前提下,进一步提高算法求解效率,是适应水电快速发展必须解决的实质性问题。
并行计算一直是计算机科学领域的研究热点。基于多核处理器的多核并行技术以其并行实现容易、运行环境稳定、成本低廉等独特的优势被广泛应用于实际工程,对于水电系统而言,寻求优化调度问题、求解算法与并行技术之间的切入点,设计合适粗细粒度的并行优化方式将是一种提高系统求解效率的可行途径。目前,在梯级水电站群优化调度领域并行优化方法的研究成果中,方法并行化方式主要分为粗粒度和细粒度,而且成果普遍利用了已成熟的OpenMP、MPI或.NET等能够有效兼容Fortran、C++、C#等语言的并行模式或框架,为Fortran、C++、C#等语言开发的串行方法并行化提供了便利。但是这些框架并不能有效适应Java语言开发的串行方法,难以应用于Java编码的程序并行化开发和改造。因此,实现串行方法并行化,选择合适的并行模式或框架非常重要,不仅需要考虑编程语言的支持类型、并行任务的应用性以及平台兼容性等因素,而且开发人员对不同编程语言的熟悉程度也对并行框架的选择有重要影响。
Fork/Join并行框架是一种基于Java源码开发的多核并行框架,并已作为标准程序集成到Java版本7的并发程序包中,能够最大效率地简化开发人员的编程工作,便于Java编码开发的串行方法并行化改造。因此,申请人以Java语言为基础开发语言,将一种自适应混合粒子群算法和Fork/Join多核并行框架耦合,发明了一种基于Fork/Join多核并行框架的大规模梯级水电站群粗粒度多核并行优化调度方法。
发明内容
本发明的目的在于提供一种大规模梯级水电站群多核并行优化调度方法,以解决如何将Fork/Join多核并行框架与一种自适应混合粒子群算法耦合,从而实现方法的并行化,提高求解效率,并为其他智能算法的并行化提供参考和借鉴。
为实现上述目的,本发明提供如下技术方案:
一种大规模梯级水电站群多核并行优化调度方法,包括以下步骤:
1)划分子种群:从主线程中获取初始种群的计算规模作为父任务规模,采用Fork/Join并行框架的通用的阈值计算公式将父任务划分为不少于1个规模更小的子任务,且每次递归分解将父任务规模对半划分为2个规模相同的子任务,直至子任务规模小于或等于阈值,停止分解;
2)子线程同时计算各自分配的子任务:每个分配到子线程的子任务的种群规模相同,并且设置相同计算参数的自适应混合粒子群算法计算各子任务的最优解;
3)输出最优解:当各子线程完成所有子任务的计算,合并所有子任务的最优解并筛选出全局最优解,返回主线程;
其中自适应混合粒子群算法求解过程,包括以下步骤:
Step 1算法参数初始化:设定种群规模m、混沌序列个数d、种群最大迭代次数Kmax、飞行加速度c1,c2、惯性因子w、常量e、常量s、粒子能量上限eIni、粒子能量下限eFin以及粒子相似度上限sIni和粒子相似度下限sFin;
Step 2种群初始化:根据Logistic映射公式,在各时段水位允许范围内,随机初始化粒子种群个体位置(zi1,zi2,...,zin)以及粒子飞行速度(Vi1,Vi2,...,Vin);其中,粒子位置元素为水位,飞行速度元素为水位涨落速度;
Step 3计算粒子适应度、粒子个体最优解以及种群全局最优解:粒子适应度与其个体最优解比较,若粒子适应度比其个体最优解更优,则当前粒子位置作为个体最优位置;粒子适应度与种群全局最优解比较,若粒子适应度比种群全局最优解更优,则当前粒子位置作为种群全局最优位置;
Step 4计算粒子能量以及粒子能量阈值:若粒子能量低于当前粒子能量阈值,对粒子当前位置与速度执行变异操作;
Step 5计算粒子相似度以及粒子相似度阈值:若两相邻粒子相似度小于当前粒子相似度阈值,则对较差粒子的历史最优位置执行变异操作;
Step 6引入基于邻域的贪心随机搜索策略对粒子的个体最优位置进行更新,若在邻域搜索到的当前位置比搜索前粒子适应度更大,则代替搜索前粒子个体位置,再用搜索后粒子个体位置与粒子历史最优位置以及种群全局最优位置作比较,更新粒子历史最优位置以及种群最优位置;
Step 7更新粒子种群;
Step 8判断迭代是否结束:若当前迭代次数小于最大迭代次数,返回Step 3;否则退出迭代,输出结果;
Fork/Join并行框架采用分治法技术,通过递归分割原问题,形成不少于1个规模更小、相互独立且可并行计算的子任务;当各子任务进行独立并行计算后,组合各子任务的子结果即能输出原问题的最终结果,其中Fork/Join并行框架的线程池:当程序开始执行时,默认创建与可用的处理器数目相同的活动线程数;在分治法执行过程中,定义了一个可自由设置的控制子任务规模大小的阈值作为子任务规模的上限值,即当子任务规模小于或等于阈值时,分治法执行结束,各子任务被平均分配到不同线程中开始并行计算;在子任务并行计算过程中,Fork/Join采用双端队列排序模式,并采用了工作窃取算法,即当一个线程的队列计算任务为空时,将从其它处于工作状态的线程队列尾部窃取计算任务。
作为本发明进一步的方案:Fork/Join并行框架的接口类以及实现类封装在Java.util.concurrent中。
作为本发明进一步的方案:自适应混合粒子群算法实现的代码类需继承Fork/Join并行框架的应用接口类java.util.concurrent.RecursiveAction或者java.util.concurrent.RecursiveTask。
作为本发明进一步的方案:Fork/Join并行框架的通用的阈值设置公式如下:
式中:为计算结果取上整数;μ为规模控制阈值;Sc为原问题规模;w为多核处理器逻辑线程数。
与现有技术相比,本发明的有益效果是:
本发明以Java语言为基础开发语言,将一种自适应混合粒子群算法和Fork/Join多核并行框架耦合,发明了一种基于Fork/Join多核并行框架的大规模梯级水电站群粗粒度多核并行优化调度方法。解决如何将Fork/Join多核并行框架与一种自适应混合粒子群算法耦合,从而实现方法的并行化,提高求解效率,并为其他智能算法的并行化提供参考和借鉴。本发明能够有效提高线程利用率;Fork/Join是一种基于内存共享的并行框架,实现了内核中缓存共享,而且Fork/Join具有独特的队列设计,其窃取算法能够有效减少物理缓存的占用和争夺,减少线程闲置时间,提高线程利用率。
附图说明
图1是自适应混合粒子群算法流程图;
图2是分治法示意图;
图3是阈值控制方式示意图;
图4是工作窃取算法示意图;
图5是Fork/Join伪代码示意图;
图6是PAHPSO方法并行设计框架示意图;
图7是水库群拓扑结构图。
具体实施方式
下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例中,一种大规模梯级水电站群多核并行优化调度方法的具体实施过程如下所述。
一、梯级水电站群优化调度模型
(1)目标函数
以梯级水库群总发电量最大模型为例。该模型可描述为:在已知调度期内各电站入库流量过程条件下,考虑水量平衡、蓄水量、泄量、出力等各种约束,兼顾防洪、灌溉、航运等综合要求,制定最优调度决策过程,使调度期内水库群发电量最大。目标函数数学表达式如下:
式中:E为水电站群总发电量(亿kW.h);N为电站数目;i为电站序号;T为时段数;t为时段序号;为水电站i第t时段的平均出力;Δt为第t时段的小时数。
(2)约束条件
水量平衡约束:
水库蓄水量约束:
发电流量约束:
出库流量约束:
出力约束:
末水位约束:
水电系统总出力约束:
式中:为水电站i第t时段初水库蓄水量(m3);为水电站i第t时段入库流量(m3/s);为水电站i第t时段出库流量(m3/s);为水电站i第t时段区间流量(m3/s);Ki为水电站i的上游电站数;k为上游电站序号;为水电站i第t时段的上游水库k的出库流量(m3/s);为水电站i第t时段的发电流量(m3/s);为水电站i第t时段的弃水流量(m3/s);分别为水电站i第t时段水库蓄水量上下限(m3); 分别为水电站i第t时段发电流量上下限(m3/s);分别为水电站i第t时段出库流量上下限(m3/s);分别为水电站i第t时段出力上下限(MW);分别为水电站i的初始时刻和T时刻的蓄水状态;SBi、SEi分别为水电站i指定的初始蓄水状态和末时段预期的蓄水状态;分别为水电系统第t时段总出力上下限(MW)。
二、自适应混合粒子群算法(AHPSO)求解流程
Step 1算法参数初始化。设定种群规模m、混沌序列个数d、种群最大迭代次数Kmax、飞行加速度c1,c2、惯性因子w、常量e、常量s、粒子能量上限eIni、粒子能量下限eFin以及粒子相似度上限sIni和粒子相似度下限sFin。
Step 2种群初始化。根据Logistic映射公式,在各时段水位允许范围内,随机初始化粒子种群个体位置(zi1,zi2,...,zin)以及粒子飞行速度(Vi1,Vin,...,Vin)。其中,粒子位置元素为水位,飞行速度元素为水位涨落速度。
Step 3计算粒子适应度、粒子个体最优解以及种群全局最优解。粒子适应度与其个体最优解比较,若粒子适应度比其个体最优解更优,则当前粒子位置作为个体最优位置;粒子适应度与种群全局最优解比较,若粒子适应度比种群全局最优解更优,则当前粒子位置作为种群全局最优位置。
Step 4计算粒子能量以及粒子能量阈值。若粒子能量低于当前粒子能量阈值,对粒子当前位置与速度执行变异操作。
Step 5计算粒子相似度以及粒子相似度阈值。若两相邻粒子相似度小于当前粒子相似度阈值,则对较差粒子的历史最优位置执行变异操作。
Step 6引入基于邻域的贪心随机搜索策略对粒子的个体最优位置进行更新。若在邻域搜索到的当前位置比搜索前粒子适应度更大,则代替搜索前粒子个体位置,再用搜索后粒子个体位置与粒子历史最优位置以及种群全局最优位置作比较,更新粒子历史最优位置以及种群最优位置。
Step 7更新粒子种群。
Step 8判断迭代是否结束。若当前迭代次数小于最大迭代次数,返回Step 3;否则退出迭代,输出结果。
算法流程如附图1所示。
三、Fork/Join并行框架
(1)基本原理及核心
Fork/Join并行框架的核心继承了分治法的特性,通过递归分割原问题,形成若干个规模更小、相互独立且可并行计算的子任务。当各子任务进行独立并行计算后,组合各子任务的子结果即可输出原问题的最终结果,附图2为分治法流程框架图。Fork/Join并行框架设计了独特的线程池技术,当程序开始执行时,默认创建与可用的处理器数目相同的活动线程数,便于线程的维护和管理,减小了系统资源消耗,尤其适合在单机多核配置上部署多线程程序。在分治法执行过程中,定义了一个可自由设置的控制子任务规模大小的阈值作为子任务规模的上限值,即当子任务规模小于或等于阈值时,分治法执行结束,各子任务被平均分配到不同线程中开始并行计算,附图3为阈值控制模式下的子任务分割框架图。另外,在子任务并行计算过程中,Fork/Join设计了独特的双端队列排序模式,并采用了工作窃取算法,即当一个线程的队列计算任务为空时,将从其它处于工作状态的线程队列尾部窃取计算任务,避免了线程处于闲置状态,提高线程的利用效率,附图4为工作窃取算法示意图。
(2)实现方法
Fork/Join并行框架的接口类以及实现类封装在Java.util.concurrent中。虽然Fork/Join的并行效率与其他并行框架相比较并非最优,但其最大优点在于给开发人员提供了非常简便的应用程序实现接口。开发人员不再需要处理各种并行相关事务,例如同步、通信等,同时可避免难以调试的死锁和数据争用等错误,只需按照给定接口的实现方式,编写很少的程序即可完成算法与框架接口的对接,极大地简化了编写并发程序的琐碎工作,可大量节省开发人员的工作量,提高工作效率,Fork/Join伪代码示意图见附图5。对于开发人员而言,应用Fork/Join并行框架实现算法并行化计算主要需关注以下4个问题。
1)算法实现的代码类需继承Fork/Join应用接口类java.util.concurrent.RecursiveAction或者java.util.concurrent.RecursiveTask。
2)选择合适的阈值划分任务。根据附图3中的实例,阈值的大小直接影响子任务的分割数目。当阈值设置偏小,意味着子任务的规模更小且分割数量更多,易造成资源管理消耗过大;当阈值设置偏大,意味着子任务的规模更大且分割数量更少,甚至当子任务数量小于工作线程数时,易导致部分工作线程处于闲置状态。因此,为了保证所有工作线程均能分配到子任务,通用的阈值设置公式如下:
式中:为计算结果取上整数;μ为规模控制阈值;Sc为原问题规模;w为多核处理器逻辑线程数(具有“超线程”技术的处理器可在1个内核中模拟2个逻辑线程)。另外,框架应用接口类提供了划分子任务的方法接口,因此,开发人员只需提供合适的阈值实现提供的接口,至于程序如何实现任务划分以及线程分配,开发人员不需要关心。
3)实现Fork/Join接口类的void compute()方法。该方法接口主要实现各子任务的计算,即将算法可并行化部分的代码程序写入该方法接口。
4)设置任务划分方式。每次任务划分可将父任务划分为多个子任务,而划分的子任务个数由开发人员编写代码实现。一般来说,采用对半分解父任务的方式有利于硬件实现负载均衡。
四、并行自适应混合粒子群算法(PAHPSO)实现方式
AHPSO方法的初始种群由不同的个体粒子组成,粒子的个数即为种群的计算规模。由于每个粒子代表解空间的一个候选解,采用划分初始种群为多个规模更小子种群的粗粒度并行设计,并不影响每个粒子在其子种群中的搜索寻优。因此,子种群之间的优化搜索是相互独立的,具有天然的并行性。附图6为PAHPSO方法并行设计框架示意图,其并行步骤主要如下:
1)划分子种群。从主线程中获取初始种群的计算规模作为父任务规模,采用Fork/Join阈值计算公式(9)将父任务划分为多个规模更小的子任务,且每次递归分解将父任务规模对半划分为2个规模相同的子任务,直至子任务规模小于或等于阈值,停止分解。
2)子线程同时计算各自分配的子任务。每个分配到子线程的子任务的种群规模相同,并且设置相同计算参数的AHPSO方法计算各子任务的最优解。
3)输出最优解。当各子线程完成所有子任务的计算,合并所有子任务的最优解并筛选出全局最优解,返回主线程。
(1)基础信息
为了验证PAHPSO方法的并行效率,采用澜沧江下游梯级水库群年发电量最大模型(见《具体实施方式》)作为计算实例。梯级自上游而下分别为小湾(多年调节)、漫湾(季调节)、大朝山(年调节)、糯扎渡(多年调节)和景洪(季调节)水库,水库群梯级拓扑结构见附图7。用于测试的计算机CPU配置为Intel Xeon E31245@3.30GHz(4核),测试状态分别设置“超线程”开启和关闭状态进行对比分析。
(2)并行性能指标
加速比Sp和效率Ep是衡量并行算法性能的两个常用指标,其数学表达式分别如下所示:
Sp=T1/Tp (1)
Ep=Sp/p (2)
式中:T1表示串行环境下算法执行时间,s;Tp表示p个内核环境下算法执行时间,s。
(3)测试方案
由于PAHPSO方法采用种群分解的粗粒度并行设计模式,为了测试不同种群规模条件下算法的并行性能,设置四组种群规模大小不同的方案进行仿真测试。各方案种群规模大小设置见表1。
表1 四组仿真方案种群规模大小
(4)并行结果
表2为PAHPSO方法在不同并行核数、超线程启闭状态下的并行结果。从表中可以看到,方法的计算时间随着核数的增加大幅缩减,并行效果非常明显。
对于同一方案,算法在不同并行环境下的并行性能有所不同。以方案一计算结果为例,随着并行核数增加,在1核、2核、4核环境下的加速比分别为1、1.98、3.84,计算加速比逐渐提高。而且在相同核环境下,在“超线程”开启状态下获得了更佳的加速效果,主要是因为“超线程”技术能够在1个核心上模拟出2个逻辑线程,减少硬件CPU的闲置时间,更好地发挥了CPU的计算效率。但是随着并行核数增加,在“超线程”启闭相同环境下,1核、2核、4核且“超线程”开启状态下的效率分别为100%、99%、96%,呈逐渐下降趋势,主要原因是并行核数越多,则执行线程数越多,资源管理消耗、线程间通信时间、内存占用等因素也相应提高,直接影响了并行效率的下降。
对于不同方案,算法的种群规模越大,并行性能的优势愈加明显。四组仿真方案在4核“超线程”开启状态下的缩减时间分别为486.6s、926.3s、1381.0s以及1787.2s,并行效果非常明显。在相同的并行环境下,以4核“超线程”开启为例,随着种群规模增大,计算加速比、效率逐渐增加,且计算加速比越接近理想加速比。主要原因是计算任务规模越大,线程处于闲置状态的时间越少,线程利用率更加充分。另外,方案三和方案四在2核环境“超线程”开启状态下的计算加速比大于理想加速比,发生“超线性”加速比现象,主要原因有两点:1)“超线程”技术能够有效提高线程利用率;2)Fork/Join是一种基于内存共享的并行框架,实现了内核中缓存共享,而且Fork/Join具有独特的队列设计,其窃取算法能够有效减少物理缓存的占用和争夺,减少线程闲置时间,提高线程利用率。
表2 PAHPSO算法测试结果
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (4)
1.一种大规模梯级水电站群多核并行优化调度方法,其特征在于,包括以下步骤:
1)划分子种群:从主线程中获取初始种群的计算规模作为父任务规模,采用Fork/Join并行框架的通用的阈值计算公式将父任务划分为不少于1个规模更小的子任务,且每次递归分解将父任务规模对半划分为2个规模相同的子任务,直至子任务规模小于或等于阈值,停止分解;
2)子线程同时计算各自分配的子任务:每个分配到子线程的子任务的种群规模相同,并且设置相同计算参数的自适应混合粒子群算法计算各子任务的最优解;
3)输出最优解:当各子线程完成所有子任务的计算,合并所有子任务的最优解并筛选出全局最优解,返回主线程;
其中自适应混合粒子群算法求解过程,包括以下步骤:
Step 1算法参数初始化:设定种群规模m、混沌序列个数d、种群最大迭代次数Kmax、飞行加速度c1,c2、惯性因子w、常量e、常量s、粒子能量上限eIni、粒子能量下限eFin以及粒子相似度上限sIni和粒子相似度下限sFin;
Step 2种群初始化:根据Logistic映射公式,在各时段水位允许范围内,随机初始化粒子种群个体位置(zi1,zi2,...,zin)以及粒子飞行速度(Vi1,Vi2,...,Vin);其中,粒子位置元素为水位,飞行速度元素为水位涨落速度;
Step 3计算粒子适应度、粒子个体最优解以及种群全局最优解:粒子适应度与其个体最优解比较,若粒子适应度比其个体最优解更优,则当前粒子位置作为个体最优位置;粒子适应度与种群全局最优解比较,若粒子适应度比种群全局最优解更优,则当前粒子位置作为种群全局最优位置;
Step 4计算粒子能量以及粒子能量阈值:若粒子能量低于当前粒子能量阈值,对粒子当前位置与速度执行变异操作;
Step 5计算粒子相似度以及粒子相似度阈值:若两相邻粒子相似度小于当前粒子相似度阈值,则对较差粒子的历史最优位置执行变异操作;
Step 6引入基于邻域的贪心随机搜索策略对粒子的个体最优位置进行更新,若在邻域搜索到的当前位置比搜索前粒子适应度更大,则代替搜索前粒子个体位置,再用搜索后粒子个体位置与粒子历史最优位置以及种群全局最优位置作比较,更新粒子历史最优位置以及种群最优位置;
Step 7更新粒子种群;
Step 8判断迭代是否结束:若当前迭代次数小于最大迭代次数,返回Step 3;否则退出迭代,输出结果;
Fork/Join并行框架采用分治法技术,通过递归分割原问题,形成不少于1个规模更小、相互独立且可并行计算的子任务;当各子任务进行独立并行计算后,组合各子任务的子结果即能输出原问题的最终结果,其中Fork/Join并行框架的线程池:当程序开始执行时,默认创建与可用的处理器数目相同的活动线程数;在分治法执行过程中,定义了一个可自由设置的控制子任务规模大小的阈值作为子任务规模的上限值,即当子任务规模小于或等于阈值时,分治法执行结束,各子任务被平均分配到不同线程中开始并行计算;在子任务并行计算过程中,Fork/Join采用双端队列排序模式,并采用了工作窃取算法,即当一个线程的队列计算任务为空时,将从其它处于工作状态的线程队列尾部窃取计算任务。
2.根据权利要求1所述的大规模梯级水电站群多核并行优化调度方法,其特征在于,Fork/Join并行框架的接口类以及实现类封装在Java.util.concurrent中。
3.根据权利要求1所述的大规模梯级水电站群多核并行优化调度方法,其特征在于,自适应混合粒子群算法实现的代码类需继承Fork/Join并行框架的应用接口类java.util.concurrent.RecursiveAction或者java.util.concurrent.RecursiveTask。
4.根据权利要求1所述的大规模梯级水电站群多核并行优化调度方法,其特征在于,Fork/Join并行框架的通用的阈值设置公式如下:
式中:为计算结果取上整数;μ为规模控制阈值;Sc为原问题规模;w为多核处理器逻辑线程数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610457045.0A CN107015852A (zh) | 2016-06-15 | 2016-06-15 | 一种大规模梯级水电站群多核并行优化调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610457045.0A CN107015852A (zh) | 2016-06-15 | 2016-06-15 | 一种大规模梯级水电站群多核并行优化调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107015852A true CN107015852A (zh) | 2017-08-04 |
Family
ID=59439030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610457045.0A Pending CN107015852A (zh) | 2016-06-15 | 2016-06-15 | 一种大规模梯级水电站群多核并行优化调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107015852A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108244A (zh) * | 2017-12-15 | 2018-06-01 | 中南大学 | 一种边坡强度折减系数多线程并行计算方法 |
CN108363622A (zh) * | 2018-01-29 | 2018-08-03 | 哈尔滨工程大学 | 一种基于多核dsp运算的无源时差定位算法的实现方法 |
CN108536645A (zh) * | 2018-04-04 | 2018-09-14 | 北京科东电力控制系统有限责任公司 | 用于电力市场交易业务的内核并行计算方法及装置 |
CN108564213A (zh) * | 2018-04-10 | 2018-09-21 | 中国水利水电科学研究院 | 一种基于gpu加速的并联水库群防洪优化调度方法 |
CN108932172A (zh) * | 2018-06-27 | 2018-12-04 | 西安交通大学 | 一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法 |
CN109214726A (zh) * | 2018-11-27 | 2019-01-15 | 中国水利水电科学研究院 | 多水库水量调度方法、终端、存储介质及异构计算系统 |
CN110174843A (zh) * | 2019-05-30 | 2019-08-27 | 中国水利水电科学研究院 | 一种灌区用水智能调控方法 |
CN112799799A (zh) * | 2020-12-29 | 2021-05-14 | 杭州涂鸦信息技术有限公司 | 数据消费方法及装置 |
CN112949154A (zh) * | 2021-03-19 | 2021-06-11 | 上海交通大学 | 并行异步粒子群优化方法、系统及电子设备 |
CN113391887A (zh) * | 2020-03-11 | 2021-09-14 | 北京国电智深控制技术有限公司 | 一种处理工业数据的方法及系统 |
CN113672235A (zh) * | 2021-08-25 | 2021-11-19 | 中国人民解放军国防科技大学 | 射线水声传播模型的多核并行方法 |
CN117830489A (zh) * | 2024-03-05 | 2024-04-05 | 浙江小牛哥科技有限公司 | 智能室内设计图像渲染系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729803A (zh) * | 2013-12-25 | 2014-04-16 | 大连理工大学 | 利用cfs集合预报产品的水电站中期滚动调度方法 |
CN103886344A (zh) * | 2014-04-14 | 2014-06-25 | 西安科技大学 | 一种图像型火灾火焰识别方法 |
CN103971174A (zh) * | 2014-05-06 | 2014-08-06 | 大连理工大学 | 基于改进量子粒子群算法的水电站群优化调度方法 |
-
2016
- 2016-06-15 CN CN201610457045.0A patent/CN107015852A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729803A (zh) * | 2013-12-25 | 2014-04-16 | 大连理工大学 | 利用cfs集合预报产品的水电站中期滚动调度方法 |
CN103886344A (zh) * | 2014-04-14 | 2014-06-25 | 西安科技大学 | 一种图像型火灾火焰识别方法 |
CN103971174A (zh) * | 2014-05-06 | 2014-08-06 | 大连理工大学 | 基于改进量子粒子群算法的水电站群优化调度方法 |
Non-Patent Citations (1)
Title |
---|
王森: ""梯级水电站群长期优化调度混合智能算法及并行方法研究"", 《中国优秀博士学位论文全文数据库工程科技Ⅱ辑》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108244B (zh) * | 2017-12-15 | 2021-09-28 | 中南大学 | 一种边坡强度折减系数多线程并行计算方法 |
CN108108244A (zh) * | 2017-12-15 | 2018-06-01 | 中南大学 | 一种边坡强度折减系数多线程并行计算方法 |
CN108363622A (zh) * | 2018-01-29 | 2018-08-03 | 哈尔滨工程大学 | 一种基于多核dsp运算的无源时差定位算法的实现方法 |
CN108363622B (zh) * | 2018-01-29 | 2022-03-18 | 哈尔滨工程大学 | 一种基于多核dsp运算的无源时差定位算法的实现方法 |
CN108536645A (zh) * | 2018-04-04 | 2018-09-14 | 北京科东电力控制系统有限责任公司 | 用于电力市场交易业务的内核并行计算方法及装置 |
CN108536645B (zh) * | 2018-04-04 | 2021-10-01 | 北京科东电力控制系统有限责任公司 | 用于电力市场交易业务的内核并行计算方法及装置 |
CN108564213A (zh) * | 2018-04-10 | 2018-09-21 | 中国水利水电科学研究院 | 一种基于gpu加速的并联水库群防洪优化调度方法 |
CN108564213B (zh) * | 2018-04-10 | 2022-05-13 | 中国水利水电科学研究院 | 一种基于gpu加速的并联水库群防洪优化调度方法 |
CN108932172A (zh) * | 2018-06-27 | 2018-12-04 | 西安交通大学 | 一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法 |
CN108932172B (zh) * | 2018-06-27 | 2021-01-19 | 西安交通大学 | 一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法 |
CN109214726A (zh) * | 2018-11-27 | 2019-01-15 | 中国水利水电科学研究院 | 多水库水量调度方法、终端、存储介质及异构计算系统 |
CN110174843A (zh) * | 2019-05-30 | 2019-08-27 | 中国水利水电科学研究院 | 一种灌区用水智能调控方法 |
CN113391887A (zh) * | 2020-03-11 | 2021-09-14 | 北京国电智深控制技术有限公司 | 一种处理工业数据的方法及系统 |
CN113391887B (zh) * | 2020-03-11 | 2024-03-12 | 北京国电智深控制技术有限公司 | 一种处理工业数据的方法及系统 |
CN112799799A (zh) * | 2020-12-29 | 2021-05-14 | 杭州涂鸦信息技术有限公司 | 数据消费方法及装置 |
CN112949154A (zh) * | 2021-03-19 | 2021-06-11 | 上海交通大学 | 并行异步粒子群优化方法、系统及电子设备 |
CN112949154B (zh) * | 2021-03-19 | 2023-02-17 | 上海交通大学 | 并行异步粒子群优化方法、系统及电子设备 |
CN113672235A (zh) * | 2021-08-25 | 2021-11-19 | 中国人民解放军国防科技大学 | 射线水声传播模型的多核并行方法 |
CN117830489A (zh) * | 2024-03-05 | 2024-04-05 | 浙江小牛哥科技有限公司 | 智能室内设计图像渲染系统 |
CN117830489B (zh) * | 2024-03-05 | 2024-05-03 | 浙江小牛哥科技有限公司 | 智能室内设计图像渲染系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107015852A (zh) | 一种大规模梯级水电站群多核并行优化调度方法 | |
Feng et al. | Optimization of hydropower reservoirs operation balancing generation benefit and ecological requirement with parallel multi-objective genetic algorithm | |
Akay et al. | A survey on the artificial bee colony algorithm variants for binary, integer and mixed integer programming problems | |
CN107015861A (zh) | 一种基于Fork/Join框架的梯级水库群优化调度多核并行计算设计方法 | |
CN109800071A (zh) | 一种基于改进遗传算法的云计算任务调度方法 | |
Zhang et al. | Use of parallel deterministic dynamic programming and hierarchical adaptive genetic algorithm for reservoir operation optimization | |
Fu et al. | Multiobjective stochastic economic dispatch with variable wind generation using scenario-based decomposition and asynchronous block iteration | |
Cheng et al. | Parallel discrete differential dynamic programming for multireservoir operation | |
CN105719091B (zh) | 一种梯级水电站群并行多目标优化调度方法 | |
Feng et al. | Peak operation of hydropower system with parallel technique and progressive optimality algorithm | |
CN104158182A (zh) | 一种大规模电网潮流修正方程并行求解方法 | |
Feng et al. | Scheduling of short-term hydrothermal energy system by parallel multi-objective differential evolution | |
CN109918199A (zh) | 基于gpu的分布式图处理系统 | |
Ma et al. | Spark-based parallel dynamic programming and particle swarm optimization via cloud computing for a large-scale reservoir system | |
CN107168770A (zh) | 一种低能耗的云数据中心工作流调度与资源供给方法 | |
Jin et al. | Dispatching strategies for coordinating environmental awareness and risk perception in wind power integrated system | |
CN106373030A (zh) | 一种流域梯级水电站优化调度的方法及装置 | |
Shi et al. | A new environment-aware scheduling method for remanufacturing system with non-dedicated reprocessing lines using improved flower pollination algorithm | |
Wu et al. | A path relinking enhanced estimation of distribution algorithm for direct acyclic graph task scheduling problem | |
Li et al. | A hybrid particle swarm optimization algorithm for load balancing of MDS on heterogeneous computing systems | |
CN106547854A (zh) | 基于贪心萤火虫算法的分布式文件系统存储优化节能方法 | |
He et al. | Study on guaranteed output constraints in the long term joint optimal scheduling for the hydropower station group | |
Shi et al. | Virtual machine resource allocation optimization in cloud computing based on multiobjective genetic algorithm | |
Jiang et al. | Elite collaborative search algorithm and its application in power generation scheduling optimization of cascade reservoirs | |
CN108769105A (zh) | 一种云环境下的知识服务多任务调度优化方法及其构建的调度系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170804 |
|
RJ01 | Rejection of invention patent application after publication |