当前位置:文档之家› 多核计算机上并行计算的实现与分析

多核计算机上并行计算的实现与分析

多核计算机上并行计算的实现与分析
多核计算机上并行计算的实现与分析

 第18卷第3期

2009年9月

淮海工学院学报(自然科学版)

Journal of Huaihai Institute of Technology (Nat ural Science Edition )Vol.18 No.3Sep.2009

DOI :10.3969/j.issn.167226685.2009.03.009

多核计算机上并行计算的实现与分析

王顺绪

(淮海工学院理学院,江苏连云港 222005)

摘 要:研究多核计算机上OpenM P 编程模式和M PI 消息传递机制编程模式的运行效能,并在双

核和四核计算机上,分别使用传统算法和并行算法计算了和式

∑n

i =1

i 和n ×n 矩阵的乘积以及矩阵

的Cholesky 分解,数值试验结果表明,传统的串行程序只能利用二分之一的双核CPU 资源和四分

之一的四核CPU 资源,而并行程序在双核和四核计算机上的并行效率很高,并且OpenM P 编程模式的运行效率比M PI 编程模式的运行效率稍高。关键词:多核编程;OpenMP ;M PI 中图分类号:TP338;O246 文献标识码:A 文章编号:167226685(2009)0320030204

Implementation and Analyses of Parallel Computation on

Multi 2core Computers

WAN G Shun 2xu

(School of Science ,Huaihai Institute of Technology ,Lianyungang 222005,China )

Abstract :Parallel programming in Fort ran using OpenM P and M PI on multi 2core comp uters are st udied.The serial and concurrent experiment s of matrix 2mat rix multiplication ,summation of 1+2+…+n and Cholesky factorization are implemented on 22core and 42core comp uters respec 2tively.Experiment result s show t hat t he serial p rogram can only use one core of multi 2core com 2p uters.Meanwhile ,t he parallel efficiency of the program using OpenMP and MPI is very high ,and the efficiency of the program using OpenMP is a little higher than that of the program using MPI.K ey w ords :multi 2core programming ;OpenMP ;M PI

20世纪90年代前,国内只有为数不多的几个重要部门才拥有并行计算机。PVM (parallel virt u 2al machine )和M PI (message passing interface )的出现给需要使用并行计算的科技工作者带来了方便,人们可使用这两个软件在实验室建立并行环境。

由于单核CPU 速度提升的局限性,提升计算机速度的主要途径是使用多核CPU 。多核CPU 的普及对数值计算的发展产生了历史性的改变,由于多核和单核CPU 设计理念的不同,单核CPU 上运

行良好的软件或者以前的算法不能使多核CPU 发挥其最大效能,要想高效利用多核CPU ,就必须改进原有的老程序,融进并行算法的思想。著名的软件开发专家SU T TER H 在文献[1]中指出,并行计算的时代终于到来,在这个时代人们购买新的计算机是并行机,这需要人们转换观念,将编程思想从“串行”转变到“并行”。并行算法和多核编程已受到人们普遍的关注,高等学校及研究机构是并行编程或多核编程的强力推动者[223]。

3收稿日期:2008212216;修订日期:2009207204

基金项目:淮海工学院科研经费资助项目(KQ08031);淮海工学院教学改革立项课题(5509002)

作者简介:王顺绪(1962-),男,江苏连云港人,淮海工学院理学院副教授,主要从事计算数学方面的研究,(E 2mail )wsxlyg @https://www.doczj.com/doc/cb18059802.html, 。

1 多核处理器简介

111 多核处理器的诞生

最近几年,AMD 和Intel 公司推出了拥有大型机品质的用于个人计算机的多核CPU 。多核处理器将多个执行核嵌入到同一个处理器芯片内,这些核是相互独立的处理器,它们可以共享或单独拥有自己的Cache ,并共享一个主存,每个指令都具有一个完整的硬件执行环境,线程间实现了真正意义上的并行[4]。多核CPU 结构如图1和图2所示[4]

112 多核计算机上实现并行计算的一般方法

可以使用M PI 在多核计算机上实现并行计算,但简单有效的多核编程方法是使用OpenM P +For 2t ran 或OpenM P +C 的方法设计并行程序。充分使

用!$OM P paralle do ,!$OM P end parallel do 并行引导语句,对一些大型复杂的问题,还要使用其它的OpenM P 并行引导语句,同时要考虑单元的存取冲突问题。在编程的细节问题上可以参考相应的

用户手册,OpenM P +Fort ran 的编程问题可参阅文

献[5]。

113 多核处理器中并行计算加速比分析

一个算法使用多核的效果可以用加速比

S p =t 1/t p

(1)

来衡量,其中:t 1代表最佳串行计算时间,t p 代表使用p 个核并行计算的时间。实际操作时,t 1也往往表示使用一个核计算的时间。文献[4]根据式(1)和Amdahl 定律讨论了拥有多核CPU 计算机的并行计

算加速比,假设算法中串行部分的比例为s ,处理器的核数为p ,在不考虑系统开销的情况下,多核处理器上并行算法的理论加速比为

S ′p =

1

s +(1-s )/p

,(2)

S p 和S p ′的差距反映系统的性能和算法的优劣。

下面通过算例,讨论多核环境下串行程序和并行程序的执行情况,通过加速比分析多核计算机的并行计算效果,并对OpenM P 编程模式和使用MPI 编程模式的效果作了比较。

2 多核计算的几个算例

数值试验的环境是两台多核计算机,一台是主频为2GHz ,内存1G B 的双核计算机,另一台是主频为213GHz ,内存2G B 的四核计算机。对数列求和,采用的算法是每个核计算和的一个部分,理论加速比S p ′=p 。对矩阵乘积而言,其理论加速比S p ′

=p 。通过这两个算例的实际加速比和理论加速比

大小的比较可以看出多核CPU 并行计算的实际效果。算法1至3分别描述求和运算的串行算法、OpenM P 通讯机制的求和算法和M PI 并行模式下

的求和算法,算法4到6描述的是矩阵乘积的串行算法、OpenM P 通讯机制的矩阵乘法和M PI 分布式并行模式下矩阵相乘算法,所有算法都使用Fort ran 语言代码描述,其中的Nproc 代表创建的进程或线程数。

211 归约求和算例

算例1分别使用串行编程模式、OpenM P 编程

模式以及M PI 编程模式计算

∑n

i =1

i ,实现该计算的3

种编程模式的算法如算法1、算法2和算法3。

算法1(串行的归约求和算法)

for i =1,n sum =sum +i 3110

1

3 第3期王顺绪:多核计算机上并行计算的实现与分析

end for

算法2(使用OpenMP的归约求和算法) CALL omp-set-num-t hreads(Np roc) !$OM P parallel do reduction(+:sum) do i=1,n

Sum=Sum+i3110

enddo

!$OM P end parallel do

算法3(使用MPI的归约求和算法)

DO I=M YID+1,N,Nproc

Sum1=Sum1+i3110

ENDDO

CALL M PI-REDUCE(SUM1,SUM,1,mpi-do uble-precision,M PI-SUM,0,

MPI-COMM-WORLD,IEE)

