基于多核高性能计算框架的 配电网潮流计算外文翻译资料

 2022-08-31 17:34:06

基于多核高性能计算框架的
配电网潮流计算

Tao Cui,FranzFranchetti

电子与计算机工程系

卡内基梅隆大学

5000ForbesAve.Pittsburgh,PA15213

Email:{tcui,franzf}@ece.cmu.edu

摘要

计算平台的表现力在过去的十年间得到了巨大的发展。并行计算必然会成为将来的计算硬件/软件设计上的流行趋势。在电力系统特别是配电网中对实用计算性能的需求以及现代计算平台不断进步的激发下,我们设计了一款基于蒙特卡罗算法的高性能配电网并行潮流计算算法。从计算机结构和编程上来看,结合不同的性能优化技术和并行化后的配电网的潮流计算理论上能达到CPU的50%最佳性能,相当于已完全实现编译器优化的C 的50倍速度。

1.引言

潮流计算是电力系统分析中最基础的一步,主要依靠于大多数电力系统分析的关键路径和仿真程序的建立。由于配电网大多具有多相不平衡参数,高阻抗比和辐射状结构等特点,配电网的潮流计算需要专门为其建立计算模型和方法。在智能电网技术近期的发展和可再生能源与配电网的结合下,配电网的潮流计算需要越来越多的性能需求和研究工作。一个令人瞩目的例子是运用配电网的概率潮流来处理可再生能源的不确定性。由于可再生能源在自然中的随机性,确定性的潮流计算结果在解决系统状态时也失去其效果。很多正在进行的研究都尝试通过将可再生能源类比随机变量或随机过程一样模型化,再在配电网中应用概率负荷潮流。在众多的概率潮流算法中,蒙特卡罗模拟法是数字解决方案的一种,通常作为“黄金法则”的准确性参考。然而,蒙特卡罗算法通常要承受高运算量的负担。在此之前,这种算法只能在单机程序中用于评估其他概率性潮流计算方法的准确性,同时需要使用高性能超级计算机。

与此同时,计算平台的表现能力在过去几十年得到了迅猛的增长。穆尔定律仍然会是计算行业发展趋势的一个很好的预测。目前,主流的CPU或是GPU加速系统使我们能以非常低的成本打造一台个人超级计算机,其计算能力可以和不超过十年前的世界上最快的超级计算机群相媲美。但是,由于硬件设计中功率墻的存在,从这个世纪初开始,性能的迅速提高更多是由频率的提高向硬件、软件模型并行化处理的转换而实现。这意味着从硬件上提高计算能力已不再容易。并行程序设计模型必须在硬件发展优势的基础上得以应用。除此以外,为了充分获取特定的数值应用性能的计算能力,性能优化上必须考虑到存储器层构等硬件方面的限制。

本文立足于电力系统应用对计算性能的需求和现代计算平台的快速发展和模式转换,研究在配电网分析中Monte Carlo算法的应用。从软件模型的角度分析,高计算量的Monte Carlo模拟因其易于并行化而实际成为一种有利的情况。本文将数据并行化、多线程编程和性能优化技术应用到动态数据结构和存储器层次中。核心计算是高效地并同时求解大量电力系统潮流。目标是从现代计算机结构中提取计算能力,使应用程序的性能达到硬件峰值限制。经过并行化和其他优化处理,本文中的算法能够达到一台CPU理论峰值性能的50%,这相当于在单一处理器台式机系统上完全实现编译器优化基线的C 的50倍速度,也相当于在双CPU处理器系统中的150倍速度。结果显示,若没有额外在性能优化和并行程序设计上的工作,特定的潮流应用的性能会受到影响,约99%的硬件设计的计算能力可能会被浪费。通过应用并行程序设计模型和适当的性能优化技术,现代主流的桌面计算平台可达到和几年前超级计算机相同的高性能效果。这一结果也可被看做是一个实证案例阐述了传统电网的计算分析如何从软硬件计算平台的快速发展中获利。

2.计算进展和挑战

在过去的几十年中,计算平台的性能以指数级的速度迅猛增长。现在,一台主流英特尔服务器的CPU浮点运算速度可达到200 Gflops,这相当于每秒进行次加减乘除运算。这只是在一个CPU芯片的情况下,图形加速器和多核CPU的处理速度可达其10倍。为了更好的诠释这个速度,本文将商业现成(COTS)英特尔CPU的峰值性能和十年前世界上速度最快的超级计算机系统(在top500排行榜中)进行比较,结果列于表1。

表1 理论峰值性能比较

