并行系统(精选12篇)
并行系统 篇1
1 引言
运动弱小目标的检测和跟踪被广泛应用于红外自寻的制导、搜索跟踪和预警等领域,是一个对实时性和识别精度有较高要求的高科技问题,近20年来,一直是雷达、光学和红外图像应用领域的研究热点。由于弱小目标在红外图像中表现为无形状、大小、纹理的点目标,且图像信噪比低[1],单帧的检测跟踪方法已不能满足要求,取而代之的是更加复杂的针对序列图像的处理算法[2,3,4]。算法复杂度的增加,使得单个DSP很难满足实时性要求,从而使利用多DSP并行处理技术实现高速数据传输和处理成为研究的重点。
ADSP-TS201S是ADI公司Tiger SHARC系列中面向通信和视频领域的高端DSP。该款处理器是当前处理能力最强的浮点DSP,同时兼容定点处理;其采用了静态超标量结构,支持单指令多数据(SIMD),每周期执行4条指令、6个浮点或24个16 bit定点操作;内核时钟高达600 MHz,处理能力每秒48亿次乘加运算(GMACS)或36亿次浮点运算(GFLOPS)。此外,TS201S所具有适合多DSP并行处理的突破性体系结构,专门的片内分布式总线仲裁逻辑可以实现最多8片DSP共享1条外部总线,4条高速链路口(LINK)可以实现多处理器间的通信的无缝连接,非常适合于大数据量、高复杂度数据的实时处理应用[5]。
本文提出了以4片ADSP-TS201S为信号处理单元,采用链路口两两交叉互联构成了松耦合多DSP并行流水处理平台。通过与CPLD和各种存储设备的配合使用,设计实现了具有高实时性、高存储量和良好扩展性等特点的多DSP红外目标检测跟踪系统。
2 多DSP并行处理系统设计
2.1 并行系统方案的确定
在多处理器系统中,处理器节点之间的通信通常采用两种方案:一种方案是使用专门的点对点通信信道;另一种方案是节点之间通过一个共享的全局存储器和一条并行总线进行通信。ADSP TS201S通过高速链路口(LINK)实现第一种方案,通过高速外部总线口(簇总线)实现第二种方案。
由多ADSP TS201S组成的DSP系统从数据传输方式来看,有以下3种耦合结构[6]:
1)由高速链路口(LINK)互连构成松耦合结构;
2)由高速外部总线口(簇总线)共享存储器构成的紧耦合结构;
3)由前两种共同构成的混合耦合结构。
紧耦合结构中数据传输是并行模式,优点是传输速率高,但随着并行处理单元数量的增加,DSP之间的通信时间和总线仲裁时间开销急剧上升,造成并行加速比和并行处理效率降低。相比之下,松耦合结构中数据传输是串并行方式,适合于多DSP的分布式并行处理。同时这种结构还具有结构简单、总的数据传输速率高于紧耦合结构、无总线仲裁问题、PCB板设计也相应简化等优点。根据红外弱小目标检测跟踪的特点,本文采用高速链路口的松耦合结构。
图1给出了所设计的并行系统框图,红外弱小目标检测跟踪并行处理系统方案采用了4片ADSP TS201S通过高速链路口(LINK)两两交叉互联的方式,4片TS201S的4个LINK口中的3个被用于DSP之间的两两互联,1个用于处理板之间的扩展互联。在本系统中,4个DSP在600 MHz下的定点运算的峰值速度可达到19.2 GMAC(16 bit),浮点运算的峰值速度可达到14.4 GFLOPS,4个LINK口由于采用了LVDS技术和DDR技术,总数据吞吐率能达到4GB/s。64 bit外部数据总线最大数据吞吐率1 GB/s。同时每片DSP都拥有4 G的外部存储器和外设寻址空间。这些性能指标为复杂的检测跟踪算法的硬件实时实现提供了可能。
2.2 系统的数据处理流程
如图1所示,首先通过前端LVDS数字视频接口,使LVDS视频图像数据在CPLD的控制信号下,经过时序转换后写入前端双口RAM中。此处我们选用的是IDT70V28L高速64k×16位的双口RAM。在DSP1的DMA控制器作用下,将视频输入双口RAM中的数据转移到SDRAM中,然后各个DSP通过链路口在DMA方式下进行数据的传输,使得数据分配过程与DSP运算过程并行执行,提高处理效率。处理后的数据,在DSP4的DMA控制器作用下,将数据从SDRAM写入后端双口RAM中。最后在CPLD控制下将双口RAM中的视频数据通过LVDS数字视频接口输出到外部。视频数据的输入输出、DSP中断和其它外设控制逻辑的管理由1片XC95288XL CPLD完成。
系统通过挂载在DSP1的FLASH进行系统的初始化及程序加载。由于松耦合系统没有使用总线共享,所以除了DSP1是采用EPROM方式进行加载外,其他DSP都是通过链路口实现程序的加载。图2给出了所研制的并行处理系统的实物图。
3 算法流程及实现
本系统主要用来实现对红外弱小目标的检测和跟踪,可以实时地从红外成像仪或其他采集系统读入视频图像信号,对图像进行实时处理以检测和跟踪目标,并将目标的位置和运动信息输出。红外小目标的检测跟踪算法流程如图3所示。将各阶段的处理分别分配给各DSP,实现基于过程控制流的并行处理。
3.1 算法原理
图像预处理主要是实现对图像背景的抑制,增强目标,提高信噪比。它的处理效果直接关系到后面检测与跟踪的速度和可靠性。根据红外图像中目标、背景干扰和噪声的特点,本文采用经典的灰度形态学Top-hat滤波算子对输入图像进行滤波。该算法原理简单,易于硬件实时实现,并且能有效地消除红外图像中的背景[7]。Top-hat滤波算子定义如下:
其中:f为红外输入图像,g为结构元素,fg为用结构元素g对图像f进行灰度开运算,其结果为估计出的背景,相减后得到HAT(f),为滤除了背景的目标图像。由于小目标像素在2×2~5×5之间,根据概念,结构元素要大于或等于小目标的面积。这里我们选取7×7的钻石型结构元素。
Top-hat滤波后,进一步对图像进行自适应全局门限法的阈值分割[8]。设输入图像为f(i,j,k),处理后图像为g(i,j,k),并令门限为T(k),则有:
式中T(k)是随序列图像的变化而自适应改变的,即:
式中λ为加权值,选择范围为3~5。mean(k)、var(k)分别表示第k帧图像的图像灰度均值和方差。经过上述的阈值处理以后,得到一个去除背景干扰和弱噪声的目标图像,这时,可能是目标的点保留其灰度值,其余点的灰度值为零。
由于红外图像的信噪比一般都较低,所以单帧图像无法作出对目标适当的判断,因此采用检测前跟踪(TBD)算法来实现目标的检测跟踪。这里我们采用多级假设检验算法。该方法是速度滤波器的一种高效算法,是截断的序贯似然比检验法[9]。它利用假设检验的方法对候选轨迹所组成的树形结构做出修正,以随时去掉没有通过检验的树,达到减少运算量和存储量的目的。该算法的具体硬件实现可以参考文献[10]。
3.2 算法的系统实现
整个算法在硬件系统中的实现流程如图4所示。按照检测跟踪算法原理将系统分为4个模块处理单元,预处理模块、目标检测模块、目标跟踪模块、输出处理模块。实际应用中根据不同的算法进行合理的DSP分配。
针对本文所提出的算法,首先视频图像采用乒乓缓冲方式存入输入双口RAM中,这样可以保证处理器进行数据处理的同时,外部数据的连续传输。当一帧图像存入双口RAM时,DSP1通过DMA方式将图像传输到SDRAM中,并完成Top-hat和阈值分割预处理算法。然后通过链路口DMA方式将图像传输到DSP2的SDRAM中,再以同样的传输方式将图像传输到DSP3中,在这两个DSP中实现多级假设检验算法,最后在DSP4中完成目标位置的标识、参数输出等工作,并将视频图像通过输出双口RAM输出到外部显示装置。
4 实验结果
对系统进行了一系列的实验研究。其中一个实验事例采用的输入图像信号是一组天空背景下导弹飞行的红外序列图像。图像尺寸为600 pixels×479 pixels,灰度级为256,序列图像为25帧/s,信噪比小于2。使用上述检测跟踪算法,该并行处理系统实现了对目标实时、准确地检测及跟踪。图5~图8分别给出了各个处理阶段的结果。类似规模与帧频的实验结果都表明,并行处理系统能有效地实时检测并跟踪红外运动小目标。
结束语
随着现代红外数字图像处理中画幅尺寸、帧频、数字量化程度的日益提高,为了满足对实时处理算法复杂度和数据吞吐率急剧增长的需要,本文设计了一套基于4个ADSP TS201S的高性能并行图像处理系统。实验表明,该系统具有良好的实时性、扩展性及适用性,可以实现对大画面、高帧频的红外弱小目标实时检测跟踪。
参考文献
[1]WANG Zhi-cheng,GAO Chen-qiang,TIAN Jin-wen.Multifeature distance map based fusion detection of small infrared targets with low contrast in image sequences[J].SPIE,2005,5985:669-673.
[2]Blostein Steven D,Richardson Haydn S.A sequential detection approach to target tracking[J].IEEE Transactions onAerospace and Electronic System,1994,30(1):197-212.
[3]XING Si-yuan,JI Hong-bing.A track-before-detect algorithm based on particle filter with model estimation[J].ICSP’04,2004,1:311-314.
[4]Zaveri M A,Merchant S N,Desai U B.Multiple single pixel dim target detection in infrared image sequence[J].ISCAS’03,2003,2:380-383.
[5]Analog Device Company.TigerSHARC Embedded Processor Data Sheet[EB/OL].http://www.analog.com,2006.
[6]刘书明,罗勇江.ADSP TS20XS系列DSP原理与应用设计[M].北京:电子工业出版社,2007.LIU Shu-ming,LUO Yong-jiang.ADSP TS20XS Series DSP Theory and Application Design[M].Beijing:Publishing House of Electronics Industry,2007.
[7]王新增,严国莉,关小歉.灰度形态学滤波的红外运动小目标检测方法[J].中国测试技术,2006,32(5):79-81.WANG Xin-zeng,YAN Guo-li,GUAN Xiao-qian.Detection Method of Infrared Moving Small Target Based on Grey Morphology Filtering[J].China Measurement Technology,2006,32(5):79-81.
[8]李国宽,彭嘉雄.红外序列图像中运动小目标的检测方法[J].华中理工大学学报,1999,27(11):25-27.LI Guo-kuan,PENG Jia-xiong.Detection Method of Small Moving Targets in IR Sequence[J].Huazhong Univ.of Sci&Tech,1999,27(11):25-27.
[9]Werthmann J R.A step-by-step description of a computationally efficient version of multiple hypothesis tracking[J].SPIE,1992,1698:289-230.
[10]赵峰,吴常泳,李范鸣.红外成像目标跟踪的MHT改进算法及其DSP硬件实现[J].红外与毫米波学报,2003,22(2):105-108.ZHAO Feng,WU Chang-yong,LI Fan-ming.A Progressed MHT Algorithm for Infrared Target Tracking and the Hardware Architecture on DSP[J].Infrared Millim.Waves,2003,22(2):105-108.
并行系统 篇2
基于并行子系统的飞行器多学科稳健优化设计
研究了并行子系统稳健优化设计方法在飞行器设计中的应用.分别采用并行子系统稳健优化设计、系统分析和并行子系统分析3种不同方法进行了计算,得出的稳健结果表明并行子系统稳健优化设计方法优于其它2种方法.该方法主要有3大改进:一是在MDO环境中,增加了不确定性的分析;二是允许系统层使用离散变量;三是在系统协调过程中,采用人工神经网络的`响应面提供定量的近似信息.
作 者:续斌 张恒喜 马利 解江 XU Bin ZHANG Heng-xi MA Li XIE Jiang 作者单位:空军工程大学,工程学院,陕西,西安,710038刊 名:空军工程大学学报(自然科学版) ISTIC PKU英文刊名:JOURNAL OF AIR FORCE ENGINEERING UNIVERSITY(NATURAL SCIENCE EDITION)年,卷(期):8(6)分类号:V222关键词:并行子系统稳健优化设计 飞行器设计 多学科设计优化
快速成型在并行设计系统中的应用 篇3
关键词:并行设计系统
设计方法
快速成型
并行工程(Concurrent Engineering,CE)是一种工程方法论,是随着并行设计的发展而出现的一个概念,并行工程是一种以集成方式【并行地】设计产品以及制造和支持等相关过程的系统化方法。
一、串行设计与并行设计
传统串行的产品设计与开发过程,以顺序的任务方式进行的,整个过程被分割成串行的若干阶段,下游阶段的启动需以上一个阶段的结束作为前提,阶段与阶段之间具有较为明显的停顿和交接,整个过程中信息及各领域产品开发人员间的意见交流仅限于毗邻的两个阶段,无法完成信息的及时反馈与交流。这种方法必然导致产品的设计与制造之间存在严重的隔阂,因此与传统的串行设计相比,并行工程是对产品及其相关过程(包括制造和支持过程)进行集成、并行设计的一种系统性工作模式。这种工作模式力图使开发者从一开始就考虑到产品全生命周期【从概念形成到产品报废处理)中的所有因素,包括质量、成本、进度及用户需求,在产品开发过程中的各个阶段的工作交叉进行,以使设计出来的产品能达到一次性成功。
二、并行设计系统的实现
在传统的设计方法中,由于设计者自身的能力有限,不可能在短时间内仅凭借自己对产品的使用要求的理解就能把产品各方面的问题都考虑的很周全。而串行的设计系统很难与机械机构设计师、市场销售人员等相关部门做到高效的交流互动,因此造成了设计效率低下,延长设计周期,甚至错过市场机遇。在产品设计中引入并行工程实现产品并行设计系统,可以使产品开发在早期阶段能全面考虑产品开发过程中的各种因素,从而缩短产品卡发周期,提高产品质量,降低成本。
并行工程应用至产品开发过程中就是打破传统的组织机构带来部门分割封闭的观念,强调各部门协同工作的效应,重建产品开发过程并运用先进的设计方法学,在产品设计的早期阶段就考虑其后期发展的所有因素,提高产品设计、制造的一次成功率。并行设计的核心是过程集成,更侧重时间上的协同,这是一种集成地、平行地处理产品设计、制造及其相关过程的方法。下面是两个关于并行设计方法的描述性模型。
并行设计的环节重叠模型
(一)、环节重叠和压缩模型:大多数关于并行设计的论述把并行设计的过程描述成一个活动环节重叠、压缩的过程。这样在产品开发的每个环节执行过程中均与上一环节的相关人员进行交流,充分考虑下一环节可能遇到的问题,相互并提出设计意见,从而提高产品设计的效率。
(二)、圆桌模型:因为影响产品设计效率及设计成功率的因素有很多,每一环节出了问题都可能导致其它环节的瘫痪,因此在并行设计中采用如圆桌会议的方式能够使产品设计的各部门如坐在一张圆桌上一样进行交流研究,共同参与产品设计的每一环节。(图2)。
并行设计的方法主要有以上两种,其目的在于在于设计过程的集成化、系统化,产品开发的所有部门共同参与产品开发的每一环节。而实现并行设计的关键在于各部门之间的信息交流和知识共享,而传统的设计信息交流方式主要靠面谈或通过电话等通讯工具讨论加以解决。但这些方式很难做到及时、充分的协商和讨论。因此一项大的设计任务接口问题难免出现差错,这正是设计过程不断反复修改的主要原因。虽然在现代设计领域中,造型设计师与结构设计师都是利用计算机辅助设计绘出效果图和工程图,通过网络共享设计数据等信息资源,来同步考虑产品设计与制造的上下游问题,从而实现并行设计,但仍然存在着一定的障碍。如在造型设计阶段,产品造型设计师通过绘制效果图来表达自己的创意,在交流的过程中其它部门的人员通过效果图来理解设计方案,由于效果图是一种理想状态下的平面图,很容易引起视觉偏差,导致效果图漂亮而实际制作出来并不尽人意的情况。另外效果图能否充分表达设计创意、能够表达出设计的每一个细节也值得怀疑。
三、快速成型体现的优势
在产品机械结构设计阶段,结构工程师设计表达一般利用两种方法,一种是利用CAD绘制平面工程图,另一种是利用三维工程软件(CATIA、UG、Pro/E等)绘制三维模型。在与其他部门交流的过程中只能靠平面图纸或带电脑当场演示,由于其它部门人员缺乏工程相关知识,根本看不懂图纸,因此无法交流,三维数字模型虽然有很强的直观性,在三维软件中可进行结构、性能分析、也可以进行模拟装配,可以进行外观造型的渲染,甚至可以在虚拟现实环境下进行操作和使用,但也无法取代三维实体模型,因为三维数字模型存在一些致命的缺陷如:数字模型无法提供产品的全部信息(如手感);数字模型只能模拟已知的环境条件;三维空间中的实体模型比二维屏幕上的数字模型更具有真实感和可触摸型等,因此只是凭视觉判断,对于复杂设计很容易忽略或遗漏一些重要信息。而利用模型或样机能够更加形象、直观、准确的表达设计思想,实现真正的无障碍交流。传统制造實物模型和样机的方法是手工制作或采用机加工的方法制作,时间长、成本高、制作精度也不够,特别是遇到形状复杂的设计时模型的误差更大,周期长,从而影响了设计的表达,不能达到交流的目的,延长设计周期。采用快速成型技术,设计者在设计的最初阶段就能拿到实在的模型或样品,并且可在不同的阶段快速地修改重做,根据精确模型或样机让各部门人员判断设计方案的各种问题,提出建设性意见,实现无障碍交流,从而为产品开发创造一个良好的设计环境,尽快得到优化结果。因此,快速成型技术是真正实现并行设计的强有力手段。
并行设计在美国、德国和日本一些西方发达国家已经得到广泛应用,其领域包括汽车飞机、计算机、机械和电子等行业,并且把并行工程作为提高效率、降低成本的重要手段。美国波音(Boeing)公司在1994年向全世界宣布,波音777飞机采用并行工程的方法,大量使用CAD/CAM技术,实现了无纸化生产,试飞—次成功,并行工程的应用及其设计制造信息化的应用使波音公司把777的研制周期从757和767的9-1 0年时间缩短为4年多,创造了显著的经济效益和市场竞争能力;德国人基于并行设计的理念,设计了易于制造的ME-109型战斗机,全部设计制造时间只有4000小时,而与之相当的英国喷火式(Spitfire)战斗机的设计制造时间是13000小时。日本的丰田公司采用经理分则的并行工程方法,使各个阶段同步或交叉进行,大大提高了产品开发的效率。
综上所述,并行设计的优势是传统串行设计无法比拟的,并行设计可使产品设计与制造之间的信息共享,使整个产品开发团队从设计的一开始就全部参与进来,尽早地发现问题并解决之,避免没有必要的返工,从而缩短产品设计周期,更快反应市场,降低企业开发成本,增强企业的核心竞争力。从并行设计的本质可以看出实现并行设计的核心问题就是信息沟通与知识共享,而只有通过设计模型或样机才能实现无障碍沟通,快速成型技术能够快速、精确地制作出设计模型或样机,因此快速成型技术能够为并行设计的实施提供一个无障碍交流的平台,是实现并行设计强有力的技术支持,利用快速成型技术能够实现并行设计系统的良好运转。
参考文献:
1.熊光楞,张和明,李伯虎,并行工程在我国的研究和应用,计算机集成制造系统.2000
2.周生祥,智能化CAD,CAPPC,AM集成技术的研究与实现,博士学位论文.1998
3.徐有忠,并行设计系统的若干关键技术问题研究及其原型实现,博士学位论文.2003
并行测试系统测试任务分解研究 篇4
并行测试技术是支持下一代自动测试系统的关键技术之一, 相对于传统串行测试系统, 其技术特点与优势在于提高了测试系统的吞吐率、提高了测试仪器资源的利用率、缩短了测试执行时间。实现并行测试技术的关键在于测试任务的调度, 而并行测试任务的分解则为并行测试任务调度的基础。
1 并行测试任务分解的必要性与可行性
在传统的串行自动测试系统中, 测试任务被事先整体规定, 然后测试中按照一定的顺序流程运行, 测试任务的安排由于不涉及并行性, 所以待测任务之间可能无法进行并行测试。因此, 将一个总体的复杂测试任务, 经过分解形成多项容易被测量的子任务, 通过完成子任务测试从而解决复杂测试的思想, 对于并行测试系统来说是尤为必要的。
并行测试系统本身的特点决定了总体的复杂测试任务分解的可行性:对于并行测试系统本身而言, 现阶段的自动测试系统均采用嵌入式计算机控制、模块化的测试仪器资源, 这就使得各个资源模块可以根据测试系统的需求同时单独工作, 相互之间没有影响;新的接口适配器技术, 使得自动测试系统与待测设备间的连接、信号转换更加灵活;计算机多线程与多核处理技术, 使得控制软件能够同时控制运行多个测试任务。上述的这些自动测试系统本身的特点, 均为经分解后的多项子测试任务能够实现并行技术奠定了基础。
2 并行测试任务分解所遵循的原则
子测试任务的大小能够通过增加或减少测试参数来改变, 那么子测试任务的大小即表现为测试任务粒度的粗细。任务粒度能够体现某测试任务集合的层次结构, 同时也能体现整体测试任务的规模与数目。任务粒度与任务数量存在反比关系:任务粒度越大, 任务数量越小;任务粒度越小, 任务数量就越大[1]。反映到并行测试技术上来说, 就是任务粒度与子测试任务的并行性和可求解性质是相关联的:通常来说, 子测试任务的独立性随着任务粒度大小的增加而增加, 但子测试任务的信息接口、交互性、任务之间的并行性却随着子测试任务粒度大小的增加而减少。因此, 测试任务分解, 要控制适宜的子测试任务粒度。
并行测试任务分解的目的是把复杂测试任务分解为多个简单易处理的子任务, 子任务之间尽可能错开资源竞争, 从而有效地加快执行速度, 缩短测试时间。但是过度的分解将使系统中有大量的任务, 经常进行任务的切换, 任务与任务之间还需要很多的同步和互斥控制, 将大量增加系统服务工作, 降低系统的速度和有效性。
因此, 在进行任务分解的过程中, 必须遵循一定的原则。测试任务分解的原则有以下几点[3]:
(1) 独立性:任务应有相对的独立性, 任务间的相互协调、通讯工作应少, 以减少系统的开销;
(2) 层次性:对总体测试任务依次从被测单元、被测参数到具体功能操作进行逐层分解;
(3) 均匀性:任务粒度的大小要适中、均匀, 避免某一任务的执行时间过长, 导致资源负载不均, 同时也要避免任务过细, 导致系统任务切换开销过大;
(4) 相似性:不同的测试任务分解的子任务应尽可能的相似, 以便软件设计时可用相同的程序代码实现, 提高软件编程效率。
实际工程中可根据被测对象的特点, 采用自顶而下逐层分解的策略对测试任务进行分解。被测装备通常会包括多个被测单元, 而被测单元一般会有多个参数需要检测, 在这一层按被测参数对测试任务进行分解, 在各参数的检测中一些参数的检测可能存在相同的初始化操作, 可以提取相同的操作, 提高系统效率。
3 并行测试任务分解策略方法要点
在弄清并行测试任务分解要遵循的原则后, 要明确子测试任务之间可能存在某种关联。那么, 分解后的子测试任务之间是否可以进行并行测试, 如果不能进行并行测试, 子测试任务之间的执行优先顺序又是怎样的。子测试任务之间的相互关联, 决定了上述问题。
在讨论并行测试任务分解策略方法要点与方案之前, 先对测试任务之间的关联引入形式化定义[3]:
定义3.1设t1和t2为两个测试任务, I1和O1分别为t1的输入变量集和输出变量集, I2和O2分别为t2的输入变量集和输出变量集, 若I1与O2, I2与O1, O1与O2之间均无交集, 则称t1与t2数据相关;否则, 称之为数据无关。
定义3.2设t1和t2为两个测试任务, 若t1的测试能够决定t2是否测试, 则称t2控制相关于t1;否则, 称之为控制无关。
定义3.3设t1和t2为两个测试任务, R1和R2分别是t1和t2占用的资源集, 若R1和R2无交集, 则称t1和t2资源相关;否则, 称之为资源无关。
定义3.4设t1, t2, …, tm为测试项目中的各项测试任务, 若t1, t2, …, tm按所有可能的任意顺序测试的结果相同即t1, t2, …, tm任务优先级相同, 且t1, t2, …, tm资源相关, 则称t1, t2, …, tm是可并行测试的。
对上述定义作出说明:对于测试任务t1和t2, 若其满足数据相关, 那么t1和t2是不能够进行并行测试的, 但反过来, 若t1和t2数据无关, 不能肯定t1和t2能够进行并行测试。例如, 两个测试任务中可能含有中间测试变量或任务, 使得t1和t2虽然数据相关条件, 但实际只能依次测试。同理, 对于测试任务t1和t2间满足控制相关也存在相应不能同一时刻进行并行测试的问题。
在明确测试任务之间所能存在的相互关系后, 便可以根据这些相互关系, 对一个总体复杂测试任务进行分解。由于随着被测设备的不同, 一个总体任务能被分解的程度、依据就不同, 因此, 没有一种具体有明确步骤的详细方法, 能通用所有自动测试系统的测试任务分解。通常总体分解方法要点如下:
(1) 详细了解被测设备特点, 明确被测设备的测试需求, 明确各个被测单元以及各被测单元所需测量参数;
(2) 根据被测设备中的某些具体带有测试时序要求的测试任务, 从总体上即采用自顶向下逐层分解的方法对各个被测任务划分层级网络, 明确哪些测试目标任务经层级划分后是复合任务, 哪些是不可在分的测试任务;
(3) 分析初步划分后的测试任务, 看是否有哪些被测参数可以进行层次的调整, 是否能够合并成新的测试任务。例如, 某些参数的检测可能存在相同的初始化操作, 可以对这些操作进行提取公因式, 提高系统效率;
(4) 经细化、合并、调整顺序后, 完成任务分解, 形成测试任务集合。
4 总结
并行测试系统测试任务分解是并行测试系统实现并行测试任务调度这个NP-HARD难题的前提, 遵循怎样的分解原则和分解测量方法要点对总体测试任务进行分解, 对分解后子测试任务的粒度有着影响。根据本文提出的分解策略方法要点进行并行测试任务分解, 能够较好的控制子任务粒度, 为后续并行测试任务调度打下基础。
摘要:并行测试技术是支持下一代自动测试系统的关键技术之一, 本文分析了并行测试系统测试任务分解的可行性与必要性, 通过介绍并行测试任务分解的原则与并行测试任务形式化定义, 总结给出了并行测试任务分解策略方法要点。
关键词:并行测试,任务分解,分解策略方法,分解策略方案
参考文献
[1]何玉安.基于本体的制造网格任务管理关键技术研究[D].上海:上海大学, 2008.
[2]卓家靖, 孟晨.并行测试系统的任务分解和任务过程模型[J].电子测量技术, 2008, 8, 31 (8) :109-112.
并行系统 篇5
江苏公务员考试网:据了解,职务与职级应该是相对独立、相对分离的。职务反映职级,职级对应一定的职务。从功能上来看,二者的区别在于,职务的设置给公务员带来权力以及责任 义务的承担,职级的设置给公务员带来物质利益以及职业尊严的满足。推行职务与职级的并行,实质是使职级真正成为公务员的一条独立的职业发展阶梯。那些不能 晋升职务的公务员,也可以通过晋升职级获得合理的待遇和尊严。
据统计,我国县、乡两级公务员占全国公务员总数近60%。受机构规格和领导职数的限制,县、乡两级绝大多数公务员退休之前都解决不了副主任科员的待遇。
目前全国约有省部级现职官员3000人,据估算,公务员队伍中能晋升到省部级的比例仅为万分之四。
有研究表明,从科员到县处级干部的升迁比例仅为4.4%,从县处级升迁为厅局级的比例更是低至1%。有的人工作几十年还是副科长。
根据有关统计,目前各地公务员工资的四个组成部分,职务工资约占20%,级别工资约占25%,地区附加津贴约占45%,各种补贴约占10%。职务工资比例虽不高,但由于地区附加津贴基本按照职务发放,所以实际占了近七成。
(本文来源于网络,仅供参考)更多江苏公务员考试相关信息请访问江苏公务员考试网
荣誉与快乐并行 篇6
晚上8点,带着有些激动的心情,我和我的两个同事终于到达了这座号称中国三大火炉之一的城市——武汉。但绵绵的细雨把这座城市的“火炉”本色掩盖的不露一点声色,原本准备的半袖T恤衫也被除数略显阴冷的空气吓得钻进了我的背包,顾不上仔细聆听那位出租车司机师傅兴高采烈地介绍武汉的特色。看着窗外被夜色笼罩的没有一点轮廓的母亲河,我陷入了沉思。
曾几何时,我也是一名狂热的CS玩家,命运的唆使让我追随着自己的梦想成为了一名《电子竞技》的编辑而Fnatic这个现阶段最炙手可热的队伍也在SK和NIP后代表着瑞典人的执著在我的心里抹下了重重的一笔,想到明天就能在WSVG中国站的赛场上让从他们身上反射的光线不经过任何媒介的转载而直接进入我的眼球,我的心跳略微的加了加速。
2007年5月1日阴转晴
到了一年中天气瞬间升温的日子,虽然没有暴露在炎日下,但是厚厚的摄影马甲和拥挤的人群还是让我些许感受到了火炉的温度,在到达了武汉后,我的同事告诉了一个让我有些吃惊的消息——Fnatic不仅来参加CS的比赛有一支WoW队伍,这让我感觉到了国外玩家在追求新竞技游戏上的狂热。很顺利的,我们在赛场上面见到了这支Fnatic的WoW战队。说实话,除了ins以外头一次见到别人穿上Fnatic的队服,感觉还真有点奇怪。在交谈的过程中,我总觉得面前的这个人很面熟,但是还没容我细想,那边的一阵骚动便将我的神经拉了过去。
果然没有猜错,Fnatic的CS队伍终于出现了。由于CS的赛场还没有准备好,几个大个子略显羞涩的坐在了放置摄像机的台子上面休息。很显然,他们选错了地方,Fans们从四面八方蜂拥而至,拉扯着自己的偶像签名,拍照。虽然经过了疲累的旅行,但是他们还是很友好的接受了Fnatic的要求。
这时候,一名穿着Fnatic队服的中国人闯入了我的视线,我心想,“这小子牛啊,这么快就要了他们个T恤衫穿,我得问问他有什么诀窍没。”于是拉之过来细一打听才知道,这位是Fnatic的中国区总经理——洛飞,无奈自己那张略显稚嫩的面孔曾经让同楼的大妈错认为是学生或送盒饭的,总之在这次Fnatic的WSVG之旅中,率真和干练的洛飞给我们留下了很深刻的印象。
在第一天的比赛中,Fnatic小级赛区上并没有遇到太强的敌手,倒是某些武汉本地的业余战队在和Fnatic对阵时无论被虐成何种程度也照样喜笑颜开,用如此纯朴的心情来对待自己的比赛,在我看来,他们应该才是真正在享受比赛的人。
2007年5月2日晴
今天的CS比赛进入了真正较量的阶段,双败赛正式开始。Fnatic一路过关斩将,按照很多人心里剧本设计的一样,他们到达了胜者组的决赛,和刚刚经历过手足相残的wNv.cn争夺胜者组的冠军。此时的Fnatic似乎有些浮躁了,整个做CT的上半场,他们没有一次十分有效的防守,只狼狈的拿到了三分。下半场一开始,扮演进攻方的Fnatic向wNv.cn的防线发动了狂风暴雨般的猛烈攻势但是今天的wNv.cn显得更加的稳重,他们慢慢的将节奏控制在了自己的手里,遏制住了Fnatic进攻态势,将Fnatic打入了败者组。
当然,这对于身经百战的Fnatic来说并不算什么,败者组决赛对阵中国本土强队TR又成为了当时反恐精英战区内的唯一焦点。面对着TR强有力的针对性打法,Fnatic前期显然很不适应。但是老到的经验和放松的心情伴随着Forest的刷屏和Archi的怪异表情,将落后的比分几乎是瞬间连续的扳了回来,实现了逆转。
晚上,在洛飞的带领下,我们来到了Fnatic的WoW战队所在的房间里对他们进行采访,这时,刚见到这支队伍时的那个问题仍然困扰着我,那个熟悉面孔到底是谁呢?洛飞似乎看出了我的疑虑:“这个人你肯定认识,他就Voo。”天哪,我的思维一下子清楚了起来,这位世界上最好的FPS选手之一为什么会在这里?浓厚的兴趣和深深的疑问充斥着我的脑子。交谈中我们得知原来其他的两名队员也是职业的Quake选手,他们来自英国,来这里参加WoW的比赛完全是出于对于这款游戏的喜爱。就像voo说的那样:“我不喜欢Quake,相比之下我更喜欢Quake3和PK,而且挣钱不是我参加比赛的主要目的,因为我觉得WoW的比赛很有意思,所以我就来了。”
2007年5月3日阴
WSVG终于到了尾声,同时也是最精彩的一天,所有三个项目的总决赛都要在让舞台上进行,而Fnatic旗下的两支队伍都挺进了各自项目的决赛。早上九点,CS决赛准时开始,由于是败者组的冠军,所以Fnatic必须赢下两场才能击败wNv.cn,最后,Fnatic在赢下了第一幅地图后以12:16惜败,不得不说是种遗憾。随后,WoW战队也毫无悬念的输给了公认的冠军得主Pandemic。但是我并没有从他们的脸上看到过多的遗憾,更多的是一种满足感,那种超越胜负之上的满足感。
2007年5月11日晴
度过了一个忙忙碌碌的五一,赶完下半月和稿子于有时间坐下来好好的收集一下消息。突然得知刚从合肥回来北京的Fnatic要在今晚于魔都酒吧举行玩家见面会,我没有犹豫,拿上相机拽上还在一旁熟睡的蛋蛋,打车直奔北四环大都酒吧街而去。
魔者酒吧是一间以电子竞技为主题的酒吧,这里每天都有玩家在进行比赛。酒吧的老板得知我们是《里子竞技》的编辑,很热情地执行了我们。不久,Fnatic出现了,换作一身休闲打扮的他们少了几分赛场上面的英姿,多了几分潇洒。在一一介绍后,他们在我们隔壁的包厢坐下,开始一边享受啤酒,一边为Fans们的T恤衫签名。我端了杯啤酒,抓空坐在了dsn的旁边。dsn显得十分害羞,像一个女生一样,完全没有了赛场上的狙击手的生猛,倒是旁边的cArn先打起了招呼。在作过自我介绍后,他们都很兴奋的希望我多写一些他们的事情。我们谈到了dsn的羞涩,谈到了Archi的幽默,而cArn的英文似科还不是很纯熟,fOrest更加自恋的吹捧自己的枪法,当ins谈到了他和nip在Kode5上面夺取冠军时,所有的人都报以了最真挚的嘘声。
好了,拼酒时间开始,ins的酒量我不想再多说什么,我在被灌了两瓶啤酒后又能神志不清的端起了桌上的伏特加当做雪碧一口喝了下去。“恼羞成怒”的我问ins喝没喝过中国的白酒,ins毫不犹豫地说到,那种东西我一次可以喝十杯于是就这样,我和他约好,在下次来中国的时候,我请他喝二锅头,当然是十杯,广大ins的Fans不要心疼哦。
并行通讯自动校表系统的设计 篇7
智能电能表作为企事业单位和居民用电的电能计量装置, 其国内和国际每年的需求量都是非常大的, 作为全球制造业中心, 2010年我国生产的智能电能表数量接近2亿只。近两年来, 随着国家电网公司收回各个省市智能电能表的采购权, 采取统一招标的形式, 国内智能电能表招标和国际招标有了相同的特点:合同数量大、供货时间短和产品价格低。采用传统的智能电能表校表系统, 单人单机单表位进行调试, 而且不同的测试点需要调试人员人工改变负荷大小, 这些都直接或间接造成了企业工时的浪费, 增加了企业的制造成本。
针对这种现状, 提出并行自动校表系统平台, 在思达公司48表位智能电能表测试台体通信接口的基础上, 采用多线程编程技术实现多表位并行通讯进行误差修正。
1 系统方案设计
该系统方案由智能电能表误差测试台、误差调试系统组成。如图1所示:
智能电能表误差测试台根据误差调试系统发送过来的校表参数完成被测表的误差修正, 同时实时显示被测表的误差并把误差数据返回给调试系统。误差调试系统自动完成负载点、校验圈数、校表系数、等参数的设置和被测表超差与否的判断, 操作人员根据完成校验后的提示拆卸被测表并将误差修正后仍不合格的表分离。
2 误差调试程序设计
误差调试程序在操作员完成智能电能表在测试台体上的挂架后自动完成智能电能表的校表任务, 实现了在统一主界面下对单, 三相智能电能表的调试目的。操作界面如图2所示。
误差调试程序主要采用了多线程编程技术和误差的软修正技术, 以此提高电能表的误差调试速度及调试合格率。
2.1 多线程编程
在此自动校表系统中, 校表通讯部分采用了多线程编程技术, 即接收线程和发送线程。接收线程是通过Tcomm控件的OnReceiveData事件来实现, 此事件是在实时监测通讯端口, 只要通讯端口有数据则OnReceiveData事件就被触发, 端口数据就会返回, 此端口返回的数据是测试台体返回的, 我们根据端口返回的数据来判断表位误差是否正确, 从而决定是否重新发送校表命令。发送线程是通过Tthread线程类来创建产生的, 在此发送线程中我们为每一个表位创建了一校表数据发送队列, 通过先进先出原理来实现, 发送线程判断只要此发送队列有校表数据并且发送状态不处于等待状态我们就向端口发送数据。这样我们就实现了通讯多线程, 大大提高了通讯和校表速度。
2.2 软误差修正
软误差修正只针对以下3个点进行修调:1.0的100%Ib, 0.5L的100%Ib和1.0的5%Ib。在软件修调过程中我们程序自动根据调试点来控制切换测试台体, 等台体出误差稳定后如果表的误差范围在±0.1以内我们就认为误差合格, 如果某表误差不在我们容许的范围内, 我们就根据表位误差值和误差调试算法计算一个准确值然后向表位发送校表命令, 一般只修调一次表误差就可达到正确范围内, 如果连续调试三次误差还不在合格范围内我们就提示此表误差不合格。同时把表的误差数据以Excle文件的形式输出。
3 结论
目前智能电能表自动校表系统在实际使用中大大提高了生产效率。一方面, 缩短了工时, 在完成48表位的单相电能表的调试工作所用时间为原来手工调试10%;另一方面, 软误差修调技术的采用使所有表的误差线性趋于一致并且将产品合格率由90%左右提高至95%左右。同时也为供电部门实时了解企业的生产情况提供了基础数据。
参考文献
[1]李峰.IC卡技术在预付费电能表的应用[J].电力建设, 2006, 27 (4) :47-48.
[2]王勇, 吕华, 李冶泉, 等.检定电能表检验装置中存在的问题与改进[J].电测与仪表, 2003, 40 (1) :48-50.
[3]张玫, 曹建荣, 段晨旭.全自动电能表误差校验装置设计[J].电力自动化设备, 2004, 24 (8) :59-61.
[4]张冬泉, 谭南林, 王雪梅, 等著.Windows CE使用开发技术.北京:电子工业出版社[M], 2006.
多核平台间的并行计算系统研究 篇8
随着互联网行业的蓬勃发展,针对不同行业各类应用的数据处理性能要求也在不断提升,直接推动了并行计算系统和分布式处理系统的广泛应用。所谓并行计算系统,就是构建一组并行处理单元,并建立各个处理单元间的交互与协同规则,将数据处理任务分解成多个子任务,并依据并行计算系统各个处理单位的处理能力和运行状态进行任务分派,以达到提高系统数据处理能力、处理规模和处理效率的目的[1]。
如图1所示,并行计算系统的构建主要包含三个部分,即:系统的硬件组成、系统的软件环境和系统的并行程序设计[[22]]。以下针对这三个部分分别展开描述。
2 并行计算系统硬件组成
本文所设计的并行计算系统的硬件设备,由三台并行计算节点compute-0-0、compute-0-1 和compute-0-2 组成,如图2所示。这三个计算节点无主次之分,采用对等通信方式,通过以太网交换机构成局域网络。其中各个并行计算节点CPU:选用不低于Intel Core i7二代运算能力的处理器(四核八线程),支持同步多线程;内存:容量为4G,支持大容量高速运算。
该并行计算系统的存储方式可以认为是一种多层次分布式内存共享并行结构,它同时结合了结点间分布式存储和结点内共享内存的层次结构。在该结构下每个计算节点内的多核CPU间利用内存共享的方式进行并行计算,而各计算节点之间则可采用基于消息传递的方式实现并行处理,其结构如图3所示。
3 多层次的并行编程模型
鉴于并行计算系统的分布式共享内存并行结构特点,和并行处理节点操作系统所提供的软件支持,可以采用MPI+POSIX接口(Portable Operating System Interface of Unix) 的混合编程模型进行并行计算系统的设计与开发。
MPI由一组库函数组成,提供了统一的编程接口,并行程序的各个进程之间通过这些函数进行通信。在标准串行程序设计语言(C、C++)的基础上,再加入实现进程间通信的MPI消息传递函数,就构成了MPI并行程序设计所依赖的并行编程环境[2]。MPI是一个标准,它不属于任何一个产商,不依赖与某个操作系统。MPI支持多种操作系统,包括绝大多数的类Unix、Windows系统和所有主流的并行机[3]。
POSIX接口也称为Pthreads,它是C语言多线程编程接口标准的一种具体实现,主要提供线程管理(创建、连接等)、线程同步(互斥量的创建、销毁和锁定等)和线程间的通信(条件变量的创建、销毁和等待等)。
使用MPI+Pthreads的多层次并行编程模型可以充分利用分布式内存共享结构的特点。上层使用MPI实现并行计算系统节点间的并行处理,下层使用Pthreads实现并行计算系统节点内的多线程并行计算,实现原理如图4所示。
4 并行计算系统的并行程序设计
根据并行计算系统的硬件组成和编程模式,其程序并行设计应包含以下二个层面:
1)单个并行平台内的程序并行设计
根据系统在各个节点上所执行的功能任务,从数据/任务划分、通信同步和任务分配的层面上,讨论程序并行处理设计的实现手段。
2)多个并行节点间的程序并行设计
重点考虑系统多节点间并行处理的任务分解和任务调度方法,目的是根据系统硬件组成和软件环境,对数据处理任务进行有效分解,并通过各节点间的任务合理调度,提升系统数据处理能力。
4.1 单个并行平台内的程序并行设计
单个并行平台内的并行程序设计就是将一个串行程序并行化,分解成若干个子程序块,再分别进行调度,从而让程序并发的在多个核上运行。以构建仿真系统为例,依据并行程序设计的基本思路和设计模式开展研究讨论:
4.1.1 任务划分
根据仿真系统在单个并行平台内执行的功能任务流程,同时,按照软件构件化设计思想,遵循高内聚低耦合的设计理念,可将单个节点所处理的仿真任务按照不同的处理粒度和执行层次划分为一系列阶段分别实施,包括:场景模拟阶段、仿真数据生成阶段、信息处理阶段和显示及结果评估阶段。各个数据处理阶段在进行任务处理时,可依据各阶段任务处理流程,分时顺序执行。该阶段划分任务的特点表现为:
1)系统由多个阶段的不同功能处理协作完成任务;
2)每个处理阶段均对应不同的处理任务,并且各个任务之间按照规定的流程分时顺序执行;
3)各个处理阶段之间可以采用基于消息传递或者内存共享的方式进行参数传递和函数调用。
综上所述,仿真系统在单个并行计算平台内处理时,可按不同任务阶段,基于流水线的方式实现并行计算处理,如图5所示。
4.1.2 任务间的通信、同步和调度
根据仿真系统处理各个阶段相对独立的特点,各个处理阶段通过自主交互的方式进行任务间的通信、同步和调度。
首先,并行处理模块建立一个任务队列,各处理阶段建立属于其自身的任务调度器,用于其内部任务的调度和从任务队列提取任务。各个处理阶段进程中的任务调度器都有一个标识信息,在从任务队列拿到任务数据后,利用数据中的标志信息,与各个处理阶段的标识信息进行匹配,匹配时就激活该处理阶段,并在处理完成后更新处理数据中的标志信息,继而激活后续的处理阶段。
同时,在各个任务阶段(进程)之间的通信和同步,可利用MPI系统实现基于消息传递的点对点通信、全局通信和同步处理;亦可通过共享内存方式,通过参数传递实现通信和同步。
而对于大规模数据处理需求,即可能在某个时间点或时间范围内会出现大量的待处理数据,而如果单个并行处理模块的计算能力不足,造成数据队列的堵塞,就会使系统出现无法预测的问题。此时,可用考虑采用一定的调度算法将实时任务分派到不同的处理节点执行,实现多个并行处理模块间的任务并行处理,从而使系统处理能力得到最大程度优化。
4.2 多个并行节点间的程序并行设计
实时应用的日趋复杂、数据的快速增长和系统规模的不断扩大迫切需要高性能的计算和处理能力的增长。提高系统计算和处理能力的途径主要有两种,一种是依赖于硬件(如电子元器件)的性能;另一种是建立多节点并行处理系统,利用节点的并行计算提高系统的处理能力[4]。同样以构建仿真系统为例,研究讨论多个并行节点间的任务分配和调度策略:
4.2.1 任务划分
对于多个并行处理节点间的并行程序设计,应根据并行系统的硬件组成和软件环境,首先对处理任务进行有效分解,并在实现处理能力提升的基础上,满足系统负载均衡需求。处理任务的划分方法通常可从处理的数据和实现的功能两方面进行考虑。
1)基于处理数据分解的任务划分
数据分解的对象可以是输入数据,计算的输出数据或计算的中间结果。其实现步骤是,首先分解与仿真处理相关的输入数据,并尽可能对数据进行等量划分;其次再将每个计算关联映射到相应的操作节点;当该操作需要别的任务的数据时,就会产生通信要求。在该模式下,结合MPI系统的并行结构如图6所示:
2)基于计算功能分解的任务划分
功能分解也叫计算分解,它主要关注所需执行的计算,将整个计算任务分解成一些小的任务,即各个处理节点使用同一处理软件的不同功能模块,对相同的数据信息进行处理。其目的是尽量开拓并行执行的可能,并行结构如图7所示。
4.2.2 任务调度
1)在数据分解并行模式下,并行处理系统应有一个任务调度中心,在尽量考虑负载均衡、存储空间均衡使用以及较少并行节点间通信的基础上,将分解的数据发送到各个处理节点并行执行。各个节点接受到任务调度中心的数据后开始本节点的局部计算任务,并实施计算节点间的通信,通过流水线方式输出计算结果。
2)在功能分解并行模式下,多个处理模块的并行系统也应有一个任务调度中心,任务调度中心可以根据各个处理节点的处理功能和处理状态,在并行系统内寻找任务执行节点。各个节点在完成对数据的本地处理功能后,向任务调度中心提交任务并发出后续功能操作的执行请求。
5 结束语
本文以单平台并行程序设计和多并行节点间的并行程序设计两种体系结构为例,说明并行计算技术在多核平台间的并行计算体系结构中的必要性和可行性。提出了用并行处理流水线的方法来加速单个平台内的多核系统计算;对于多个并行处理节点,通过将数据处理队列或功能处理队列的划分,同时通过保证不同队列间的时间同步,在不损失精度的前提下实现多平台间的并行处理功能。
综上所述,随着多核/众核芯片的发展以及一系列互联网新兴应用的涌现,并行计算系统正步入面向新处理器结构和新兴应用的优化阶段,如何高效设计并行模型和如何支持各类数据并行处理应用将是未来发展重要方向[5]。
参考文献
[1]陈国栋.基于网络流模型的统计费用流相位解缠并行算法研究[D].成都:成都理工大学硕士论文,2012.
[2]李伟峰.FDTD与MPSTD并行算法在电磁散射中的应用研究[D].长沙:国防科学技术大学硕士论文,2010.
[3]王金花.工程化星载SAR/In SAR数据处理软件设计与实现[D].西安:西安电子科技大学硕士论文,2014.
[4]王磊.雷达系统标准化建模与仿真关键技术研究[D].成都:电子科技大学博士论文,2012.
并行系统 篇9
格子Boltzmann算法, 因其计算简单, 适合处理复杂边界和易于并行, 现已成功地应用于许多流体问题的模拟和建模方面[1]。虽然前人已对格子Boltzmann算法的并行性能进行了一些研究[2,3,4,5,6], 但由于测试性能时基于的流体问题不同, 计算机系统不同 (硬件体系结构、编程实现方式等) , 所得到的结果 (加速比、效率) 也有很大的差异。并且缺少定量化的理论分析, 其结果往往依赖于硬件环境, 不利于指导今后的大规模数值计算。
本文基于顶盖驱动的方腔流[7,8,9], 对格子Boltzmann算法的并行性能作了全面系统的测试与分析, 这为以后编写高效的并行程序提供了理论和实践依据, 能够较大地提高程序的效率, 节省计算时间, 充分利用并行计算机的计算资源。
1格子Boltzmann算法
格子Boltzmann算法是一种模拟流体流动的数值方法, 它不再基于连续介质假设, 而是把流体看成许多只有质量没有体积的微粒组成, 这些微粒可以向空间的若干方向任意流动。它的主要思想就是以简单规则的微观粒子运动代替复杂多变的宏观现象。粒子在每个时间步的运动由两个子步构成, 即:
(1) 碰撞 当多个粒子到达同一网格结点时, 它们按碰撞规则相互作用并改变各自的速度方向;
(2) 流动 每个粒子按其速度方向移动到最近的网格结点。
文献[10]中提出格子Boltzmann算法的单松弛模型, 即:LBGK (Lattice Bhatnagar-Gross-Krook) 模型。目前, LBGK模型是格子Boltzmann算法中最主要的, 也是应用最广泛的模型。LBGK模型抛弃了Fermi-Dirac分布, 采用Maxwell分布, 使得各向同性、Galilean不变性和压力独立于流速等问题都得到满足。Qian等将格子Boltzmann方程中的碰撞项完全线性化, 用单松弛时间逼近碰撞项, 其对应的格子Boltzmann演化方程为:
fα (x + eα, t + 1) = fα (x, t) + ω (fαeq (x, t) -fα (x, t) ) (1)
其中, ω为松弛因子, 为了达到良好的稳定性, 必须在0到2之间, 小于1为亚松弛, 大于1为超松弛; fα为单粒子分布函数, 表示在t时间上, x格点上沿运动有1个粒子的概率; eα称为粒子运动方向或离散速度方向;fαeq为平衡态分布函数, 是流体动力学量 (如密度、动量等) 的函数。
构造LBGK模型的关键是选择恰当的平衡态分布函数feqα。一旦选定了离散速度eα, 只须确定出权系数tp就可得到平衡态分布函数。DnQb系列模型的分布函数为:
其中cs为声速;tp对应粒子速度的权系数;u为宏观速度;ρ为宏观密度。
对于本文所选用的D2Q9和D3Q19模型, 权系数选取如下:
D2Q9 :
D3Q19:
2格子Boltzmann算法的并行化
对于格子Boltzmann算法, 首先就要将整个计算分解成一些小的任务, 尽量开拓并行执行的机会。计算网格的规则划分方式通常有三种, 分别是一维带状 (Slice) 、二维块状 (Block) 或棋盘 (Checkerboard) 、三维盒状 (Box) 划分, 如图1所示。
对于不同域分解方式执行效率的比较, 可以从各个方向上的网格点数的接近程度、各子域的通信量以及总通信量进行分析。
负载均衡对于流体计算来说, 就是每个计算子域包含的网格数尽量接近[11]。假设要求解问题的维度为dim (一般, dim≤3) , np为处理器数, 每维网格数size[i]的权重为:
划分后每个方向上的处理器数p[i], 为了使得划分后各个方向上的网格点尽量接近, 即在约束条件:
下求:
特别地, 当dim=3时,
如果size[0]=size[1]=size[2], 即:
weights[0]=weights[1]=weights[2]=1
则当p[0]=p[1]=p[2]=np1/3, 式 (6) 取得最小值。
流场的划分方式同样也决定了通信量的大小[12]。三维流场可以采用三种方式来进行划分, 下面以三维方腔为例来介绍流场在不同划分方式下的通信量。假设流场的尺寸为M×N×P。
(1) 一维slice划分 将三维流场沿一个方向上划分成若干立方块。
设在x方向划分为np块, 则x方向上每块的长度为M/np, 每块的计算量为总计算量的1/np。对于非边界子块, 它需要与左右两个方向的相邻子块交换的共享数据, 其通信量为2N×P, 总的通信量为 (np-1) ×N×P。在y、z方向上的划分与x方向类似。对于不同的M、N、P的值, 首先在最大的维数上分割所产生的通信量最小, 而当M=N=P时, 在各个方向上划分无异。
(2) 二维block划分 将三维流场沿两个方向划分成若干立方块。
设在x方向划分为px块, y方向划分为py块, 每块的计算量为总计算量的1/ (px×py) 。对于非边界子块, 它需要与周围四个方向上的相邻子块交换边界数据, 其通信量为2 (M/px+N/py) ×P, 总的通信量为 (px-1) × (N×P/py) + (py-1) × (M×P/px) 。
(3) 三维box划分 将三维流场沿三个方向划分成若干立方块。
设在x、y、z各个方向上分别划分成px、py、pz块, 每块的计算量为总计算量的1/ (px×py×pz) 。对于非边界子块, 它需要与六个近邻交换边界数据, 其通信量为2[ (M/px) × (P/pz) + (M/px) × (N/px) + (N/px) × (P/pz) ], 总的通信量为:
(px-1) × (N×P) / (py×pz) + (py-1) × (M×P) / (px×pz) + (pz-1) × (M×N) / (px×py)
因此, 二维和三维划分在工作负载尽量均衡的条件下, 单个子块的通信量以及总的通信量均达到最优。
根据以上理论分析的结果, 考虑三维方腔流流场 (M=N=P≡W) , 在对流场进行一维、二维、三维划分时, 子域的计算量均为W3/np, 其中二维划分时pxblock×pyblock=np, 三维划分时pxbox×pybox ×pzbox =np。子域之间需要交换的信息量分别为2W2、2 (pxblock+ pyblock) W2/np、2 (pxbox+pybox +pzbox) W2/np。若处理器平均计算一个网格点数据所需时间为τc, 子域之间平均传递一个数据所需时间τm, 记
根据上述公式, 三种划分方式计算通信比之间的关系为:
3性能分析
本文所有的测试都是使用GNU C调用MPI来实现的。在本节中, 通过分析实验的结果来验证理论分析得出的结论, 并和文献中的结果进行比较。
3.1不同域分解方式下的并行性能比较
(1) 各个方向上网格点数对并行性能的影响
以三维方腔流问题为例, 采用三维Box划分方法对计算区域进行分解, 选择问题规模为257×257×257, 模型为D3Q19, 迭代步数为1000步, 捆绑阻塞型发送和接收, 在至强3000上使用64个处理器进行测试。
图2中, 同等问题规模, 在相同数量的处理器上运行, 三维划分方式下处理器分配方式的不同导致各子区域网格点数不同。墙上时间随着各个方向上的网格点数的逐渐接近而逐步下降, 当各个方向上的网格点数相等, 当处理器划分为4×4×4,
(2) 三种划分方式对并行性能的影响
Satofuka和Nishioka在1999年对格子Boltzmann算法在二维问题中不同划分方式下 (水平划分、垂直划分和块划分) 的并行性能进行了分析, 采用Fortran90在拟向量机Hitachi SR2201上进行测试, 得出的结论是:垂直划分 (按列) 优于按行及二维块划分。这里我们将问题扩展到三维, 对格子Boltzmann算法在三种划分方式下在负载均衡时的并行加速比进行了分析 (如图3所示) 。
测试条件:流场规模129×129×129, 处理器数np<32, 捆绑阻塞式通信方式。
在处理器数np≤16三种划分方式的加速比差别不大, 尤其是二维和三维划分方式。公式 (7) - (9) 对三种划分方式计算通信比的理论分析在一定程度上能描述总体趋势, 而在实际的测试过程中, 并行加速比受多方面因素的影响, 如在程序运行过程中处理器和磁盘资源不是独占的, 在处理器多于8之后, 二维和三维划分所受影响要比一维划分的大, 从而导致测试结果出现波动。但随着处理器数的增多三维划分比其它两种划分的加速比要高, 并有持续升高的趋势, 这说明流场的多维划分更适合大规模处理器上的并行化计算。
(3) 正方形 (体) 流场下各个方向上划分的块数的排列对并行性能影响
不管采用哪种划分方式, 在满足各个方向上的网格点数尽量接近的条件下, 对于正方形 (体) 网格来说, 处理器个数的排列如二维划分px×py和py×px对性能基本没有影响。C语言是行优先方式存储数组, 如图4所示, 二维数组划分成2×2的块, 假设将其映射到2个处理器上。左图为二维数组分块后在水平划分方式“H”、垂直划分方式“V”下的处理器映射关系;右图是分块后各块在内存空间中的地址排列。
在共享存储模型下, 垂直划分后的数据在地址空间上不连续, 增加了访存开销, 同时在与相邻子域交换边界时需对不连续数据进行特殊处理;而在分布式存储的集群环境下, 数据在局部存储器中连续存储, 垂直划分相对水平划分不会增加额外的访存开销。
本文以二维正方形方腔1025×1025、D2Q9模型、捆绑阻塞通信为例, 比较了一维划分时水平划分和垂直划分在提高性能上的差别。从图5中可以看出, 水平划分和垂直划分的加速比极为接近, 这是因为在问题规模相同, 处理器数也相同时, 各个子域的网格点数均为10252/np, 计算通信比也相同。同时, 分布式存储环境下, 也消除了C语言行优先方式导致的访存开销上的差异。
3.2不同通信方式下的并行性能比较
在划分方式选定之后, 各子域之间产生的数据交换采用什么通信方式, 对程序的并行性能也会产生一定的影响。MPI中最常用的数据传送方式是标准的阻塞 (Blocking) 和非阻塞 (NonBlocking) 两种机制[13]。非阻塞通信方式在某些并行机上可以实现计算与通信重叠, 文献[5]均对格子Boltzmann算法在不同通信方式下的并行加速比作了分析和比较。这里, 以二维方腔流问题为例, 网格规模为1025×1025, D2Q9模型, 迭代步数1000, 从图6中的在至强3000上的实验结果来看, 阻塞通信 (捆绑式MPI_Sendrecv) 和非阻塞通信 (MPI_Isend/recv) 对格子Boltzmann算法在提高算法性能上基本没有什么差别, 原因在于格子Boltzmann算法是计算密集性算法, 通信时间只占用总执行时间的很少一部分, 实验的结果与文献[5]中的结论相吻合。
3.3算法的可扩放性分析
(1) 调整问题规模及处理器数时分析算法的性能
首先对二维流动问题进行分析, 增加问题规模从1292到10252;增加处理器数从2到32个处理器。如图7所示。
固定问题规模, 加速比随处理器数的增加基本呈线性的增长, 增加处理器数虽然提高了执行速度, 但随之而来的通信时间所占的比例也会大幅增加, 计算通信比降低。在129×129的网格上测试时, 当处理器数达到18以后, 加速比的变化幅度降低, 基本维持恒定。Amdahl加速比定律也说明了这一点, 加速比在处理器数增大时会有一个上限。
在增加处理器数量同时增大问题规模的情况下, 加速比会随着的处理器数量的增加而增大。
固定处理器数, 随着问题规模的增加, 加速比呈上升趋势。
(2) 不同体系结构集群上的算法性能
可扩放性是算法和体系结构的结合体。考察格子Boltzmann算法, 在不同体系结构的集群环境 (IWill 刀片服务器集群环境及至强3000 SMP高性能集群) 下的性能, 发现在格子Boltzmann算法同样具有良好的并行性能。图8给出了在IWill 刀片服务器集群环境下的格子Boltzmann算法的加速比。问题规模10252, 捆绑阻塞式通信, 迭代1000步。
4结论
本文以方腔流为例对格子Boltzmann算法的并行性能进行了系统分析, 并从理论上和实验数据上系统地进行了分析对照, 得出以下结论:
(1) 格子Boltzmann算法在不同体系结构的并行机上, 均具有良好的并行性及可扩放性;
(2) 在域分解时, 各个方向上的网格点数尽量接近, 可优化通信时间, 从而加快执行时间;
(3) 高维区域划分技术适合于大规模处理器上的并行计算, 在处理器个数较少时Block划分和Box划分效果相当;
(4) 负载均衡时, 划分时处理器排列方式不会影响格子Boltzmann算法并行性能;
(5) 至强3000, 非阻塞和阻塞两种通信方式下均能获得良好的加速比。
最后, 感谢上海高校网格技术E-研究院提供的实验环境。
并行系统 篇10
目前,并行程序的容错通常是基于检查点技术,再加入故障探测、处理以及自动恢复等辅助功能而形成的完整容错机制,在全局一致性状态下将进程的运行状态进行保存,当程序运行出现故障时,利用保存的进程状态对出错进程进行恢复,使计算任务从检查点处恢复执行,以减少计算损失,提高程序运行的可靠性和可用性。
1 容错相关内容
1.1 检查点技术
检查点技术[3]是指在程序运行时选择适当的时刻设置检查点,进行检查点操作,保存各个进程的运行状态到存储器中,系统如果在随后的运行过程中发生故障,所有进程停止计算卷回到上一次最近的检查点处,利用检查点处保存的正确状态去恢复出错的进程,从该检查点处重新计算。其过程如图1所示,这样可以避免由于故障而导致程序从头重新执行,因而能有效地减少计算损失。
在设置检查点时要保证所有进程处于全局一致性状态[4],所谓全局一致性状态,就是一个并行程序在无错执行期间所有进程的某种状态集合,当某个进程的状态表现为发送了一条消息时,在相对的另一个进程状态必须反映为接收该消息。为了发生故障时正确地卷回恢复,设置检查点时必须保证记录的状态是所有进程处在全局一致性状态下,避免产生多米诺效应。
如图2所示,黑色方块代表各个进程独立设置的检查点,当进程P2发出消息m7后发生故障,则卷回到检查点C处,卷回过程中P2取消发送m7,因此P1必须回退到检查点B以取消对m7的接收。同理P1发送的消息m6无效,进程P0卷回到检查点A处,依次类推,P1卷回到D处,导致P1卷回到E处,P0卷回到F处,最后所有进程又卷回到起点,重新开始计算所有任务,这种现象称为多米诺效应[5]。
1.2 故障
一个系统是容错的[6],是指并行程序在发生逻辑故障的情况下仍然能够正确地运行,故障模型[7]一般分为两类:Byzatine故障模型和Fail-stop故障模型。本文针对Fail-stop故障模型进行研究,可描述为并行计算中进程的挂起或崩溃情况,是并行计算领域常见的硬件故障模型。fail-stop故障可分为节点失效故障和进程失效故障两大类。节点失效故障一旦发生,进程执行中断不对任何请求做出响应,比如进程崩溃故障、系统掉电故障等;而进程失效故障是指某个进程异常退出,其它进程或运行环境无法感知,并行程序成为悬空程序。两种情况的发生都会导致并行程序计算失败,因此,容错系统应及时检测出出错的故障类型,以便系统进行卷回恢复处理。
1.3 卷回恢复
卷回恢复技术[8]把一个并行系统看作是一个应用进程的集合,各进程相互之间通过网络通讯。在进程无错执行到检查点处将进程的运行状态保存到稳定存储器中来实现容错,当出现错误时,一个出错进程可从检查点处所保存的一个状态中进行重启恢复,这样就可以尽量减少计算的损失。在卷回恢复过程中,可以通过进程迁移来实现,将在出错进程上执行的任务迁移到另外一个进程上,执行同样的计算得到结果。还可以重构并行环境,发生故障后,所有进程卷回到上一次最近的检查点处,利用保存的进程状态重构并行环境,重新分配任务进行计算。本文研究的容错系统采用后一种方法,将出错进程剔除,剩余节点机重构并行环境,实现负载平衡重新执行计算任务。
2 容错系统的设计
本MPI并行程序的容错系统可分为三个模块:用户界面模块、总控模块和检测模块。用户界面模块:是容错系统和用户的通讯接口,用户在界面上完成所有准备工作,然后启动容错系统运行并行程序,并且在计算的过程中,系统运行状态会输出显示在用户界面上,方便用户了解各个节点机的状况;总控模块:掌握整个系统的运行过程,系统初始化、调用执行并行程序、负责检查点操作、卷回恢复处理,以及协调检测模块与总控模块的配合;检测模块:监听各个进程运行状况,一旦发现某个进程发生故障则向总控模块报告。
本容错系统的模块结构图,如图3所示。
2.1 检查点的生成
本文针对MPI并行程序而设计的容错系统,设计的出发点是在容错系统上调用并行程序,然后启动后台并行环境执行并行计算。用户必须将并行程序进行粒度划分,使得每一个粒度成为一个.exe的可执行程序,并将所有的.exe可执行程序交给容错系统。用户可以根据MPI的特点以及需要自由地对并行程序进行粒度划分,并规定.exe可执行程序被容错系统调用的顺序。
容错系统通过依次调用所有粒度的.exe可执行程序完成计算任务,将粒度连接点默认为检查点,作为卷回恢复的参考点,在每个检查点处保存进程的运行状态,利用这些状态去恢复出错的故障。此检查点方法可以避免产生多米诺效应,如图4所示,当进程P1或是P2发生故障时,所有进程停止计算任务,卷回到上一次最近的检查点B或是C处,由主进程P0根据故障类型对出错进程进行恢复,重新执行计算任务。
2.2 用户界面模块
用户界面是用户与程序交互的窗口,比较直观,方便用户与容错系统的交流,在界面上用户进行相应的操作,完成所有准备工作,然后启动系统开始运行并行程序,在计算的过程中各个节点机的运行情况会输出显示在用户界面上,方便用户了解各个节点机的状况。用户的准备工作如下:
1)依次保存要运行的.exe可执行程序;
2)存储机器信息文件,用于判断可用于并行计算的节点机以及故障检测的依据;
3)登记用户名和密码,用于并行计算的节点机的用户名和密码。
在容错系统界面上操作以上三个步骤,即可启动系统执行并行计算。
2.3 总控模块
总控模块是容错系统的核心,由主进程调用执行,主要包括三个部分的内容,系统初始化、检查点操作以及卷回恢复处理,系统功能示意图如图5所示。
1)系统初始化。主进程进行初始化工作,获得使用的机器信息和初始化各类系统资源,系统将初始化设定为第一个检查点,在此处保存所有进程运行状态,即得到本局域网中可用于并行计算的所有节点机,并将相关的信息(即可计算节点机的机器名和IP地址)保存在本地磁盘上的检查点文件中,这些信息用于总控模块给符合条件的节点机分配任务执行.exe可执行程序,同时这些信息也是检测模块执行的原始数据。
2)检查点操作。当系统执行到检查点处主进程调用总控模块进行一次检查点操作,任务是保存此时进程的运行状态到本地磁盘上的检查点文件中,用于执行下一个.exe可执行程序为各个进程分配任务以及发生故障时进行卷回恢复处理的依据。进程的运行状态包括节点机的机器名和IP地址,执行并行计算时将任务平均分配给这些机器名对应的节点机,在这些节点机上分别启动一个进程执行并行计算的任务,IP地址用于检测模块监听进程时判断参与计算的进程是否正常运行。
3)卷回恢复。当参与计算的某一节点机上的进程发生故障时,总控模块执行卷回恢复任务,所有进程停止一切计算任务卷回到上一次检查点处,主进程读取该检查点处的检查点文件内容,得到所有符合运行条件的进程,根据所发生的故障类型进行恢复处理,如图4所示,当发生进程失效故障时,重新启动所有进程再一次进行相同的计算任务,相应的,当发生节点机失效故障时,主进程去掉出错进程,为检查点文件中保存的其他剩余进程重新分配任务,然后进行相同的计算。
2.4 检测模块
检测故障是实现并行程序容错的重要环节之一,保证实现容错功能的先决条件,探知发生故障及其类型并交由总控模块判断进行哪种处理。检测模块由守护进程来实现,周期性地检测进程运行状况是否良好,如发生故障及时通知主进程的总控模块。
利用java提供的异常(Exception)处理实现故障检测的功能。除了标准异常,根据容错功能的需要扩展java.lang.Exception类来实现特定的异常,如在表达故障类型时事先定义每种故障发生对应的异常,将某节点机网络不在线定义为节点失效故障,MPI并行环境的wmpiconfig.exe进程不在线定义为进程失效故障。当抛出异常时总控模块得知发生故障,提供了一种在并行程序容错中实现错误捕捉的机制。
3 系统测试
以基于MPI的P-Q法潮流并行程序为测试用例,验证容错系统的有效性。此并行程序被划分为四个粒度,容错系统依次调用四个粒度的.exe可执行程序。实验方法:在执行计算的过程中断开一台用于并行计算的节点机的网络连接制造节点机失效故障,另一种方法是手动杀死一台节点机上的MPI进程制造进程失效故障。测试结果如表1所示。
实验结果表明,本容错系统能够检测出并行程序计算过程中发生的节点机失效故障和进程失效故障,并且能够对故障进行相应的处理,最终得到并行计算的结果,实现了一定范围内的容错功能。
4 总结
本文将容错技术应用到并行计算中,在不修改原并行程序代码的情况下设计出一个容错系统,利用守护进程实现故障的检测及时发现故障,并结合检查点/卷回恢复技术对出错的进程进行恢复,为并行计算的过程提供保障。本文设计的容错系统实现了对除主机之外的其他节点机故障的恢复,一旦主进程发生故障,则所有计算都白费。本文下一步的研究工作是解决此问题,可以将生成的检查点文件进行备份,保存在另外一台计算节点机上,主机发生故障后将此节点机上的进程转为主进程,负责重构并行环境和启动并行程序重新计算。
摘要:为了确保并行程序能够在并行环境下准确地运行,须提高系统的可靠性,将容错技术应用到并行计算中。该文针对MPI并行程序提出一种容错系统的设计方法,采用检查点/卷回恢复技术、并添加故障检测功能,能够有效地处理节点失效故障和进程失效故障,在一定范围内实现容错,为MPI环境下进行大规模计算提供一个可使用的应用模型。
关键词:MPI并行程序,容错,检查点/卷回恢复,故障检测
参考文献
[1]任波,王乘.MPI集群通信性能分析[J].计算机工程,2004,30(11):71-73.
[2]崔丽青,徐炜民.MPI容错问题的研究及实现[J].计算机应用,2003,23(12):236-238.
[3]周恩强,卢宇彤,沈志宇.一个适合大规模集群并行计算的检查点系统[J].计算机研究与发展,2005,42(6):987-992.
[4]万国伟.消息传递系统容错技术研究[D].长沙:国防科学技术大学研究生院,2006:15-21.
[5]薛瑞尼.面向集群系统的MPI并行程序容错技术研究[D].北京:清华大学,2005:12-23.
[6]丁俊,童维勤.群机系统的容错和恢复[J].计算机应用,2001,21(06):90-92.
[7]孙峻朝,王建莹,杨孝宗.故障和容错机制的层次模型[J].计算机工程与应用,1999(10):5-7.
限购与保障并行 篇11
“新国八条”的烟雾还未散尽,“京15条”2月17日紧随其后。2月16日,北京市房地产协会副秘书长陈志从住房保障、税收、信贷、供地、限购等方面对“京15条”作了详细解读。陈志表示:“这个政策非常重要的目标,就是合理引导需求,合理引导消费。”
“限购令”提高外地人购房门槛
2月17日开始,对于已经拥有两套及以上住房的北京户籍家庭,和拥有一套及以上住房的非北京户籍家庭,都将暂停向其销售房屋。非北京市户籍居民家庭购房需五年社保或纳税证明,显然是遏制投资投机。
陈志认为,限购政策的核心是将购房家庭的存量和增量都进行考虑,将有房没房,作为能否买房的充分必要条件,从而抑制投资性购房行为。
“增量和存量都考虑的,这就是这个政策的一个核心点,有房和没房作为可不可以买房的充分必要条件。”陈志指出,实际上,有多套房仍然想买房,是具有明显的投资、投机倾向。
对于非北京户籍家庭,还需要提供有效的暂住证、连续五年在京缴纳社会保险和个人所得税证明,才能在北京购房。陈志特别提醒,是连续五年的社会保险和个人所得税证明。陈志一再强调:“连续五年,一定不能断,不是累计五年,每个月都要做这件事情,有60次这样的记录。”
在执行过程中,如何保证房屋权属信息、个人所得税、社保保险缴纳情况的准确,从而保证公平与公正?
陈志对此解释:“北京市与此相配套的查验系统即将推出,不管本地还是外地居民家庭,在北京是否已有住房、有几套住房、是否有连续五年社保或纳税记录等,都可方便核验。”他强调:“做假没有用,对于提供社会保险,只需要提供身份证号,买房系统、审核系统会自动向社会保险部门查询,在记录当中非常清晰。”
调控细则同时要求,将加强对购房人资格的审核,弄虚作假将受查处,确保限购政策落实到位。
无疑,新一轮楼市调控的重要内容,与北京去年出台的限购措施相比,新限购方案更严格——由限贷升级为限售。为配合限购政策,调控细则重申加强房地产市场的税收征管、切实执行差别化住房信贷政策。
新增保障房100万套
“十二五”新增保障性住房100万套,缓解住房难,成为“京15条”中的一项重要内容。
为切实将房价控制在合理水平,该政策提出:限购令与保障房。
细则规定,“十二五”期间,北京全市计划建设、收购各类保障性住房100万套,比“十一五”翻一番,全面实现“住有所居”目标。在2011年,北京将通过新建、改建、购买、长期租赁等方式筹集保障性住房20万套以上,发放租赁补贴2万户,竣工保障性住房10万套。
同时,北京将全面推进旧城保护性修缮和人口疏解工程,基本完成门头沟采空棚户区等“三区三片”棚户区改造任务,启动京煤集团房山矿区等五片棚户区改造工作。
在令人关注的公共租赁住房方面,北京今年也将全面启动申请、审核、配租工作,年底前实现配租入住1万户以上。为此,除了落实“国八条”中的要求,北京还将积极与金融机构合作,落实公共租赁住房建设和运营中长期贷款。
过去五年,北京保障性住房累计新开工面积3648万平方米,约占同期全市住房总规模的1/3,完成“十一五”规划目标的1.2倍,已累计解决35万户中低收入家庭的住房困难。陈志指出,两个住房体系互补,做好保障房工作,能够降低商品房市场的需求,缓解房价上涨的压力。
并行系统 篇12
在突防作战研究中,详细的导引头状态和回波数据是开展研究的前提和基础。但作为作战装备,导引头没有全面的数据采集功能,仅提供简单的状态指示,无法全面反映自身的工作状态和战场的电磁环境。
为解决这一问题,本文设计了单脉冲雷达并行高速数据采集系统,可以实现发射机、接收机和天线系统数据的实时、同步采集,全面反映导引头的工作状态和回波波形。该系统具有如下特点:
(1)实时采集并同步存储发射信号、和、差通道回波信号、航向控制电压等导引头相关数据;
(2)实现连续长时的精采(连续采集每个PRI的回波);
(3)数据回放,包括波形图和全景视图(PPI);
(4)分布式处理结构,实现采集、处理、显示、存储模块的独立工作,减轻处理器负担,保证数据采集完整、实时显示流畅。
系统的总体框图如图1。
系统在功能上可分为信号转换组件、并行采集组件、同步控制模块和分布式处理模块。雷达工作过程中,发射信号、接收机中频信号等高速信号和天线航控电压(指示天线的朝向)等低速信号经信号转换组件的放大、滤波和去直流偏置后馈送到并行采集组件,后者对以上信号进行采样和预处理,将高、低速信号数据打包后经PCI总线传递到分布式处理模块进行显示、存储和实时处理;同步控制模块负责采集系统与雷达系统协调工作,按照用户需求完成采集和雷达系统的同步控制。
1 信号转换与适配
信号转换组件实现导引头信号的适配与变换。由于不同型号的导引头在工作体制和系统结构上有较大差别,导致中频信号的特征参数,视频信号的幅度、极性,天线方向信号的输出形式等参数都不尽相同。考虑到系统的通用性,信号转换组件采用了模块化设计思路,即将组件的功能进行分块和打包,将联系紧密的功能封装成可更换(调谐)的模块,以满足不同应用场合的需要。
导引头大多采用磁控管产生发射信号,由于器件自身结构和信号产生模式无法对信号进行精确控制,磁控管发射机输出的探测信号在波形和稳定性上都不理想,后期信号处理需要采集发射信号进行比对。发射信号采集的关键问题是功率适配和采样时序。大多数导引头提供发射信号检测接口,一般是通过定向耦合器引出。由于不同雷达的耦合输出功率不一样,因此信号转换组件采用了大功率容量的可变增益结构,并增加了限幅环节保护后级电路。在同步控制组件的协调和导引头同步信号的触发下,组件打开采样波门,采集发射信号。
导引头的天线方向信号一般没有数字形式的输出,而是以航控电压这种模拟信号表示。天线组合输出的航控电压是一个双极性大动态范围的电压信号,并且叠加了较强的纹波,如果直接采样将无法获得准确、稳定的数据。为保证采样质量,在航控电压的引出端采用具有宽电压范围的低噪声放大器ADA4084-2构建二阶有源滤波网络[1]。
该网络完成信号的低通滤波,其截止频率为100 kHz。滤波后的信号经过分压后馈送到AD7663完成信号采集。AD7663是16 bit的双极性ADC,对低速信号有很高的采样精度,并能最大限度地降低纹波的影响[2]。
2 并行采集与预处理
并行采集组件对和、差通道的中频IQ信号、视频检波脉冲和天线航控电压共6路信号进行同步采样,其中航控电压通道为低速采样,其余为高速采样。由于通道多、数据量大,并且采样速率不一致,要满足持续精采的设计要求,必须整体考虑采样频率、存储器容量和PCI端口速率之间的配合关系,并设计高效的FPGA逻辑实现数据的实时预处理。
2.1 采样频率选择
导引头中频频率较高,如果采用常规的奈奎斯特采样,则采样频率接近100 MHz。在这一速率下,5通道同步采集每秒可产生800 MB的数据。大量的数据对系统的缓冲存储能力(RAM容量)和数据传输速度(PCI传输速率)都有较高要求。解决这一问题有两种方案:
(1)缩短采样时长。
这种方案采用传统的奈奎斯特采样,同时缩短采样时长,从而将生成的数据量降低到PCI接口可以承受的水平。这种方案的优势是可以完整采集中频的所有频率成分,最大限度地保留信号特征;缺点是将导致时域探测能力下降:由于采样时域波门变窄,可观测的时域信息少;并且为了采集到敏感数据,需要额外设计波门同步逻辑,根据导引头输出的距离信息自动设置采样波门,增加了系统的复杂度和研制工作量。这一方案实际上是以牺牲时域信息为代价降低数据量。
(2)降低采样频率。
将采样频率降低到奈奎斯特频率以下,从而在保持采样时域波门宽度的同时减小数据量[3]。这一方案的的优点是保证了回波信号时域信息的完整性;不足是信号频谱有重叠,无法保留所有的频率成分,实际上是以牺牲频域信息为代价降低数据量。
由于导引头内部有自动频率跟踪机构,接收机输出的中频信号是一固定频点的窄带信号,因此无需保留(采集)完整的频谱;对脉冲导引头而言,时域波形包含了目标的距离、功率等重要信号,较宽的时域采样波门可以获得更多的战场环境信息(如干扰信号、地物杂波等),有利于后续分析。基于这一考虑,并行采集系统利用带通采样原理,降低采样频率。在中频信号为fc、带宽为B时,采样频率fs可由带通采样公式确定[4]:
带入导引头参数得出带通采样频率范围为(26.6—36)MHz,综合考虑系统数据处理能力和事后分析对波形分辨力的要求,确定采样频率为36 MHz。
2.2 异步数据传输
系统中数据的采集和传输在不同的时钟域进行:数据采样由FPGA内部时钟驱动,而数据的传输则由PCI读时钟驱动;这两个时钟频率不同,并且没有必然的联系,因此FPGA与PCI接口的数据交换是异步方式。协调好数据异步传输中的时序,尽量避免亚稳态造成的传输错误是采样逻辑的难点和重点[5]。
鉴于系统内FPGA提供了足够的存储空间,我们采用FIFO解决异步时钟域的数据传输问题。对于异步FIFO而言,其读信号和写信号处于不同的时钟域,因此如何准确判断FIFO的空和满状态成为逻辑设计的关键[6]。
数据读写过程中,如果FIFO处于空状态,但读取方错误地判断为非空而继续读操作,则将导致下溢出(underflow),读取方将读入一个无效数据,并破坏读写指针的同步;同样,如果FIFO处于满状态,但写入方错误地判断为非满而继续写操作,则将导致上溢出(overflow),写入方将覆盖一个尚未被读取的有用数据,并破坏读写指针的同步。由于空、满标志的产生依赖于读指针和写指针,而这两个指针产生于不同的数据域,极可能由于亚稳态的影响而导致地址的传递发生错误,从而影响读、写状态的正确判断,最终导致数据读写出错。
目前解决读、写地址同步中的亚稳态问题有两种主要技术,即采用格雷码指针和采用握手机制。
格雷码是一种特殊的编码,其相邻的码字之间只有一位发生变化。格雷码相对于普通二进制码的优势是显而易见的:二进制码相邻的码字之间可能有多位发生变化,如由01111111变到10000000意味着所有8位数据均发生了变化,这在亚稳态的异步数据传输中非常容易出错;而格雷码相邻码字之间仅有一位发生变化,极大地降低了数据出错的风险。但值得注意的是,格雷码只能降低数据出错的风险,并不能将之完全消除。这一方式适用于FIFO较小的场合,实现了最大的RAM利用率和传输速度。
握手机制可以完全消除亚稳态造成的传输错误。虽然在空满判断时会消耗更多的时钟周期,但对于采用大容量FIFO的系统而言,这一时延是可以接受的[7]。由于采集系统采用了32768Byte的大容量RAM,故逻辑设计选择了握手机制解决亚稳态传输问题。
如图3,FIFO以双口RAM为中心,采用独立的模块产生读写地址,同步模块则负责按照握手机制实现地址在不同时钟域间的传递。FIFO逻辑的设计难点在于利用握手机制实现地址的无差错传送,实现空、满状态的正确判断,这一逻辑的实现可简要描述如下:
对于空标志的判断,写入方将写指针存放到写地址寄存器,同时向读取方的同步模块发送就绪信号(Wr_ready);读取方收到Wr_ready后从写地址寄存器读取写指针;成功读取后,读取方将写地址传递到空标志产生逻辑进行比较判断,同时向写入方发送完成信号(Wr_ack);写入方收到Wr_ack后用当前的写地址更新写地址寄存器。在写入方收到Wr_ack前,写地址寄存器的内容保持不变,保证了数据传输的正确性。满标志的判断逻辑与空标志相同。
下面分析握手过程对FIFO的读写产生的影响:
握手导致的延迟会降低RAM的空间利用率,但同时保证了数据传输的正确性:当RAM为空时,用于比较的写指针是读取方通过握手机制从写时钟域读取的,由于握手需要消耗多个时钟周期,故写地址已经发生了变化(写入方已经向RAM写入了数据),用于比较的写指针已经不是当前的写地址了,而RAM此时已经为非空;因此读取方将判定RAM为空(即判断错误)而停止读取,同时RAM中也已经有数据,故不会导致下溢出(underflow)。同样,判断RAM是否为满的逻辑也不会导致上溢出(overflow)。握手机制带来的延时可能会导致RAM在还有一定空间时停止写数据,或在还有少量数据时停止读取,这降低了RAM空间的利用率,但保证了传递的数据真实有效。实测显示,系统中RAM容量的平均利用率约为99.973%,其读写速度满足设计要求。
3 分布式系统结构
系统以36 MHz的速率进行并行采样,其数据生成速率接近PCI总线的传输速率极限。实际应用中发现,主机必须持续读取PCI接口才能保证数据的完整传输,而这一方式将导致主机无法完成显示、存储和数据处理等其他任务。为了在保持高速率采集的同时实现数据的实时显示、存储和数据处理,我们采用了广播内存网络。
广播内存网络是一种高性能集线器配置网络,适用于高数据传输负荷的实时网络系统[8]。广播内存技术使得网络内的所有节点共享网络内存,节点写入自身RAM的数据也同时广播到网络的其他节点,各节点间接收数据的延迟不大于10 μs。系统的拓扑结构如图:
如图5所示,系统采用星型拓扑结构,所有节点均直接连接到中心Hub上。采集节点不断地通过PCI接口读取数据并存储到网络内存,由中心Hub负责将数据广播到所有节点。由于写内存的速率极高,因此采集节点有足够的时间读取PCI端口,保证数据读取速度;广播内存的底层软件则保证了其他节点能够同时、准确地收到广播数据,实现所有功能节点的同步工作。
4 测试结果
图6和图7是在采集过程中实时显示的导引头数据,图8是回放数据。从PPI视图可以看出,系统完整地采集了导引头的数据,没有出现丢帧的情况;从波形图可以看出,采集系统36 MHz的采样率可以精细刻画波形细节,满足后续处理要求;系统采用分布式结构同时实现了采集、显示、存储等多项功能,满足设计要求。目前,该系统已应用于部队训练中,取得了良好效果。
参考文献
[1] Analog Devices,Inc.ADA4084-2 Data Sheet Rev A2,012—2
[2] Analog Devices,Inc.AD7663 Data Sheet Rev B,2003—5
[3] Hill G.The benefits of undersampling.Electronic Design,1994
[4] Vaughan R,Scott N,White D.The theory of abndpass sampling.IEEE Trans.on Signal Processing1,991;9:1973—1984
[5]张毅,周成英.高速同步FIFO存储器在数字信号源中的应用.电子技术,2003;(11):48
[6]常胜,黄启俊.基于异步FIFO实现不同时钟域间数据传递的设计.电子设计应用2,004;(8):57—59
[7]黄隶凡,郑学仁.FPGA设计中的亚稳态研究.微电子学,2011;41(2):266—267