在四核计算机上,使用双精度计算sun,分别使用算法1、算法2和算法3作计算,在n=109时并行计算的结果如表1和表2所示,其中t O,S Op,ηO,t M, S Mp和ηM分别代表OpenM P环境和MPI环境下的并行计算时间、加速比和并行效率,其中S Op和S Mp 的含义见式(1),而ηO=S Op/p,p代表本次计算中使用的执行单元的数量。

表1 双核计算机上求和并行计算加速比和效率

T able1 Speedup and p arallel eff iciency of summ ation on du al2core computers

p t M/s S MpηM/%t O/s S OpηO/% 14160801535 22156911798917013281163181155

表2 四核计算机上求和并行计算加速比和效率

T able2 Speedup and parallel eff iciency of summ ation on42core computers

p t M/s S MpηM/%t O/s S OpηO/% 14101501430 2210191198999143012161199199153 3113482197999128011442198699153 4110523181795141011093194598162

算法1的运行时间是31891s,从任务管理器中看出,算法1只利用了25%的CPU资源,即只使用了四核中的一个。求和算法在OpenM P+Intel Fort ran环境下的加速比几乎是完美的,并且单核运行时间也比其它环境下单核运行时间少,原因是In2 tel Fort ran编译器本身的特性决定的。

212 矩阵乘积算例

算例2分别使用串行算法、OpenM P编程模式以及M PI编程模式计算n阶的矩阵A和B的乘积,实现该计算的3种编程模式的算法如算法4、算法5和算法6。

算法4(矩阵乘积的串行算法)

For i=1,n

For j=1,n

For k=1,n

 c(i,j)=c(i,j)+a(i,k)3b(k,j)

Enddo

Enddo

Enddo End

算法5(OpenMP环境下矩阵乘积并行算法) CALL omp-set-num-t hreads(Np roc)

!$omp parallel

!$OM P do reduction(+:cc)

do i=1,n

do j=1,n

do k=1,n

cc=cc+a3b

enddo

c(i,j)=cc

enddo

enddo

!$OM P end do

!$omp end parallel

算法6(MPI环境下矩阵乘积算法)

 n1=n/n p

If(myid==0)t hen

Do i=1,n p-1

23淮海工学院学报(自然科学版)2009年9月

Call mpi-send(b(1,i3n1+1),n13n,mpi-real,i,i,mpi-comm-world,ie)

Enddo

Endif

If(myid/=0)t hen

Call mpi-recv(b(1,myid3n1+1),n13n, mpi-real,0,myid,mpi-comm-world,stat us,ie) Endif

Do i=1,n

Do j=myid3n1+1,myid3n1+n1

Do k=1,n

C(i,j)=c(i,j)+a(i,k)3b(k,j)

Enddo

Enddo

Enddo

在n=500时分别使用算法4到6计算A×B,并行计算的结果如表3和表4所示,在四核计算机上矩阵乘积串行程序的运行时间是11297s,而且从任务管理器中可以看出,串行程序同样只使用了四核中的一个,算法5的效果最好。

表3 双核环境下矩阵乘积并行计算加速比和效率

T able3 Speedup and parallel eff iciency of m atrix multiplication on du al2core computers

p t M/s S MpηM/%t O/s S OpηO/% 11145001563 2017571191685177013121180590122

表4 四核环境下矩阵乘积并行计算加速比和效率

T able4 Speedup and parallel eff iciency of m atrix multiplication on42core computers

p t M/s S MpηM/%t O/s S OpηO/% 11127601484 2016391199799184012431199299159 3014282198199138011632196998198 401354316059011101125318729618

213 OpenMP环境下矩阵的Cholesky分解在四核计算机上用OpenM P+Fot ran对正定矩阵A进行Cholesky分解。当矩阵阶数较高时,计算量很大,于是人们考虑使用并行计算,分布式计算效果往往不佳,而简单地使用OpenM P的编程思想。在串行程序中简单加上并行语句就可使效果得到很大提升。n=3000时串行Cholesky分解的计算时间是46173s,使用双核计算的时间是31138s,四核计算的时间是25121s。该算例说明对一些串行问题,只要稍加修改就可获得满意的多核并行效果。

3 结语

通过以上算例在各种环境下的运行结果可以看出,拥有多核CPU的计算机实际上是并行计算机,串行程序只使用了多核CPU的一个核,由于多核CPU拥有共享主存,因此对于细粒度的并行算法使用OpenM P的编程模式更合适,对粗粒度的并行算法使用MPI的编程模式比较合适。

参考文献:

[1] SU T TER H,L ARUS J.Software and the concurrency

revolution[J].Computer and Information Science,

2005,3(7):54262.

[2] 薛巍.多核课程建设[J].计算机教育,2007(11):402

43.

[3] 陈天洲.多核课程建设探索与实践[J].计算机教育,

2007(3):51255.

[4] A KH TER S,ROB ER TS J.多核程序设计技术[M].李

宝峰,富弘毅,李韬,译.北京:电子工业出版社,2007.

[5] 周振红,徐进军,毕苏萍,等.Intel Visual Fortran应用

程序开发[M].郑州:黄河水利出版社,2006.

(责任编辑:吉美丽)

33

 第3期王顺绪:多核计算机上并行计算的实现与分析

MSC_MARC单机多核并行计算示例教学文案

M S C_M A R C单机多核并行计算示例

MSC MARC2011单机多核并行计算示例 并行计算可以有效利用本地或者网络计算机计算资源,提高计算效率,特别是针对一些计算规模相对较大的问题。本文作为MARC单机多核并行计算的一个示例。 测试平台:WIN7 64Bit MARC2011 0、提前设置 将电脑名字最好改为administrator,或者通过修改电脑名称,会使user和display后面的名子保持一致。 改电脑名字: 计算机右键—属性—更改设置—更改—计算机名

1、启动多核运算 打开dos界面输入 (1)D:按enter回车键(d为marc所在盘)

(2)cd+空格+ D:\MSC.Software\Marc\2010\marc2010\intelmpi\win64\bin按 enter回车键 (3)ismpd+空格+ –install 按enter回车键 (4)出现上图中的 关闭窗口。 2、基本配置 (1)在MARC安装目录下的intelmpi\win64\bin目录(32Bit计算机选择 win32文件夹),运行wmpiregister.exe. (2)输入用户名(登陆windows的账户名,通常为administrator)及密码(若密码为空,需要重新设置一个密码),点击register按钮,下面的对话框中会出现“Password encrypted into the Registry”信息。

(3)运行ismpd.exe,或者到dos提示符下,进入该目录,运行ismpd -install。 假如提示都正常的话,到此即完成进行并行计算的前提条件了。 3、测试 (1)在MARC安装目录下的intelmpi\win64\bin目录(32Bit计算机选择win32文件夹),运行wmpiconfig.exe (2)依次点击下面1和2.

汽车成功案例