表1中的数据来自约十年前世界上top500排行榜中速度最快的超级计算机的峰值性能和英特尔桌面或服务器CPU的峰值性能。很明显,英特尔发布于2010年的CPU的理论峰值性能和十年前世界上top500最快的超级计算机的速度相当甚至更高。本文将理论峰值性能值命名为“峰值Gflops”。这些性能数据粗略的反映出一个事实,有些只能运行在十年前的超级计算机上的数值应用现在也可以在台式个人计算机上实现。

图1 英特尔CPU峰值性能和频率的发展进程

然而,从硬件架构中提取计算能力并非易事。

从图1可以看出,在上世纪末之前CPU的时钟频率大约以指数级速度增长。频率的增长大致意味着现有的数值计算软件的“自由加速”。但即使在那个时期,CPU时钟频率的增长已经造成处理器和内存系统之间出现瓶颈,考虑到存储器层次该代码必须得到优化。

从这个世纪初开始,由于芯片的功率密度限制,CPU的时钟频率也将达到极限值。“自由加速”时代已经终结。硬件方面也已向各种类型的并行化处理转变,包括矢量指令,多核/多核心架构。因此,数值软件应用程序的性能增益只能通过使用代码矢量化和除了存储层次优化外的多线程化的并行软件开发。

本文中采用的大量配电网潮流计算数据可以用作Monte Carlo 模拟算法的范例,用来证明了计算行业的趋势以及应用性能优化和并行程序设计模型带来的益处。

3.配电网潮流计算

本节介绍的是应用在算法中的配电网潮流计算基本模型。

A.组件模型

为了保存最详细的信息、实现高精度分析,本文采用的是由W. Kersting 发明的三相不平衡配电系统的精确模型。为了描述三相不平衡系统在相量域中的详细信息,文中用3times;1复向量和3times;3复杂矩阵来代表各相之间的耦合关系。大体上,配电系统的所有组件都可以分为两类:双终端的“连接模型”,如线路、变压器,以及单终端的“节点模型”,如点负荷。

连接模型和节点模型的抽象表示显示在图2和图3中。

图2 双端元件的连接模型

图2连接模型中4个变量的关系如下所示:

(1)

也可由此推出另一个等式:

(2)

矩阵abcd和矩阵AB可由特定的设备模型和参数在稳定状态下的潮流计算推导得到常数复矩阵。

图3 单端元件的节点模型

在图3的节点模型中,考虑到注入节点的三相复功率,功率、电压和电流之间的关系如下:

(3)

向量分别代表复功率、每相的电压和电流。

B. 潮流计算

本文中只考虑了辐射式的配电网络,采用“阶梯迭代法”进行潮流计算。用树形结构代表配电系统,变电站相当于树的根部。前推是指通过对树从根到叶遍历修正电压。回代是指对树从叶到根遍历修正支路电流。详细步骤如下所示:

首先,假设电流全部为零,电压初值为1。

  1. 前推:利用公式2修正下游节点电压
  2. 节点电流:一旦电压修正完成,利用公式3和求得的电压值在每个节点处修正电流

3)回代:利用求得的电压和电流以及公式1来计算上游支路的电流。

4)收敛判断:计算到达根分支时,若相邻两次迭代的电流(电压)差值在一个允许范围内,达到收敛,否则再次返回步骤1前推。

以上计算程序反映出小规模的复数矩阵向量运算是基础的计算核心,遍历树是计算程序的基本结构,这些都是计算性能优化的主要目标。

4.性能优化和并行程序设计模型

本节的主要内容是性能优化的方法和并行程序设计模型。构建本文中的配电网快速潮流计算法也主要分为两步:性能优化部分采用代码最优化技术,使标量版本的代码性能可达到单核标量指令的峰值限制。在标量代码已优化的基础上,采用单指令多数据流指令(SIMD)和多线程,并行程序设计模型在解决潮流计算的同时进一步从硬件中提取计算能力。

A.性能优化

编写一套高效快速的求解程序的第一步是建立一个可以在标量指令中充分利用硬件计算能力的高效的标量版代码。基线代码由C 标准模板库(STL)完成。STL提供很多详细的面对对象种类,可描述辐射状配电网络的树形数据结构。前推和回代是指分别从根到叶和从叶到根遍历全树。在软件工程的角度上,STL使用方便富有成效也因此被很多软件开发商采用。但是,随之而来的代价是性能降低。大量的指针和开销往往会使典型应用程序的性能低于处理器性能一个或多个数量级。

图4 快速存储器的数据结构转换

