手机版

基于OpenMP的多核程序设计(2)

发布时间:2021-06-07   来源:未知    
字号:

科技信息OIT论坛0

SCIENCE&TECHNOLOGYINFORMATION

2010年第9期

在此基础上的一个尺寸为MxN的图像二维离散傅里叶变换由

}l

#pr8smaompparallel指定后面的语句块由每个CPU并行执行。串行版本中的for循环分派到2个CPU中,每个CPU分别对图像中的

m,”)2亩磊磊触,力e和删M

给出。具体实现算法如下:

(1)获取原图像的数据区首地址、图像的高度和宽度,计算进行傅里叶变换的图像宽度和高度及水平、垂直方向的迭代次数。

(2)按行列顺序依次读取数据区的值,存储到开辟的复数存储区。(3)调用一维傅里叶变换函数进行垂直方向的变换。

(4)转换变换结果,将垂直方向的变换结果转存回时域存储区。(5)调用一维傅里叶变换函数进行水平方向的变换。

(6)将计算结果转换成可显示图像,并将坐标原点移至图像中心位置,使图像可以显示整个周期频谱。

二维离散快速傅里叶变换是数字信号处理的重要工具。但是计算量较大运算时间较长在某种程度上限制了使用。为了解决这一矛盾,引入OpenMP,充分利用双核技术从而达到快速运算目的。2.2FFT算法的并行处理

实验平台为DellOptiplexGX630系列双核台式机。采用IntelLakeport--Gi945G芯片组,IntelPen—tiumDCPU2.80GHz,高速缓存1MB,前端总线800MHz,内存HYDualDDR2SDRAM1G。操作系统为MicrosoftWindowsXPProfessional5.1.2600(WinXPRetail).编译器为Micmsoft

Visual

,邕盟

奇、偶数列做一维FFr变换。parallel指令用于为一段代码创建多个线程且并行执行的。与传统的创建线程函数相比,相当于为一个线程入口函数重复调用创建线程函数来创建线程并等待线程执行完。转换变换结果代码部分使用#pra肿aompparallelfor语句将一个for循环分配到多个线程中执行。OpemnP具有运行时为当前计算机自动创建最佳线程数的优异特性,如果在单核处理器上运行代码,则将在一个线程上运行所有代码.如果在双核处理器上运行相同代码,就将在两个线程上运行代码。代码将在其当前计算机上自动调整至最佳状态.以尽可能实现最大加速比。3结语

OpenMP是针对共享地址空间并行计算机提供的并行计算库.目前Microsoft和Borland公司都有相应产品支持OpenMP2.5。使用OpenMP不必写诸如CreateThread之类的线程管理代码.编写多线程程序简便高效,而且OpcnMP提供了丰富的指令,对于同步共享变量、合理分配负载等任务,都提供了有效的支持。不过OpenMP也存在着一些不可避免的缺点:第一.OpenMP主要以预编译指令(#pragnm)实现多线程并行.所以在单核机器上编译的程序在多核机器上运行时无法体现多核的优势;第二,OpenMP对编译器要求比较高,一般要求MicrosoftVisualStudio2005或者需要Intel编译器。不过长远来讲,OpenMP的优势是明显的。Intel技术官曾说“今后的处理器发展是内部优化与集成多核而不是单纯地提升处理器的频率.采用多线程的软件也将会是今后软件的主流。”世界正在进入多处理器时代,OpenMP

Studi02005。并行版本:Microsoft

VisualStudio2005

中通过一个编译开关选项支持OpenMP。在并行版本的项目属性对话框“配置属性”中的“C/c++”语言页里.将OpenMP支持选项改为“是/

(0pe眦P)“就能够支持OpenmP。在二维离散快速傅里叶变换C程序串

行版本中,一维离散快速傅里叶变换主要以列(或者行)的方式进行n变换,f研循环中不存在数据相关的限制,每次循环基本独立。后一次循环不依赖于前面的循环,即满足并行执行的要求.因此在双核平台上可以使用Open--MP指令把一维离散快速傅里叶变换的操作分派到2个CPU上分别执行。下面以垂直方向一维快速傅里叶变换为例.并行计算的主要代码如下:

#pragnmompparallel

库将成为程序员必不可少的工具。≮

【参考文献】

[1]陈国良.并行算法实践[MI.北京:高等教育出版社.2004.

[2]赖建新,胡长军.赵字迪,等,0penMP任务调度开销及负载均衡分析m.计算机工程.2006.18:(sup)58—60.[3]Gmnm,Ananth.Int_,xMuction

2003.

tOparalel

private(i)

int

id=omF--get---thread--num0;

i=id;

computing[M].北京:机械工业出版社,

while(i<w)

QrC(&t[i4h],s4i+h】,hp);

i---i+2:

[4][需,]ShameemAkhter,f美llasonRoberts.李宝峰,等,译.电子工业出版社,

2007.

【责任编辑:汤静】

(上接第62页)应进行周期性的检查。使所有的El常操作都符合用户需求分析中所制定的要求。

严格的说,电子记录和电子签名的使用并不是制药企业所特有的,可以说适合于所有类型的企业。但由于药品的特殊性,需特别提出对于制药企业使用电子记录和电子签名所要关注的应用和管理方法.同时,这也是GMP审计过程中计算机系统验证的一个要点。5权限管理

权限管理是ERP系统中的难点,相对其他模块的设置更复杂和难以维护。除了需要了解业务中的具体操作流程.还要清晰了解流程中可能潜在出现的问题。权限分离是通过在系统中对日常业务流程中分离操作权限来降低产生错误(包括有意无意的)的可能性。它的目标是在设置权限分离以后,确保在系统中没有任何人可以在权限范围内产生错误,并能在不被人发现的情况下掩饰错误。这对于及早发现并阻止公司内恶意的欺诈行为有着非常重要的意义。

权限分离的设计思路通常首先搜寻在业务流程中可能潜在出现的职权滥用和冲突,然后分离流程的步骤并把每一步授权给不同的人员,同时需要确保所授权限与授权人的岗位描述所一致。在日常流程中,公司需没有专职人员对设置的权限分离进行周期性查看修正并由主管部门审核。而由于客观原因缺乏权限分离机制的操作(例如公司

人员数量不够).则需建立额外的审核工作以确保流程中没有出现潜在的问题,并由主管部门审核特别批准。6文档管理

GMP要求在药品生产相关电子设备运行的过程中必须须根据既定的书面规范对其做定期的检查,检验和校准,以保证其性能稳定.同时,检验检查的书面报告必须存档保存。对于日常业务的操作也需要有可追溯性,因此对文档需要做全面的规范管理。

总的来说,在ERP实施过程中对于控制点的管理并不能单独地.孤立地应用某一方案去解决,而是需要交叉地。综合地运用多种策略共同对要点进行管理,例如通过操作和监控。不同模块之间的数据相互检验,权限的审批和复查,文档和报表的记录来做到控制。ERP项目实施没有统一的标准,但希望企业能抓住其要点并由此展开,实施出一套能

够运营流畅,并能符合专业审计要求的系统来满足企业需求。l,’

作者简介:戴鼻.上海交通大学信息安全学院项目管理专业在读硕士研究生,三德士(中国)制药有限公司IT经理。

[责任编辑:翟成梁】

基于OpenMP的多核程序设计(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)