汽车成功案例 安全性问题 竞争优势 全球汽车工业对汽车安全性越来越重视,与安全强制法规相关的试验也在大量增加。目前碰撞安全问题在碰撞前、碰撞中和碰撞后阶段同时展开研究。在碰撞前阶段利用主动避撞系统;在碰撞中阶段利用车身结构、气囊展开、安全带张紧等措施减小伤害;在碰撞后阶段,主要关心油箱是否破裂以防止爆炸或起火。MSC.Software虚拟产品开发设计能够对每一个阶段进行设计研究。 碰撞前阶段 避免碰撞发生当然是车辆交通中最有效的降低伤亡的方法。而车辆的行为,例如车辆打滑、侧翻、或者车轮遇到冰路面将会发生何种状况等等可以利用虚拟样机来预测。在ADAMS/Car中结合多刚体和控制的仿真可以模拟从主动悬架到ABS制动器等系统的试验来增加主动安全性。通过同步调整机械、控制系统对车辆进行优化,可以大大缩短设计周期。 碰撞中阶段 一旦碰撞不可避免,气囊展开和座椅安全带的预张紧就成为减小伤害的关键因素,虚拟产品开发能够对这些系统进行优化。气囊展开可以利用SimOffice中的MSC Dytran,安全带约束系统的力可以利用多体仿真分析软件。在样车建造和法规试验之前进行虚拟试验可以大大地降低开发费用。法规试验中车辆各种性能可以用SimOffice中提供的有限元方法来进行精确地预测和研究。

碰撞仿真流程通常需要大量人力,管理仿真产生的海量数据也是一个挑战。模型组装、质量检查、定义工况、报告准备等方面如果引入流程自动化和数据管理则可以节省大量的人力。MSC.Software是领先的流程管理和自动化工具供应商,其产品MSC SOFY 和MSC SimManager都提供了汽车碰撞流程自动化的环境。将工作流程确定下来并进行客户化配置后,软件工具可以自动地生成代码来指导用户完成工作流程。例如,德国宝马(BMW)公司利用MSC SimManager建立碰撞仿真自动化流程,管理海量仿真数据,并且可以和供应商合作,使供应商可以上载各自相关的部件。 LSTC公司的领先的碰撞求解器LS-Dyna可以通过MSC Nastran(Sol700)的标准格式来调用。因此,适撞性和显著非线性问题都可以采用和NVH部门同样的模型,这样通过不同部门的协作可以节省大量的时间和费用。 碰撞后阶段 避免碰撞后起火取决于供油系统的完整性,该项安全要求 已在美国安全法规FMVSS301中有明确规定。车辆碰撞 后的燃油泄漏必须避免,MSC.Dytran采用拉格朗日和欧 拉技术,可以模拟碰撞中和碰撞后油箱的液固作用、结构 大变形、结构接触等问题。 MSC.SimManager也可以集成到碰撞后开发流程中,一 级供应商TI汽车公司采用MSC.SimManager管理油箱 开发过程中的冲击、压力真空、跌落、下陷等试验。 车辆动力学问题 矛盾 汽车工业需要在开发过程中减少时间和费用,同时推出创 新的产品。当前比较通用的策略是利用通用的开发平台、 共享部件开发众多系列车型。这就导致出现两个相互矛盾 的目标:一个是新系统的开发,另一个是通过共用平台和 零部件减少系统的变型。借助于虚拟产品开发可以有效地 满足这两个目标。

并行计算1

并行计算 实 验 报 告 学院名称计算机科学与技术学院专业计算机科学与技术 学生姓名 学号 年班级 2016年5 月20 日

一、实验内容 本次试验的主要内容为采用多线程的方法计算pi的值,熟悉linux下pthread 形式的多线程编程,对实验结果进行统计并分析以及加速比曲线分析,从而对并行计算有初步了解。 二、实验原理 本次实验利用中值积分定理计算pi的值 图1 中值定理计算pi 其中公式可以变换如下: 图2 积分计算pi公式的变形 当N足够大时,可以足够逼近pi,多线程的计算方法主要通过将for循环的计算过程分到几个线程中去,每次计算都要更新sum的值,为避免一个线程更新sum 值后,另一个线程仍读到旧的值,所以每个线程计算自己的部分,最后相加。三、程序流程图 程序主体部分流程图如下:

多线程执行函数流程图如下: 四、实验结果及分析

令线程数分别为1、2、5、10、20、30、40、50和100,并且对于每次实验重复十次求平均值。结果如下: 图5 时间随线程的变化 实验加速比曲线的计算公式类似于 结果如下: 图5 加速比曲线 实验结果与预期类似,当线程总数较少时,线程数的增多会对程序计算速度带来明显的提升,当线程总数增大到足够大时,由于物理节点的核心数是有限的,因此会给cpu带来较多的调度,线程的切换和最后结果的汇总带来的时间开销较大,所以线程数较大时,增加线程数不会带来明显的速度提升,甚至可能下降。 五、实验总结

本次试验的主要内容是多线程计算pi的实现,通过这次实验,我对并行计算有了进一步的理解。上学期的操作系统课程中,已经做过相似的题目,因此程序主体部分相似。不同的地方在于,首先本程序按照老师要求应在命令行提供参数,而非将数值写定在程序里,其次是程序不是在自己的电脑上运行,而是通过ssh和批处理脚本等登录到远程服务器提交任务执行。 在运行方面,因为对批处理任务不够熟悉,出现了提交任务无结果的情况,原因在于windows系统要采用换行的方式来表明结束。在实验过程中也遇到了其他问题,大多还是来自于经验的缺乏。 在分析实验结果方面,因为自己是第一次分析多线程程序的加速比,因此比较生疏,参考网上资料和ppt后分析得出结果。 从自己遇到的问题来看,自己对批处理的理解和认识还比较有限,经过本次实验,我对并行计算的理解有了进一步的提高,也意识到了自己存在的一些问题。 六、程序代码及部署 程序源代码见cpp文件 部署说明: 使用gcc编译即可,编译时加上-pthread参数,运行时任务提交到服务器上。 编译命令如下: gcc -pthread PI_3013216011.cpp -o pi pbs脚本(runPI.pbs)如下: #!/bin/bash #PBS -N pi #PBS -l nodes=1:ppn=8 #PBS -q AM016_queue #PBS -j oe cd $PBS_O_WORKDIR for ((i=1;i<=10;i++)) do ./pi num_threads N >> runPI.log

第二章计算流体力学的基本知识

第二章计算流体力学的基本知识 流体流动现象大量存在于自然界及多种工程领域中,所有这些工程都受质量守恒、动量守恒和能量守恒等基本物理定律的支配。这章将首先介绍流体动力学的发展和流体力学中几个重要守恒定律及其数学表达式,最后介绍几种常用的商业软件。 2.1计算流体力学简介 2.1.1计算流体力学的发展 流体力学的基本方程组非常复杂,在考虑粘性作用时更是如此,如果不靠计算机,就只能对比较简单的情形或简化后的欧拉方程或N-S方程进行计算。20 世纪30~40 年代,对于复杂而又特别重要的流体力学问题,曾组织过人力用几个月甚至几年的时间做数值计算,比如圆锥做超声速飞行时周围的无粘流场就从1943 年一直算到1947 年。 数学的发展,计算机的不断进步,以及流体力学各种计算方法的发明,使许多原来无法用理论分析求解的复杂流体力学问题有了求得数值解的可能性,这又促进了流体力学计算方法的发展,并形成了"计算流体力学" 。 从20 世纪60 年代起,在飞行器和其他涉及流体运动的课题中,经常采用电子计算机做数值模拟,这可以和物理实验相辅相成。数值模拟和实验模拟相互配合,使科学技术的研究和工程设计的速度加快,并节省开支。数值计算方法最近发展很快,其重要性与日俱增。 自然界存在着大量复杂的流动现象,随着人类认识的深入,人们开始利用流动规律来改造自然界。最典型的例子是人类利用空气对运动中的机翼产生升力的机理发明了飞机。航空技术的发展强烈推动了流体力学的迅速发展。 流体运动的规律由一组控制方程描述。计算机没有发明前,流体力学家们在对方程经过大量简化后能够得到一些线形问题解读解。但实际的流动问题大都是复杂的强非线形问题,无法求得精确的解读解。计算机的出现以及计算技术的迅速发展使人们直接求解控制方程组的梦想逐步得到实现,从而催生了计算流体力