在图4所示的数据结构优化中,STL树形结构被转换成数组访问以及进一步的指针数组访问。所有的数据被分为三个数据数组:参数数组,输入数组和输出数组,前推和回代中所需的数据也被连续放在这些数组中以利用数据的局部性。此外,树迭代被转换成另一个双指针数组,用来操控先序/后序遍历数据数组的过程。这种优化策略将指针转换为流媒体访问,并保留数据的暂时性和空间局部性。除了数据结构转换外,通过数组标量化技术和循环展开,计算核心也得到进一步的优化。新版本的标量代码利用了现代存储结构的优点,得到比基本STL代码好得多的性能效果。更多的详细技术请查看参考文献11.

B.程序设计模型

在本算例中主要采用并行化的蒙特卡罗算法。目标是解决很多电力系统潮流案例,每个案例可能有不同的数据,但他们都相互独立,因此大量的潮流求解程序可以同时被执行。蒙特卡罗模拟法即是概率潮流计算的其中一种方法。除了蒙特卡罗模拟法以外,稳态时间序列模拟法以及其他需要大量独立的潮流计算结果的统计应用都可以采用。

潮流计算的并行程序设计模型主要利用数据并行化和现代计算平台的同步多线程性。SIMD指令使单一指令可同时处理大量数据。在现代主流CPU上,SIMD流指令扩展(SSE)和高级矢量扩展(AVX)是SIMD在x86架构上实现扩展指令集的技术。对于浮点指针运算,SSE可在没有其他额外工作下做到同时处理4个单精度数据,AVX可做到同时处理8个单精度数据。除了SIMD外,同步多线程可以在计算工作量足够高的情况下使多个线程同时在多个CPU核心上运行而产生极小的消耗。SIMD和多线程是现代硬件结构的并行计算能力得以奏效的两大支柱。

图5 主流台式机/服务器CPU上的并行程序设计模型

并行程序设计模型的概述如图5所示。在多CPU核心上有多线程同时运行,每个线程包含一个SIMD矢量潮流计算求解器,根据不同SIMD指令的数据宽度,设置为SSE指令时SIMD矢量潮流计算求解器可同时求解4组数据,设置为AVX指令时可同时求解8组数据。多线程可以进一步提取硬件架构的计算能力。多线程潮流计算的方法采用Pthread库实现快速同步运算,已在现实中得到应用。理想情况下,这种算法可以线性扩展SMID指令的数据宽度和CPU同时运行的线程数。

5.实验结果分析

本节介绍了在IEEE 4节点测试馈线系统的基础上进行优化的并行潮流计算算法的测试。为了性能测试而扩展系统的方法是复制和连接多个4节点系统组建多达上千个节点的大型系统。

A.击穿特性

图6性能优化技术的作用(双核极值)

本文利用C 和不同软件工程生产方法实现对基准代码的比较:复数运算使用运算符,树的种类采用C 的STL模板,树遍历是模板的一个迭代程序。

通过使用数据数组和第四节所述的进一步的指针数组完成改进的C程序。图6所述的是采用不同优化和并行化技术的击穿性能。最低的条形是由编译速度优化选项(-o2)编译的C 代码。第二低的条形是由英特尔编译器和全编译优化选项(-o2)编译的C 代码。采用指针数组的版本(第三高的条形)被认为是最好的标量代码,其速度可达到接近CPU标量指令硬件理论峰值性能的60%。在此优化版标量代码的基础上进一步实现了SSE版和SSE多线程版,两者可以达到一个近乎线性的加速比。从图中可以看出,简单软件工程风格化实现和普通的编译器选项可能会丢失两到三个数量级的性能,这意味着对这款数值应用来说,超过99%的CPU硬件的计算能力都被浪费。在适当的优化和并行化处理后,约50%的CPU硬件理论峰值计算能力可以被提取。

B.峰值运算速度

本段介绍了在多达2048个节点的测试馈线系统上进行标量代码,SIMD代码以及多线程代码的测试。在配置英特尔酷睿2 QX6700四核CPU的桌面处理器上得到的测试结果如图7所示。QX6700的综合理论性能(CTP)是80.68Gflops。优化的多线程SSE代码可达到此理论峰值速度的50%。这意味着平均水平下,每点击一次CPU可完成16次浮点运算。当节点数超过2048时,由于CPU缓存容量限制,会出现性能下降。

图7酷睿2 QX6700 CPU上测试性能

图8 酷睿i5-2400 CPUs和AVX上的测试性能

图8中的测试数据来自英特尔新的Sandy Bridge微型CPU酷睿i5-2400,AVX指令集在每个指令可传达8浮点运算。和SSE相比,由于并行数据的增加,AVX可以提供一个近两倍的加速。这个CPU中L2缓存小于QX6700,因此性能会在一个更小的节点数时开始下降。

图9 至强X5680双CPU核心超线程上的性能测试

图9中的数据是在双6核英特尔至强X5680 CPU(3

剩余内容已隐藏,支付完成后下载完整资料


英语原文共 5 页,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[147719],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。