有限元仿真技术的发展及其应用

有限元仿真技术的发展及其应用 许荣昌 孙会朝(技术研发中心) 摘 要:介绍了目前常用的大型有限元分析软件的现状与发展,对其各自的优势进行了分析,简述了有限元软件在冶金生产过程中的主要应用领域及其发展趋势,对仿真技术在莱钢的应用进行了展望。 关键词:有限元仿真 冶金生产 发展趋势 0 前言 自主创新,方法先行,创新方法是自主创新的根本之源,同时,随着市场竞争的日益激烈,冶金企业的产品设计、工艺优化也由经验试错型向精益研发方向发展,而有限元仿真技术正是这种重要的创新方法。近年来随着计算机运行速度的不断提高,有限元分析在工程设计和分析中得到了越来越广泛的应用,比如,有限元分析在冶金、航空航天、汽车、土木建筑、电子电器、国防军工、船舶、铁道、石化、能源、科学研究等各个领域正在发挥着重要的作用,主要表现在以下几个方面:增加产品和工程的可靠性;在产品的设计阶段发现潜在的问题;经过分析计算,采用优化设计方案,降低原材料成本;缩短产品研发时间;模拟试验方案,减少试验次数,从而减少试验成本。与传统设计相比,利用仿真技术,可以变经验设计为科学设计、变实测手段为仿真手段、变规范标准为分析标准、变传统分析技术为现代的计算机仿真分析技术,从而提高产品质量、缩短新产品开发周期、降低产品整体成本、增强产品系统可靠性,也就是增强创新能力、应变能力和竞争力(如图1、2) 。 图1 传统创新产品(工艺优化)设计过程为大循环 作者简介:许荣昌(1971-),男,1994年毕业于武汉钢铁学院钢铁冶金专业,博士,高级工程师。主要从事钢铁工艺技术研究工 作。 图2 现代CA E 创新产品(工艺优化)设计过程为小循环 1 主要有限元分析软件简介 目前,根据市场需求相继出现了各种类型的应用软件,其中NASTRAN 、ADI N A 、ANSYS 、 ABAQUS 、MARC 、MAGSOFT 、COS MOS 等功能强大的CAE 软件应用广泛,为实际工程中解决复杂的理论计算提供了非常有力的工具。但是,各种软件均有各自的优势,其应用领域也不尽相同。本文将就有限元的应用范围及当今国际国内C AE 软件的发展趋势做具体的阐述,并对与冶金企业生产过程密切相关的主要有限元软件ANSYS 、AB AQUS 、MARC 的应用领域进行分析。 M SC So ft w are 公司创建于1963年,总部设在美国洛杉矶,M SC M arc 是M SC Soft w are 公司于1999年收购的MARC 公司的产品。MARC 公司始创于1967年,是全球首家非线性有限元软件公司。经过三十余年的发展,MARC 软件得到学术界和工业界的大力推崇和广泛应用,建立了它在全球非线性有限元软件行业的领导者地位。随着M arc 软件功能的不断扩展,软件的应用领域也从开发初期的核电行业迅速扩展到航空、航天、汽车、造船、铁 道、石油化工、能源、电子元件、机械制造、材料工程、土木建筑、医疗器材、冶金工艺和家用电器等,成为许多知名公司和研究机构研发新产品和新技术的重要工具。在航空业M SC N astran 软件被美国联邦航空管理局(F AA )认证为领取飞行器适 13

多核编程与并行计算实验报告 (1)

多核编程与并行计算实验报告 姓名: 日期:2014年 4月20日 实验一 // exa1.cpp : Defines the entry point for the console application.

// #include"stdafx.h" #include #include #include #include using namespace std; void ThreadFunc1(PVOID param) { while(1) { Sleep(1000); cout<<"This is ThreadFunc1"<

实验二 // exa2.cpp : Defines the entry point for the console application. // #include"stdafx.h" #include #include using namespace std; DWORD WINAPI FunOne(LPVOID param){ while(true) { Sleep(1000); cout<<"hello! "; } return 0; } DWORD WINAPI FunTwo(LPVOID param){ while(true) { Sleep(1000); cout<<"world! ";

PCC性能改进

淮阴工学院 毕业设计外文资料翻译 学院:建筑工程学院 专业:土木工程房建方向 姓名:王玮 学号:1091401422 外文出处:MBTC DOT 3022 August 16 2012 附件: 1.外文资料翻译译文;2.外文原文。 指导教师评语: 签名: 年月日

以纳米技术为基础对硅酸盐 水泥混凝土的性能改进——第一阶段 Dr. R. Panneer Selvam ,Dr. Kevin Hall ,Sayantan Bhadra 摘要:对硅酸盐水泥混凝土(PCC)的纳米结构的基本认识是实现高性能和可持续性相关重大突破的关键。MBTC-研究(MBTC 2095/3004)使用分子动力学(MD)提供了对于水化硅酸钙(CSH)结构的新的理解(提供PCC强度和耐久性的主要成分);然而,由于MD方法能够考虑的原子数量,这项研究是有局限性的,特别是关于PCC中纳米水平上的力学性能。在这篇论文中为了断定CSH凝胶结构提出了离散元素法(DEM),报告了三个阶段中第一阶段所取得的进展。给出了DEM研究所用的现有的免费软件和商法典。制定了一种内部的DEM规范,对粘性材料采用压痕式加载。样本模型计算合理的说明了DEM规范的发展及应用。 关键词:纳米技术,硅酸盐水泥混凝土,离散单元法 第一章:引言 混凝土是使用最多的建筑材料,同时也是科学了解最少的材料。混凝土的寿命由于收缩裂缝、拉伸裂缝等受到限制。这主要是由于水泥浆复杂的无定形的结构。对于铜或铁来说很容易从实验中发现原子结构。由于超过5个不同的原子结合在一起形成水泥浆或CSH(Murray等人,2010& Janikiram Subramaniam等人2009),很难从实验来了解原子结构。对硅酸盐水泥混凝土(PCC)的纳米结构的基本认识是实现高性能和可持续性相关重大突破的关键。最近通过MBTC 2095/3004项目,使用分子动力学(MD)得出CSH原子结构的一些理解。Selvam教授和他的团队(2009 -2011)使用分子动力学(MD)建模提出了可能的CSH原子结构。从纳米水平到宏观水平进一步的相关性能的研究由于考量纳米长度变化时需要考虑的原子数量的限制而受到局限。 Nonat(2004)和Gauffinet(1998)等人观察到C-S-H凝胶有片晶型形态,薄片的大小约为60 ×30×5nm。从Dagleish拍摄的AFM图像(如图1.1)看出,CSH纤维可能的大小为60 nm x 300μm。为了理解这些纤维之间的相互作用,需要的计算尺

22进程、线程与并行计算(windows 编程技术)

第22章 进程、线程与并行计算 进程是正在运行的程序,线程是轻量级的进程。多任务的并发执行会用到多线程(multithreading ),而CPU 的多核(mult-core )化又将原来只在巨型机和计算机集群中才使用的并行计算带入普通PC 应用的多核程序设计中。 本章先介绍进程与线程的概念和编程,再给出并行计算的基本概念和内容。下一章讨论基于多核CPU 的并行计算的若干具体编程接口和方法。 22.1 进程与线程 进程(process )是执行中的程序,线程(thread )是一种轻量级的进程。 22.1.1 进程与多任务 现代的操作系统都是多任务(multitask )的,即可同时运行多个程序。进程(process )是位于内存中正被CPU 运行的可执行程序实例,参见图22-1。 图22-1 程序与进程 目前的主流计算机采用的都是冯·诺依曼(John von Neumann )体系结构——存储程序计算模型。程序(program )是在内存中顺序存储并以线性模式在CPU 中串行执行的指令序列。对于传统的单核CPU 计算机,多任务操作系统的实现是通过CPU 分时(time-sharing )和程序并发(concurrency )完成的。即在一个时间段内,操作系统将CPU 分配给不同的程序,虽然每一时刻只有一个程序在CPU 中运行,但是由于CPU 的速度非常快,在很短的时间段中可在多个进程间进行多次切换,所以用户的感觉就像多个程序在同时执行,我们称之为多任务的并发。 22.1.2 进程与线程 程序一般包括代码段、数据段和堆栈,对具有GUI (Graphical User Interfaces ,图形用户界面)的程序还包含资源段。进程(process )是应用程序的执行实例,即正在被执行的程进程(内存中) 可执行文件(盘上) 运行

并行计算环境搭建

并行计算环境搭建 一.搭建并调试并行计算环境MPI的详细过程。 1.首先,我们选择在Windows XP平台下安装MPICH。第一步确保Windows平台下安装上了.net框架。 2.在并行环境的每台机子上创建相同的用户名和密码,并使该平台下的各台主机在相同的工作组中。 3.登陆到新创建的帐号下,安装MPICH软件,在选择安装路径时,每台机子的安装路径要确保一致。安装过程中,需要输入一致的passphrase,也即本机的用户名。 4.安装好软件后,要对并行环境进行配置(分为两步): 第一步:注册。在每台机器上运行wmpiregister,按照提示输入帐号和密码,即 本机的登录用户名和密码。 第二步:配置主机。在并行环境下,我们只有一台主机,其他机子作为端结点。 运行主机上的wmpiconfig,在界面左侧栏目中选择TNP工作组,点击“select”按 钮,此时主机会在网络中搜索配置好并行环境的其他机子。配置好并行环境的其他 机子会出现绿色状态,点击“apply”按钮,最后点击“OK”按钮。 5.在并行环境下运行的必须是.exe文件,所以我们必须要对并行程序进行编译并生成.exe文件。为此我们选择Visual C++6.0编译器对我们的C语言程序进行编译, 在编译过程中,主要要配置编译器环境: (1)在编译器环境下选择“工程”,在“link”选项卡的“object/library modules” 中输入mpi.lib,然后点击“OK”按钮。 (2)选择“选项”,点击“路径”选项卡,在“show directories for”下选择“Include files”,在“Directories”中输入MPICH软件中“Include”文件夹的路径; 在“show directories for”下选择“Library files”,在“Directories”中输入 MPICH软件中Library文件夹的路径,点击“OK”。 (3)对并行程序进行编译、链接,并生成.exe文件。 6.将生成的.exe文件拷贝到并行环境下的各台机子上,并确保每台机子的存放路径要相同。 7.在主机上运行“wmpiexec”,在Application中选择生成的.exe文件;输入要执行此程序的进程数,选中“more options”选项卡,在“host”栏中输入主机和各个端结 点的计算机名,点击“execute”执行程序。 二.搭建并调试并行计算环境MPI的详细过程。 1.以管理员身份登录每台计算机,在所有连接的计算机上建立一个同样的工作组,命名为Mshome,并在该工作组下建立相同的帐户,名为GM,密码为GM。 2.安装文件Microsoft NET Framwork1.1,将.NET框架安装到每台计算机上,再安装MPI到每台主机。在安装MPI的过程中,必须输入相同的passphrase,在此输 入之前已建好的帐户名GM。 3.安装好MPI后,再对每台计算机进行注册和配置,其中注册必须每台计算机都要进行,配置只在主控计算机进行: (1)注册:将先前在每台计算机上申请的帐号和密码注册到MPI中去,这样

拥抱多核时代-GIS并行计算

告别免费午餐拥抱多核时代 —SuperMap空间分析并行计算实践Written by:Objects 2013-3-12 11:20:00 SuperMap空间分析并行计算实践 信息技术(InformationTechnologies,简称IT)领域,绝大多数定律都会随着技术的进步被人们淡忘,但有一些却可以经受住时间的考验,对信息技术发展带来持久而深远的影响,“摩尔定律”便是其中典型代表。“摩尔定律”支配下的信息技术,64位系统和多核计算日益普及,如何充分利用64位系统和多核环境下的计算资源成为系统设计和开发人员必 须面对的问题。地理信息系统(Geographic InformationSystem,简称GIS)中的空间分析服务具有算法逻辑复杂、数据规模庞大的特点,属于一种计算密集型服务。针对该特点,我们将并行计算技术引入传统空间分析计算过程,充分利用64位大内存和多核计算资源,大幅提升空间分析 计算性能。 一、摩尔定律下的免费午餐 摩尔定律是由英特尔创始人之一戈登·摩尔(Gordon Moore)提出。其内容为:当价格不变时,集成电路上可容纳的电子元件数目,约每隔24个月(现在普遍流行的说法是每隔18个月)便会增加一倍,性能也将提升一倍。换言之,相同性能的芯片产品,每隔18个月价钱就会降 低一半。该定律自1965年提出以来,始终较好的预测了半导体产业的

发展趋势,又由于半导体产业的巨大影响力,该定律辐射到包括微处理器、移动电话、个人电脑、互联网等在内的众多IT领域。几十年来,包括处理器速度、内存容量、网络传播速度等关键IT指标的发展大都符合摩尔定律的描述。我们有理由认为,摩尔定律在一定程度上揭示与展现了信息技术令人惊讶的进步速度。诞生于1946年的世界上第一台电子计算机,其计算速度是每秒5000次加减法运算,而今天个人电脑的计算速度是每秒500亿次浮点运算。三十五年前的英特尔8086处理器仅有三万个晶体管,而今天一个基于Nehalem架构的英特尔酷睿i7处理器集成了7.74亿个晶体管。

显式有限元和隐式有限元

按照计算每一时刻动力反应是否需要求解线性方程组,可将直接积分法分为隐式积分方法和显式积分方法两类。 隐式积分法是根据当前时刻及前几时刻体系的动力反应值建立以下一时刻动力反应值为未知量的线性方程组,通过求解方程组确定下一时刻动力反应。隐式方法的研究和应用由来已久,常用的方法有线性加速度法、常平均加速度法、Newmark方法、Wilson-θ法、Houbolt 方法等。 显式积分法可由当前时刻及前几时刻的体系动力反应值直接外推下一时刻的动力反应值,不需要求解线性方程组,实现了时间离散的解耦。解方程组一般占整个有限元求解程序耗时的70%左右,因此,这一解耦技术对计算量的节省是可观的。 隐式方法大部分是无条件稳定的,显式方法为条件稳定。显式方法的稳定性可以按满足精度要求的空间步距确定满足数值积分稳定性要求的时问步距来实现。显式方法受条件稳定的限制,时间积分步长将取得较小,但计算经验表明,对于一些自由度数巨大且介质呈非线性的问题,显式法比隐式法所需的计算量要小得多。 因此,随着所考虑问题复杂性的增加,显式积分法得到重视。 对于显式与隐式有限元的理解 关键字: 有限元显式隐式 显式算法和隐式算法,有时也称为显式解法和隐式解法,是计算力学中常见的两个概念,但是它们并没有普遍认可的定义,下面只是我的一些个人理解。 一、两种算法的比较 1、显式算法 基于动力学方程,因此无需迭代;而静态隐式算法基于虚功原理,一般需要迭代计算。显式算法,最大优点是有较好的稳定性。 动态显式算法采用动力学方程的一些差分格式(如广泛使用的中心差分法、线性加速度法、Newmark法和wilson法等),不用直接求解切线刚度,不需要进行平衡迭代,计算速度快,时间步长只要取的足够小,一般不存在收敛性问题。因此需要的内存也比隐式算法要少。并且数值计算过程可以很容易地进行并行计算,程序编制也相对简单。但显式算法要求质量矩阵为对角矩阵,而且只有在单元积分点计算尽可能少时速度优势才能发挥, 因而往往采用减缩积分方法,容易激发沙漏模式,影响应力和应变的计算精度。 静态显式法基于率形式的平衡方程组与Euler向前差分法,不需要迭代求解。由于平衡方程式仅在率形式上得到满足,所以得出的结果会慢慢偏离正确值。为了减少相关误差,必须每步使用很小的增量。 除了欧拉向前差分法外,其它的差分格式都是隐式的方法,需要求解线性方程组。 2、隐式算法 隐式算法中,在每一增量步内都需要对静态平衡方程进行迭代求解,并且每次迭代都需要求解大型的线性方程组,这以过程需要占用相当数量的计算资源、磁盘空间和内存。该算法中的增量步可以比较大,至少可以比显式算法大得多,但是实际运算中上要受到迭代次数及非线性程度的限制,需要取一个合理值。 二、求解时间

MSC-MARC单机多核并行计算示例

MSC MARC2011单机多核并行计算示例 并行计算可以有效利用本地或者网络计算机计算资源,提高计算效率,特别是针对一些计算规模相对较大的问题。本文作为MARC单机多核并行计算的一个示例。 测试平台:WIN7 64Bit MARC2011 0、提前设置 将电脑名字最好改为administrator,或者通过修改电脑名称,会使user和display后面的名子保持一致。 改电脑名字: 计算机右键—属性—更改设置—更改—计算机名

1、启动多核运算 打开dos界面输入 (1)D:按enter回车键(d为marc所在盘) (2)cd+空格+ D:\MSC.Software\Marc\2010\marc2010\intelmpi\win64\bin按enter回车键 (3)ismpd+空格+ –install 按enter回车键 (4)出现上图中的

关闭窗口。 2、基本配置 (1)在MARC安装目录下的intelmpi\win64\bin目录(32Bit计算机选择win32文件夹),运行wmpiregister.exe. (2)输入用户名(登陆windows的账户名,通常为administrator)及密码(若密码为空,需要重新设置一个密码),点击register按钮,下面的对话框中会出现“Password encrypted into the Registry”信息。 (3)运行ismpd.exe,或者到dos提示符下,进入该目录,运行ismpd -install。 假如提示都正常的话,到此即完成进行并行计算的前提条件了。 3、测试 (1)在MARC安装目录下的intelmpi\win64\bin目录(32Bit计算机选择win32文件夹),运行wmpiconfig.exe (2)依次点击下面1和2.

ANSYS高性能并行计算

ANSYS高性能并行计算 作者:安世亚太雷先华 高性能并行计算主要概念 ·高性能并行计算机分类 并行计算机主要可以分为如下四类:对称多处理共享存储并行机(SMP,Symmetric Multi-Processor)、分布式共享存储多处理机(DSM,Distributied Shared Memory)、大规模并行处理机(MPP,Massively Parallel Processor)和计算机集群系统(Cluster)。 这四类并行计算机也正好反映了高性能计算机系统的发展历程,前三类系统由于或多或少需要在CPU、内存、封装、互联、操作系统等方面进行定制,因而成本非常昂贵。最后一类,即计算机集群系统,由于几乎全采用商业化的非定制系统,具有极高的性能价格比,因而成为现代高性能并行计算的主流系统。它通过各种互联技术将多个计算机系统连接在一起,利用所有被连接系统的综合计算能力来处理大型计算问题,所以又通常被称为高性能计算集群。高性能并行计算的基本原理就是将问题分为若干部分,而相连的每台计算机(称为节点)均可同时参与问题的解决,从而显著缩短解决整个问题所需的计算时间。 ·集群互联网络 计算机集群系统的互联网络大体上经历了从Ethernet到Giganet、Myrinet、Infiniband、SCI、Quadrics(Q-net)等发展历程,在“延时”和“带宽”两个最主要指标上有了非常大的改善,下表即是常用的互联方式: ANSYS主要求解器的高性能并行计算特性

ANSYS系列CAE软件体系以功能齐全、多物理场耦合求解、以及协同仿真而著称于世。其核心是一系列面向各个方向应用的高级求解器,并行计算也主要是针对这些求解器而言。 ANSYS的主要求解器包括: Mechanical:隐式有限元方法结构力学求解器; CFX :全隐式耦合多重网格计算流体力学求解器; AUTODYN:显式有限元混合方法流固耦合高度非线性动力学求解器; LS-DYNA:显式有限元方法非线性结构动力学求解器; FEKO:有限元法、矩量法、高频近似方法相互混合的计算电磁学求解器; ·高性能并行计算的典型应用 现代CAE计算的发展方向主要有两个:系统级多体耦合计算和多物理场耦合计算,前者摒弃了以往只注重零部件级CAE仿真的传统,将整个对象的完整系统(如整机、整车)一次性纳入计算范畴;后者在以往只注重单一物理场分析(如结构力学、流体力学)的基础上,将影响系统性能的所有物理因素一次性纳入计算范畴,考虑各物理因素综合起来对分析对象的影响。因此,可以说,高性能并行计算也是CAE的发展方向,因为它是大规模CAE 应用的基石。例如,在航空航天领域,需要高性能并行计算的典型CAE应用有: –飞机/火箭/导弹等大型对象整体结构静力、动力响应、碰撞、安全性分析,整体外流场分析,多天线系统电磁兼容性及高频波段RCS分析,全模型流体-结构-电磁耦合分析;–航空发动机多级转子/静子联合瞬态流动分析,流体-结构-热耦合分析; –大型运载火箭/导弹发射过程及弹道分析…… · ANSYS求解器对高性能并行计算的支持 作为大型商用CAE软件的领头雁,ANSYS在对高性能并行计算的支持方面也走在所有CAE软件的前列,其各个求解器对高性能并行系统的支持可用下表描述:

浅谈多核CPU、多线程与并行计算

0.前言 最近发觉自己博客转帖的太多,于是决定自己写一个原创的。笔者用过MPI 和C#线程池,参加过比赛,有所感受,将近一年来,对多线程编程兴趣一直不减,一直有所关注,决定写篇文章,算是对知识的总结吧。有说的不对的地方,欢迎各位大哥们指正:) 1.CPU发展趋势 核心数目依旧会越来越多,依据摩尔定律,由于单个核心性能提升有着严重的瓶颈问题,普通的桌面PC有望在2017年末2018年初达到24核心(或者16核32线程),我们如何来面对这突如其来的核心数目的增加?编程也要与时俱进。笔者斗胆预测,CPU各个核心之间的片内总线将会采用4路组相连:),因为全相连太过复杂,单总线又不够给力。而且应该是非对称多核处理器,可能其中会混杂几个DSP处理器或流处理器。 2.多线程与并行计算的区别 (1)多线程的作用不只是用作并行计算,他还有很多很有益的作用。 还在单核时代,多线程就有很广泛的应用,这时候多线程大多用于降低阻塞(意思是类似于 while(1) { if(flag==1) break;

sleep(1); } 这样的代码)带来的CPU资源闲置,注意这里没有浪费CPU资源,去掉sleep(1)就是纯浪费了。 阻塞在什么时候发生呢?一般是等待IO操作(磁盘,数据库,网络等等)。此时如果单线程,CPU会干转不干实事(与本程序无关的事情都算不干实事,因为执行其他程序对我来说没意义),效率低下(针对这个程序而言),例如一个IO操作要耗时10毫秒,CPU就会被阻塞接近10毫秒,这是何等的浪费啊!要知道CPU是数着纳秒过日子的。 所以这种耗时的IO操作就用一个线程Thread去代为执行,创建这个线程的函数(代码)部分不会被IO操作阻塞,继续干这个程序中其他的事情,而不是干等待(或者去执行其他程序)。 同样在这个单核时代,多线程的这个消除阻塞的作用还可以叫做“并发”,这和并行是有着本质的不同的。并发是“伪并行”,看似并行,而实际上还是一个CPU在执行一切事物,只是切换的太快,我们没法察觉罢了。例如基于UI 的程序(俗话说就是图形界面),如果你点一个按钮触发的事件需要执行10秒钟,那么这个程序就会假死,因为程序在忙着执行,没空搭理用户的其他操作;而如果你把这个按钮触发的函数赋给一个线程,然后启动线程去执行,那么程序就不会假死,继续响应用户的其他操作。但是,随之而来的就是线程的互斥和同步、死锁等问题,详细见有关文献。 现在是多核时代了,这种线程的互斥和同步问题是更加严峻的,单核时代大都算并发,多核时代真的就大为不同,为什么呢?具体细节请参考有关文献。我

Pyhton 如何实现多线程并行计算

Pyhton 如何实现多线程并行计算 一、串行计算 先看一段简单的代码: import time t0=time.time() for k in range(30): values=k*k print(values) time.sleep(1) t1=time.time() print('运行时间为:',int(t1-t0)) 上面的例子中,我们用一个for循环计算自然数的平方。这里我们一个自然数计算完才能接着计算另外一个数。这种计算方式我们称为“串行计算”。早期为什么采用这种串行计算呢?因为以前个人电脑CPU是单核的,硬件的条件决定了程序的处理方式。 能不能几个数同时计算?好比如在银行的营业厅排队,如果只开一个窗口办理业务,你需要等前面一个人办完,才轮到你,如果能开多个窗口,显然会快很多。这种开多个窗口处理业务的想法,在计算机中的应用就是“并行计算”。多个窗口对应的就是计算机有多个核。(理解了“并行计算”,就容易进一步理解分布式计算。) 二、多核与线程 个人电脑的处理器最早是单核的。 多内核(multicore chips)是指在一枚处理器(chip)中集成两个或多个完整的计算引擎(内核)。 2005年4月,英特尔仓促推出简单封装双核的奔腾D和奔腾四至尊版840。 但真正的“双核元年”,则被认为是2006年。这一年的7月23日,英特尔基于酷睿(Core)架构的处理器正式发布。2006年11月,又推出面向服务器、工作站和高端个人电脑的至强(Xeon)5300和酷睿双核和四核至尊版系列处理器。 进入2009年,处理器已经由双核升级到四核时代,在斯坦福大学召开的Hot Chips大会上,IBM、富士通、AMD和Intel等众多芯片制造商展示出其六核、八核等多核服务器处

计算机技能高考基础知识(常考知识点记忆)精编版

模块一:信息、数据及通信的基本概念 考点1:信息、数据的基本概念 1、数据:所有能够被计算机接受和处理的符号的集合都称为数据 2、信息:有意义的数据的内容。指数据经过加工处理后得到的有价值的知识。 3、信息的基本特征:载体依附性、人地性、时效性、共享性、传递性、客观性、可处理性、真伪性 考点2:通信的基本概念 1、信号是数据在传输过程中的具体物理表示形式。 2、信号分为模拟信号(连续信号)和数字信号,数据信号相对模拟信号,抗干扰强,可靠性高。 3、调制解调器可完成数字信息与模拟信号之间的转换。其中,调制是将数据信号转换为模拟信号;解调是将模拟信号转换为数字信号。 4、通信系统三个基本要素:信源、信道、信宿 考点3:计算机的发展、类型及其应用领域。 1、第一台计算机:ENIAC,美国,1946年宾夕法尼亚大学 2、计算机的发展过程 3、计算机主要特点:运算速度快、精确度高、具有记忆和逻辑判断能力 4、计算机的主要应用 1)科学计算:例如:气象预报、海湾战争中伊拉克导弹的监测 2)数据/信息处理:例如:高考招生中考生录取与统计工作,铁路、飞机客票的预定系统,银行系统 的业务管理 3)计算机控制 4)计算机辅助系统:例如:用CAI演示化学反应 5)人工智能:例如:代替人类到危险的环境中去工作 6)办公自动化系统中的应用:例如:Internet发email 常用缩写: CBE:计算机辅助教育 CAI:计算机辅助教学 CMI:计算机管理教学 CAD:计算机辅助设计 CAT:计算机辅助翻译 CAM:计算机辅助制造 CAE:计算机辅助工程 5、计算机的分类: 1)根据规模大小分类:巨型机、大型通用机、微型机、工作站、服务器 2)根据用途分类:通用计算机、专用计算机 3)根据计算机处理数据的类型:模拟计算机、数字计算机、数字与模拟计算机 6、计算机科学研究与应用 人工智能:研究如何让计算机来完成过去只有人才能做的智能的工作。 网格计算:专门针对复杂科学计算的新型计算模式。 中间件技术:是介于应用软件和操作系统之间的系统软件。 云计算:是分布式计算、网格计算、并行计算、网络存储及虚拟化计算机和网络技术发展融合的产物,

MSC.Software公司Marc产品介绍

Marc 全球非线性有限元软件行业的领导者 MSC.Marc是MSC.Software公司于1999年收购的Marc公司的产品。Marc公司始创于1967年,是全球首家非线性有限元软件公司。经过四十余年的不懈努力,Marc软件得到学术界和工业界的大力推崇和广泛应用,建立了它在全球非线性有限元软件行业的领导者地位。 随着Marc软件功能的不断扩展,软件的应用领域也从开发初期的核电行业迅速扩展到航空、航天、汽车、造船、铁道、石油化工、能源、电子元件、机械制造、材料工程、土木建筑、医疗器材、冶金工艺和家用电器等,成为许多知名公司和研究机构研发新产品和新技术的必备工具。 Marc软件通过了ISO9001质量认证。在中国,Marc通过了全国压力容器标准化技术委员会的严格考核和认证,成为与压力容器分析设计标准GB4732-95相适应的有限元分析软件。 一.产品特色 ◆多种物理场的分析能力。 ◆复合场的耦合分析能力。 ◆强大的非线性分析能力。 ◆最先进的接触分析功能。 ◆并行计算功能。 ◆丰富的单元库。 ◆开放的用户环境。 ◆强大的网格自适应功能。 ◆全自动三维网格重划分。 二.方便高效的用户界面MSC.Mentat作为MSC.Marc程序的专用前后处理器,完全支持MSC.Marc所有功能。另外MSC.Patran已经实现了对MSC.Marc 结构分析、热分析和热-结构耦合分析的完全支持,也支持磁场、电场、压电场分析,下面主要介绍MSC.Mentat的功能。 1.几何建模 MSC.Mentat可通过自顶向下和自底向上的方式生成几何模型,支持对几何元素点、线、面、体的各种,例如增加、删除、编辑和显示等。 2.网格划分 MSC.Mentat提供功能齐全、性能卓越的的自动网格生成技术,可以将几何点、线、面元素直接转化成有限单元的节点、线单元和面单元。可以自动对几何形状划分面网格或体网格。具有专门的六面体网格生成器以及Rebar单元生成器。 MSC.Marc六面体网格自动划分功能充分考虑了网格划分的基本要求,用户可以指定内部网格稀疏过渡级别,程序在稀疏网格过渡处自动生成多点约束方程,满足位移协调。 3.网格操作 MSC.Mentat的其它有关网格功能有复制、移动、扩展、对称、转换、单元阶次的转换、检查、重排、相交、清除、松弛、拉直、重划分、附着等。 4.其他功能 MSC.Mentat的前处理功能除几何建模和网格划分外,还可以定义边界条件、材料参数、几何参数、接触信息、初始条件、连接关系(如多点约束)等。 对于聚合物材料,如橡胶类材料,MSC.Mentat提供了曲线拟合功能。对于损伤分析所需的材料模型参数,用户定义表述材料连续或不连续软化的曲线后,可自动拟合出分析损伤的材料参数。 5.MSC.Mentat的文件接口 包括:AutoCAD、ACIS、IGES、C-MOLD、STL、I-DEAS、MSC.Nastran、MSC.Patran、VDAFS。还可以将MSC.Marc分析结果以I-DEAS或Hypermesh的格式输出,以便在I-DEAS或Hypermesh界面上进行后处理。 MSC.Marc可以产生一个模态中性文件(MNF)来定义集成到MSC.ADAMS 模型中的柔性部件。

基于多核CPU的并行计算设计

26/3192294 长春工程学院学报(自然科学版)2009年第10卷第3期 J.Changchun I nst .Tech .(Nat .Sci .Edi .),2009,Vol .10,No .3I SS N 100928984 CN 2221323/N 基于多核CP U 的并行计算设计 收稿日期:2009-03-03 作者简介:谷照升(1965-),男(汉),吉林集安,教授 主要研究:数学应用。 谷照升 (长春工程学院理学院,长春130012) 摘 要:通过多核CP U 上多线程运算的效率分析,给出了相应的并行计算设计方案,并讨论了并行计算的发展趋势。 关键词:并行计算;多线程;多核中图分类号:TP316 文献标识码:A 文章编号:100928984(2009)0320092203 0 引言 在科学研究、工程计算的诸多领域,如凝聚态物理、数据挖掘、航天技术等,经常存在大规模的计算需求。这些计算任务有时还需要一定的实时性。由于单台计算设备处理能力的局限性,并行计算成为解决这类问题的主要技术手段。 迄今为止,并行计算主要的实现模式是将一个较大的运行任务同时并行地分配到多个计算机上执行 [1,2] 。由于各种大型计算一般采用的多是相应专 业的商业化通用软件,而这些软件在设计上都是基于这种并行分布式系统,通过网络构架,以相对较低性能的微机机群获取高效率的计算能力,所以其综合运行需要依赖完善的接口、协议支持[1—4] 。其中, MP I (Message Passing I nterface )是国内外在高性能计算系统中使用最广泛的并行编程的消息传递接口标准。这一标准移植性好、功能强大、效率高,有上百个函数调用接口,可以在各种提供外部扩展接口的高级编程语言中直接调用。 近几年计算机硬件技术与性能有了飞速的发展,多核、大内存乃至双CP U 的微机配置已成为主流。与此同时,W in2000以后的MS 系列操作系统对多核CP U 以及双CP U 资源也提供了完美的支持。而传统的面向机群的并行计算设计却无法利用 多核CP U 所带来的硬件优势。针对这一背景,如何更好地利用单机良好的CP U 多核资源,充分提高大型计算的性能和效率,就成为应该认真对待的问题。 1 基于多线程技术的并行计算 1.1 单机多核CP U 环境下的计算性能分析 为检验操作系统对多核CP U 的支持水平,笔者 编制了专门的测试程序。该程序在W indows XP 下 分别对2、3、4个线程、无多线程(只有程序进程自身的主线程)4种情况,每个线程完成完全相同的一个较大的计算任务进行测试,只有程序主线程时也对应相同任务。各线程同时开始,详细记录各线程开始、结束、总的耗时,精确到m s 。之后,又同时运行2个本测试程序,用计时器控件控制每个程序,同时启动仅用主线程的相同计算,并记录各自的耗时。在不同主频的2台I ntel 双核、2台I ntel 单核的单CP U 微机上分别做同样的测试。为观测CP U 的使 用率,测试过程中除系统本身和测试程序外,不运行其它程序。测试结果见表1。 多机多次实际测试发现,即使是双核双线程模式,每个线程的耗时也不完全相等,但相差基本在100m s 以内,所以表1中多采用“≈”表示。图1给 出了I ntel 双核主频1.60GHz CP U 的Dell 笔记本上3个线程和主线程的测试结果 。 图1 3个线程和主线程的测试结果

相关主题
文本预览
相关文档 最新文档