搜档网
当前位置:搜档网 › 在Windows平台上使用多核CPU加速Fluent计算

在Windows平台上使用多核CPU加速Fluent计算

在Windows平台上使用多核CPU加速Fluent计算
在Windows平台上使用多核CPU加速Fluent计算

在Windows平台上使用多核CPU加速Fluent计算

摘要:当利用Fluent计算3维问题时,普通PC显得相当吃力,尤其是使用其默认的串行版本时。其实Fluent完全可以通过简单的设置来进行并行计算。本文只示例一种在现在主流配置PC(CPU有2-6个核心)下的Windows版Fluent并行计算的设置, 关于Linux/Unix平台或并行集群计算机(分布式存储)等环境下的并行设置,请参考Fluent 官方文档(User’s Guide & Tutorial Guide)。

示例硬件软件环境:

OS: M$ Windows7 64bit version

CPU: AMD Athlon?IIX4 641 Quad-Core(四核心)

RAM: 4.00GB

Fluent:v6.36

求解问题:

大作业3(略)

步骤:

1.准备case文件

使用并行计算时,前期参数模型设置的方法与串行计算完全相同,区别只在与网格的分区与进程个数的指定。因此这里不再介绍Case Setup过程(设置边界条件、设置求解器、设置非预混模型等等)。本文假设已设置好并保存的case的名称为Project3.cas 。

2.启动并行版本的Fluent

Fluent可以以多种方式启动并行版本,这里只介绍在多处理器计算机上通过命令行启动的方式。

a)打开Windows命令行窗口(i.e., Win-R 输入cmd回车)

b)移动(cd)至Fluent可执行文件目录(i.e., X:/Program

Files/Fluent.inc/ntbin/win64)(我实在不知道在M$ Word中怎么把这半行搞上去!!!) 将X换为相应盘符,对于32bit Windows版本须将win64换为 ntx86。

e.g.,

c)在cmd窗口输入fluent –t3:

e.g.,

根据你CPU的核心数量设置-t选项后的数字,这里的CPU是四核心的,所以设置的是3个。

3.设置并行求解器

File->Run

选中3D和Parallel选项,并设置Processes个数为3(与前述t选项后面的参数相同,请自行更改),其他参数保持为默认值。点击 Run。

4.对网格分区并读取case文件

并行计算的核心思想是将流场网格分区,分区个数与所用处理器/进程个数相同,每个进程计算一部分流场。因此读入case后要对网格进行分区。 Fluent具有自动分区功能,当然,对于比较复杂的流场区域,手工分区效果可能更好。这个算例中结构很简单,因此我们使用Fluent的自动分区功能。

1)检查自动分区选项

Parallel->Auto Partition...

确认Case File已选中。

2)读入case 文件

File->Read ->Case ...

这一步与普通的串行版本相同。

3)检查网格分区情况

这一步可以让你看到分区效果。

Parallel->Partition...

点击 Print Active Partitions Fluent 将输出详细的分区信息。

4)从图形上直观检查分区情况

a)初始化流场

Solve->Initialize->Initialize...

这一步跟普通串行版本一致,不再赘述。

b)显示网格分区

Contour也可以用来显示网格分区(这也是为何要执行步骤a的原因)。

Display->Contours...

勾选Filled选项;

在Contours of栏中选Cell info...和Active CellPartition;

Surfaces 中选default-interior;

将Levels调成3,这是计算节点(进程/cpu核心)的个数(与前述t选项后

面的参数相同,请自行更改);

点击Display,将会看到下图:

不同颜色的区域将交由不用的CPU核心来计算。

5)保存网格分过区的case

至此,并行计算设置及网格分区已完成,可以保存case文件了。与读进来的

Project3.cas 不同,这个case里的网格已包含分区信息。可以选择重命名,以免覆盖串行版本的case文件。

5.恭喜你!

至此所有设置已完成,可以开始迭代了。接下来的操作同以前的串行计算版本完全相同。

6.评价并行效率

在完成一定的迭代步数后可以检查并行计算的效率。理想的情况下,N个处理器核心参与并行计算可以将计算速度提高N倍,但由于存在核心之间的通信时间开销,加速比并不能达到N倍。评价并行效率最准确而直接的办法是比较串行版本的计算时间和并行版本的计算时间。不过这里我们采用Fluent自带的Timer功能来计算效率。

Parallel->Timer->Usage

Fluent将会输出并行计算效率等相关情况。其中的Total wall-time 和CPU time之比即是加速比,与核心数量对比可知并行效率如何。

参考资料:

Fluent 6.36 Tutorial Guide (Parallel Processing)

基于fluent的阻力计算

基于fluent的兴波阻力计算本文主要研究内容 本文的工作主要涉及小型航行器在近水面航行时的绕流场及兴波模拟和阻力的数值模拟两个方面。在阅读大量文献资料的基础上,通过分析、比较上述领域所采用的理论和方法,针对目前需要解决的问题,选择合理的方法加以有机地综合运用。具体工作体现在以下几个方面: 1.本人利用FLUENT软件的前处理软件GAMBIT自主建立简单回转体潜器模型,利用FLUENT求解器进行计算,得出在不同潜深下潜器直线航行的绕流场、自由面形状及阻力系数的变化情况。 2.通过对比潜器在不同潜深情况下的阻力系数,论证了增加近水面小型航行器的深度可以有效降低阻力。通过对模型型线的改动,为近水面小型航行器的型线设计提供了一定的参考。通过改变附体形状和位置计算了附体对阻力的影响程度,为附体的优化设计提供了一定的依据。 计算模型

航行器粘性流场的数值计算理论 水动力计算数学模型的建立 根据流体运动时所遵循的物理定律,基于合理假设(连续介质假设)用定量的数学关系式表达其运动规律,这些表达式成为流体运动的数学模型,它们是对流体运动的一种定量模型化,称为流体运动控制方程组。根据控制方程组,结合预先给定的初始条件和边界条件,就可以求解反映流体运动的变量值,从而实现对流体运动的数值模拟预报,形成分析报告。 基于连续介质假设的流体力学中流体运动必须满足要遵循的物理定律: 1) 质量守恒定律 2)动量守恒定律 3)能量守恒定律 4)组分质量守恒方程 针对具体研究的问题,有选择的满足上述四个定律。船体的粘性不可压缩绕流运动,如果不考虑水温对水物理性质的影响,水的密度和分子粘性系数都是常数,同时没有能量的转换,就仅仅需要满足质量守恒定律、动量守恒定律。在满足这些定律下所建立的数学模型称为Navier-Stokes方程。 另外,自由液面的存在也需要建立合适的数学模型。本文是利用FLUENT 进行数值模拟,而软件里面关于自由液面模拟是用界面追踪方法的一种-流体体积法(VOF),基于该方法所建立的数学模型称为流体体积分数方程。另外,高雷诺数下的水动力问题还需要考虑粘性不可压缩流体的湍流运动。对于湍流运动的数值模拟一直是流体力学数值计算的一个难点。直接数值模拟(DNS)目前还仅仅在院校中研究,而且也仅限于二维流体问题。大涡模拟(LES)向工程应用的过渡似乎还没有完成,并且就高雷诺数问题而言,对计算机硬件要求很苛刻。目前,从算法的可行性、硬件要求的可实现性、完成任务所消耗时间和人力等方面看,基于湍流模型的数值计算更为工程实际所接受。本章将会对各种湍流模型加以介绍。 粘性不可压缩流体流动数学模型 连续方程 任何流动问题都必须满足质量守恒方程即:连续方程。根据连续介质假设,单位时间内流体微团的质量变化等于同时间间隔内进入微团的总净质量。按照这一定律,连续方程数学表达式写为: (2.1) 以上是在笛卡尔直角坐标系下表示,上面给出的是瞬态可压流体连续方程。由于对于潜艇粘性流场介质的不可压缩,密度ρ为常数,引入散度算子,则方程(2.1)变成为: (2.2)式中:速度矢量V= { u ,v, w }。上式为粘性不可压缩流体运动的连续方程。 动量方程

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.

fluent计算错误分析

1. FlUENT 1.1 求解方面 1.1.1 floating point error是什么意思?怎样避免它? Floating point error已经提过很多次了并且也已经对它讨论了许多。下面是在Fluent论坛上的一些答案: 从数值计算方面看,计算机所执行的运算在计算机内是以浮点数(floating point number)来表示的。那些由于用户的非法数值计算或者所用计算机的限制所引起的错误称为floating point error。 1)非法运算:最简单的例子是使用Newton Raphson方法来求解f(x)=0的根时,如果执行第N次迭代时有,x=x(N),f’(x(N))=0,那么根据公式x(N+1)=x(N)-f(x(N))/ f’(x(N))进行下一次迭代时就会出现被0除的错误。 2)上溢或下溢:这种错误是数据太大或太小造成的,数据太大称为上溢,太小称为下溢。这样的数据在计算机中不能被处理器的算术运算单元进行计算。 3)舍入错误:当对数据进行舍入时,一些重的数字会被丢失并且不可再恢复。例如,如果对0.1进行舍入取整,得到的值为0,如果再对它又进行计算就会导致错误。 避免方法 计算和迭代我认为设一个比较小的时间步长会比较好的。或者改成小的欠松驰因子也会比较好。从我的经验来看,我把欠松驰因子设为默认值的1/3;降低欠松驰因子或使用耦合隐式求解;改变欠松驰因子,如果是非稳态问题可能是时间步长太大;改善solver-control-limits 比例或许会有帮助;你需要降低Courant数;如果仍然有错误,不选择compute from初始化求解域,然后单击init。再选择你想从哪个面初始化并迭代,这样应该会起作用。另外一个原因可能是courant数太大,就样就是说两次迭代之间的时间步太大并且计算结果变化也较大(残差高)。 网格问题当我开始缩放网格时就会发生这个错误。在Gambit中,所有的尺寸都是以mm 为单位,在fluent按scale按钮把它转换成m,然后迭代几百次时就会发生这种错误。但是当我不把网格缩放到m时,让它和在Gambit中一样,迭代就会成功;我认为你应当检查网格,你的网格数太多了,使用较少的网格问题就会解决;网格太多,计算机资源不够用,使使比较粗的网格。 边界条件在我的分析中,我设了一个wall边界条件来代迭axis边界条件,结果fluent拒绝计算并告诉我floating point error。你的边界条件不能代表真实的物理现象;错误的边界条件定义可能会导致floating point error。例如把内边界设成interior;一次我使用对称边界条件模拟2D区间时也遇到这种问题,我把symmetry设为axe symmetric,就发生了floating point error;检查你设的湍流参数,减小湍流强度,先进行50次迭代。 多处理器问题我近来在进行多处理器模拟时也遇到相似的问题。问题的解决方法是在单个处理器上运行,这样就运算得很好。 错误迭代以错误的条件来初始化,在开始迭代时就会发生floating point error。 1.1.2 coupled和segregated求解有什么区别? Coupled会同时求解所有的方程(质量守恒方程、动量守恒方程和能量守恒方程)而不是单个方程求解(方程互相分离)。当速度和压力高度耦合(高压和高速)时应该使用耦合求解,但这样会需要较长的计算时间。 在耦合求解中,能量方程中总是包含组分扩散(Species Diffusion Term)项。

Fluent性能分析

Fluent性能分析 仅仅就我接触过得谈谈对fluent的认识,并说说哪些用户适合用,哪些不适合 fluent对我来说最麻烦的不在里面的设置,因为我本身解决的就是高速流动可压缩N-S方程,而且本人也是学力学的,诸如边界条件设置等概念还是非常清楚的同时我接触的流场模拟,都不会有很特别的介质,所以设置起来很简单 对我来说,颇费周折的是gambit做图和生成网格,并不是我不会,而是gambit对作图要求的条件很苛刻,也就是说,稍有不甚,就前功尽弃,当然对于计算流场很简单的用户,这不是问题。有时候好几天生成不了的图形,突然就搞定了,逐渐我也总结了一点经验,就是要注意一些小的拐角地方的图形,有时候做布尔运算在图形吻合的地方,容易产生一些小的面最终将导致无法在此生成网格, fluent里面的计算方法是有限体积法,而且我觉得它在计算过程中为了加快收敛速度,采取了交错网格,这样,计算精度就不会很高。同时由于非结构网格,肯定会导致计算精度的下降,所以我一贯来认为在fluent里面选取复杂的粘性模型和高精度的 格式没有任何意义,除非你的网格做的非常好。 而且fluent5.5以前的版本(包括5。5),其物理模型,(比如粘性流体的几个模型)都是预先设定的,所以,对于那些做探索性或者检验新方法而进行的模拟,就不适合 用。 同时gambit做网格,对于粘性流体,特别是计算湍流尺度,或者做热流计算来说其网格精度一般是不可能满足的,除非是很小的计算区域 所以,用fluent做的比较复杂一点的流场(除了经典的几个基本流场) 其计算所得热流,湍流,以及用雷诺应力模拟的粘性都不可能是准确的, 这在物理上和计算方法已经给fluent判了死刑,有时候看到很多这样讨论的文章,觉得 大家应该从物理和力学的本质上考虑问题。 但是,fluent往往能计算出量级差不多的结果,我曾经做了一个复杂的飞行器热流计算,高超音速流场,得到的壁面热流,居然在量级上是吻合的,但是,从计算热流需要的壁面网格精度来判断,gambit所做的网格比起壁面网格所满足的尺寸的要大了至少2个数量级, 我到现在还不明白fluent是怎么搞的。 综上,我觉得,如果对付老板的一些工程项目,可以用fluent对付过去但是如果真的做论文,或者需要发表文章,除非是做一些技术性工作,比如优化计算 一般用fluent是不适合的。 我感觉fluent做力的计算是很不错的,做流场结构的计算,即使得出一些涡也不是流场本身性质的反应,做低速流场计算,fluent的优势在于收敛 速度快,但是低速流场计算,其大多数的着眼点在于对流场结构的探索,所以计算得到的结果就要好好斟酌一下了,高速流场的模拟中,一般着眼点在于气动力的结果,压力分布

多核编程与并行计算实验报告 (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! ";

FLUENT 15.0 VOF模型测试报告

ANSYS 15.0 系列测试报告 FLUENT 15.0 VOF模型 测试人:崔亮安世亚太公司 测试时间:2013.12.01

1、仿真平台 HP Z820工作站,Intel Xeon E5-2690 * 2,内存64GB,2TB SATA硬盘。安装ANSYS 15.0 Preview3版本。 2、仿真模型 对某车型上带有底部隔板的油箱,在车辆加速时油箱内燃油晃动的瞬态过程进行瞬态仿真分析,网格单元数约10万,使用FLUENT的VOF模型计算空气和燃油的两相交界面。重点考察FLUENT 15.0中VOF模型的计算效率和两相交界面捕捉精度的提升。 测试案例的几何形状 测试案例的网格模型 3、试用情况 1).稳定性 在整个试用过程中,软件保持稳定,未出现任何不流畅、死机、系统崩溃等情况。2).流畅度 模型拖动、旋转、缩放等操作十分流畅,模型设定及求解过程操作十分流畅。 3).效率 该模型使用0.0005秒的时间步长进行瞬态计算,共计算了2000步,共计1.0秒时长。使用15.0 Preview3版本所用的计算时间为3693秒。之前使用13.0版本计算该模型所用计算时间为4381秒。新版本提速15.7%。 4).硬件资源调用情况 由于该模型网格数量较少,仅使用单核进行求解计算。在整个计算过程中,单核占用率达到100%,内存占用峰值约为400 MB。之前使用13.0版本计算该模型的内存占用峰值约

为450兆。新版本对内存的峰值占用约为旧版本的90%左右。 5).计算精度 VOF模型的计算精度体现在两相交界面捕捉的清晰程度,15.0版本的交界面捕捉清晰程度比旧版本略有提升,对于一些较小的气泡有着更好的捕捉能力。 t=0.45s时,15.0版本和13.0版本计算的两相交界面对比 t=0.45s时,15.0版本和13.0版本计算的两相交界面对比 4、总结 在ANSYS 15.0 Preview3版本的试用过程中,对FLUENT 15.0中VOF模型的计算效率提升感到满意,相比较于旧版本,约有15%的计算速度提升,这对缩短仿真分析的周期有极大帮助;还有约10%的内存峰值占用量下降,这对于合理利用现有硬件资源进行更大规模的模型计算有着重要意义。此外,新版本VOF模型的计算精度也有所提升,两相交界面捕捉更加锐利,对于一些较小的气泡,相对于旧版本有着更好的捕捉能力

并行计算综述

并行计算综述 姓名:尹航学号:S131020012 专业:计算机科学与技术摘要:本文对并行计算的基本概念和基本理论进行了分析和研究。主要内容有:并行计算提出的背景,目前国内外的研究现状,并行计算概念和并行计算机类型,并行计算的性能评价,并行计算模型,并行编程环境与并行编程语言。 关键词:并行计算;性能评价;并行计算模型;并行编程 1. 前言 网络并行计算是近几年国际上并行计算新出现的一个重要研究方向,也是热门课题。网络并行计算就是利用互联网上的计算机资源实现其它问题的计算,这种并行计算环境的显著优点是投资少、见效快、灵活性强等。由于科学计算的要求,越来越多的用户希望能具有并行计算的环境,但除了少数计算机大户(石油、天气预报等)外,很多用户由于工业资金的不足而不能使用并行计算机。一旦实现并行计算,就可以通过网络实现超级计算。这样,就不必要购买昂贵的并行计算机。 目前,国内一般的应用单位都具有局域网或广域网的结点,基本上具备网络计算的硬件环境。其次,网络并行计算的系统软件PVM是当前国际上公认的一种消息传递标准软件系统。有了该软件系统,可以在不具备并行机的情况下进行并行计算。该软件是美国国家基金资助的开放软件,没有版权问题。可以从国际互联网上获得其源代码及其相应的辅助工具程序。这无疑给人们对计算大问题带来了良好的机遇。这种计算环境特别适合我国国情。 近几年国内一些高校和科研院所投入了一些力量来进行并行计算软件的应用理论和方法的研究,并取得了可喜的成绩。到目前为止,网络并行计算已经在勘探地球物理、机械制造、计算数学、石油资源、数字模拟等许多应用领域开展研究。这将在计算机的应用的各应用领域科学开创一个崭新的环境。 2. 并行计算简介[1] 2.1并行计算与科学计算 并行计算(Parallel Computing),简单地讲,就是在并行计算机上所作的计算,它和常说的高性能计算(High Performance Computing)、超级计算(Super Computing)是同义词,因为任何高性能计算和超级计算都离不开并行技术。

基于FLUENT的水下子弹数值模拟

基于FLUENT的水下子弹数值模拟 一、问题介绍 Fluent是目前处于领先地位的CFD软件包之一,它为流体力学领域提供了强大丰富的计算平台。针对各种复杂流动的物理现象,fluent可以采用不同的离散格式和插值方法,在特定区领域内使计算速度、稳定性和精度等方面达到最佳组合。但是针对特殊的物理情景,其自身无法提供完全近似的物理模型,必须通过其自带的自定义函数UDF(user Defined function)对其进行二次开发。例如,对于水下航行的子弹,现有的模块不能模拟子弹运动过程,只能给定一个逆向的速度入口边界条件来实现,即水动子弹不动。为了更近似的模拟子弹运动过程,需要对FLUENT进行二次开发。 本文采取的方法是利用用户自定义函数UDF,对fluent进行二次改造,采用动网格技术,对子弹匀速运动进行模拟。 二、物理平台 本文用到的软件包括:前处理软件gambit,计算软件fluent12.0,UDF支持语言microsoft visual C++6.0,后处理软件tecplot. Gambit用于建立几何模型,划分网格。本算例采用二维轴对称模型,子弹以一矩形近似代替。 Fluent用于计算子弹运动流场特性,包括速度,压力,阻力等。本算例涉及到子弹运动,需要采用动网格技术,即网格在计算过程不断变化更新,因此通过UDF对fluent进行二次开发。其中UDF是fluent自带的宏命令,其运行环境是C语言,所以必须在计算机中提空支持C语言的运算环境microsoft visual C++6.0(也可以是其他更高版本)。 Tecplot为计算结果后处理软件,可以制作动画,云图等。 三、动网格简介 1.spring based smoothing 弹簧近似光滑模型 2.dynamic layering 动态分层模型 3.local remeshing 局部重构模型 三种动网格技术有自己的使用范围,其中弹簧近似光滑模型对于结构和非结构化网格都适用,对于模拟物体小范围运动或者变形有巨大优势,而对于大范围移动却无法实现,一般情况下此方法很少单独使用,通常是配合后面两种动网格技术使用。网格局部重构模型只适合四面体网格和三角形网格,可以用于模拟大范围平移和旋转,同时在模拟复杂边界移动具有很大优势。动态分层模型只是用于结构化网格,对于三角形和四面体网格则毫无用处。由于本文采用此方法,这里讲具体介绍此模型: 动态分层模型(dynamic layering),对于规则计算域,划分规则四边形网格后,采用此模型有利于实现物体的单方向平动,其优点是不需要网格重构,不会改变运动体周围的网格形态,节约了网格更新的时间,同时能保证网格一致性,提高计算效率。此方法的弱点在于无法模拟物体旋转运动,无论对于二维还是三维模型,只能解决物体平动问题。 此方法的思想是当网格边界缩短小于设定值时自动与上一个网格合并成,而当网格被拉伸小于设定的最大网格线长度时,又自动分裂成两个网格。 无论是哪种动网格模型,对内部的参数设置要求十分严格,若参数设置不当,可能出现

拥抱多核时代-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亿个晶体管。

传统并行计算框架与MR的区别

现在MapReduce/Hadoop以及相关的数据处理技术非常热,因此我想在这里将MapReduce的优势汇总一下,将MapReduce与传统基于HPC集群的并行计算模型做一个简要比较,也算是对前一阵子所学的MapReduce知识做一个总结和梳理。 随着互联网数据量的不断增长,对处理数据能力的要求也变得越来越高。当计算量超出单机的处理能力极限时,采取并行计算是一种自然而然的解决之道。在MapReduce出现之前,已经有像MPI这样非常成熟的并行计算框架了,那么为什么Google还需要MapReduce,MapReduce相较于传统的并行计算框架有什么优势,这是本文关注的问题。 文章之初先给出一个传统并行计算框架与MapReduce的对比表格,然后一项项对其进行剖析。 MapReduce和HPC集群并行计算优劣对比 ▲ 在传统的并行计算中,计算资源通常展示为一台逻辑上统一的计算机。对于一个由多个刀片、SAN构成的HPC集群来说,展现给程序员的仍旧是一台计算机,只不过这台计算拥有为数众多的CPU,以及容量巨大的主存与磁盘。在物理上,计算资源与存储资源是两个相对分离的部分,数据从数据节点通过数据总线或者高速网络传输到达计算节点。对于数据量较小的计算密集型处理,这并不是问题。而对于数据密集型处理,计算节点与存储节点之间的I/O将成为整个系统的性能瓶颈。共享式架构造成数据集中放置,从而造成I/O传输瓶颈。此外,由于集群组件间耦合、依赖较紧密,集群容错性较差。 而实际上,当数据规模大的时候,数据会体现出一定的局部性特征,因此将数据统一存放、统一读出的做法并不是最佳的。 MapReduce致力于解决大规模数据处理的问题,因此在设计之初就考虑了数据的局部性原理,利用局部性原理将整个问题分而治之。MapReduce集群由普通PC机构成,为无共享式架构。在处理之前,将数据集分布至各个节点。处理时,每个节点就近读取本地存储的数据处理(map),将处理后的数据进行合并(combine)、排序(shuffle and sort)后再分发(至reduce节点),避免了大量数据的传输,提高了处理效率。无共享式架构的另一个好处是配合复制(replication)策略,集群可以具有良好的容错性,一部分节点的down机对集群的正常工作不会造成影响。 硬件/价格/扩展性 传统的HPC集群由高级硬件构成,十分昂贵,若想提高HPC集群的性能,通常采取纵向扩展的方式:即换用更快的CPU、增加刀片、增加内存、扩展磁盘等。但这种扩展方式不能支撑长期的计算扩展(很容易就到顶了)且升级费用昂贵。因此相对于MapReduce集群,HPC集群的扩展性较差。 MapReduce集群由普通PC机构成,普通PC机拥有更高的性价比,因此同等计算能力的集群,MapReduce集群的价格要低得多。不仅如此,MapReduce集群

基于FLUENT的某微型面包车外流场数值仿真分析

基于FLUENT的某微型面包车外流场数值仿真分析 摘要:利用UG对某微型轿车进行三维实体建模,将其导入前处理软件ANSYS ICEM中,建立计算域后网格化。用CFD 软件FLUENT对汽车模型的外流场进行三维稳态流动数值模拟,得出汽车周围流场的气流速度和压力分布,并通过计算得到了该车的阻力系数,该仿真分析的数据为进行汽车气动特性分析提供基础,可进一步指导汽车的设计开发。 关键字:汽车空气动力学;计算流体动力学;FLUENT;外流场 ABSTRACT:The 3D model of a mini car is carried out by UG, and then it is introduced into the pre-processing software ANSYS ICEM to establish the computational domain grid. By using the software of CFD FLUENT is to the automobile model flow field numerical simulation of three-dimensional steady flow, flow velocity and pressure distribution of the flow field around the car, the car and the drag coefficient is obtained by calculating, the simulation data for automobile gas analysis provide the basic dynamic characteristics, design and development can further guide the car. Keywords: Automobile aerodynamics;CFD;FLUENT;Outflow field 引言 空气动力学特性是汽车的重要特性之一。汽车行驶时与空气产生复杂的相互作用,承受着强大的气动力,对汽车的行驶状态有着重大影响;汽车行驶时受到的空气阻力与汽车速度平方成正比,汽车克服空气阻力所消耗的功率和燃料与车速的三次方成正比。因此,对汽车外流场空气动力学的研究,不仅可以提高汽车动力性和安全性,还可以提高汽车的燃料经济性。 目前,汽车空气动力学的研究主要有三种方法,即风洞实验、理论分析和计算流体动力学(Computational Fluid Dynamics,CFD)分析。随着计算机技术的发展,计算流体动力学相对于实验和理论计算具有成本低、周期短等特点,因此受到越来越广泛的应用。CFD方法对于预测和改进汽车的气动性能,指导汽车产品设计具有重要意义[1-2]。故本文采用大型商业化CFD 软件的FLUENT对某微型汽车的外流场进行数值仿真分析。 1 汽车空气动力学特性与CFD 理论基础1.1 汽车空气动力学特性 在正常道路行驶过程中的汽车,通常受到两种力的作用,这两种力分别为路面与汽车之间的相互作用力和来自空气的力与力矩。其中,前者主要由汽车自身的物理属性和轮胎的滚动阻力系数等决定;另一种则是来自空气作用的力和力矩,取决于汽车的外形设计、行驶速度以及横摆角[3-4]。 气流作用于汽车上分相互垂直的三个方向的力和绕三个轴的力矩,如图1 所示;在图示坐标系中,X 方向是汽车直线行驶方向,通常的气动阻力就是指来流沿X 方向的作用力;Y 轴方向为汽车的侧向力,还有沿Z 轴方向趋于抬起汽车的升力。汽车在道路行驶过程中这三个方向的空气作用力同时存在,相互影响。除上述三个方向的力外,还有绕三个轴方向的力矩,分别为绕X 轴方向的侧倾力矩、绕Y 轴方向的俯仰力矩以及绕Z 轴方向的横摆力矩。

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.

fluent经验总结

1什么叫松弛因子?松弛因子对计算结果有什么样的影响?它对计算的收敛情况又有什 么样的影响? 1、亚松驰(Under Relaxation):所谓亚松驰就是将本层次计算结果与上一层次结果的差值作适当缩减,以避免由于差值过大而引起非线性迭代过程的发散。用通用变量来写 出时,为松驰因子(Relaxation Factors)。《数值传热学-214》 2、FLUENT中的亚松驰:由于FLUENT所解方程组的非线性,我们有必要控制的变化。一般用亚松驰方法来实现控制,该方法在每一部迭代中减少了的变化量。亚松驰最简 单的形式为:单元内变量等于原来的值加上亚松驰因子a与变化的积, 分离解算器使用亚松驰来控制每一步迭代中的计算变量的更新。这就意味着使用分离解算器解的方程,包 括耦合解算器所解的非耦合方程(湍流和其他标量)都会有一个相关的亚松驰因子。在FLUENT中,所有变量的默认亚松驰因子都是对大多数问题的最优值。这个值适合于很多问题,但是对于一些特殊的非线性问题(如:某些湍流或者高Rayleigh数自然对流问题),在计算开始时要慎重减小亚松驰因子。使用默认的亚松驰因子开始计算是很好的习惯。如 果经过4到5步的迭代残差仍然增长,你就需要减小亚松驰因子。有时候,如果发现残差 开始增加,你可以改变亚松驰因子重新计算。在亚松驰因子过大时通常会出现这种情况。 最为安全的方法就是在对亚松驰因子做任何修改之前先保存数据文件,并对解的算法做几 步迭代以调节到新的参数。最典型的情况是,亚松驰因子的增加会使残差有少量的增加, 但是随着解的进行残差的增加又消失了。如果残差变化有几个量级你就需要考虑停止计算 并回到最后保存的较好的数据文件。注意:粘性和密度的亚松驰是在每一次迭代之间的。 而且,如果直接解焓方程而不是温度方程(即:对PDF计算),基于焓的温度的更新是要进行亚松驰的。要查看默认的亚松弛因子的值,你可以在解控制面板点击默认按钮。对于 大多数流动,不需要修改默认亚松弛因子。但是,如果出现不稳定或者发散你就需要减小 默认的亚松弛因子了,其中压力、动量、k和e的亚松弛因子默认值分别为0.2,0.5,0.5和0.5。对于SIMPLEC格式一般不需要减小压力的亚松弛因子。在密度和温度强烈耦合 的问题中,如相当高的Rayleigh数的自然或混合对流流动,应该对温度和/或密度(所用 的亚松弛因子小于1.0)进行亚松弛。相反,当温度和动量方程没有耦合或者耦合较弱时,流动密度是常数,温度的亚松弛因子可以设为1.0。对于其它的标量方程,如漩涡,组分,PDF变量,对于某些问题默认的亚松弛可能过大,尤其是对于初始计算。你可以将松弛因子设为0.8以使得收敛更容易。 SIMPLE与SIMPLEC比较 在FLUENT中,可以使用标准SIMPLE算法和SIMPLEC(SIMPLE-Consistent)算法,默认是SIMPLE算法,但是对于许多问题如果使用SIMPLEC可能会得到更好的结果,尤其是可以应用增加的亚松驰迭代时,具体介绍如下: 对于相对简单的问题(如:没有附加模型激活的层流流动),其收敛性已经被压力速

20100428第三章 并行计算模型和任务分解策略

第三章并行计算模型和任务分解策略 首先,我们将研究不同类型的并行计算机,为了不严格限定于某个指定机型,我们通过模型把并行计算机抽象为几个特定属性。为了说明并行程序中处理器之间的通信概念模型我们讨论了不同的程序模型,另外为了分析和评估我们算法的性能,我们讨论了多计算机架构下评估并行算法复杂度的代价模型。在介绍并分析的各种代价模型的基础上给出了改进型的代价模型。 其次我们定义这样几个指标如负载均衡和网络半径等用来研究图分解问题的主要特性。并把图分解问题归纳为一般类型和空间映射图类型。我们重点研究的是后者,因为多尺度配置真实感光照渲染算法可以很方便的描述成空间映射图形式。 3.1 并行计算机模型 以下给出并行计算机的模型的概述,根据其结构并行计算机大致可分为以下几类。 多计算机(Multicomputer):一个von Neumann计算机由一个中央处理器(CPU)和一个存储单元组成。一个多计算机则由很多von Neumann计算机通过互联网络连接而成的计算机系统。见图3.1。每个计算机(节点)执行自己的计算并只能访问本地的存储。通过消息实现各计算机之间的互相通讯。在理想的网络中,两个计算节点之间的信息传送代价与本地的计算节点和它的网络阻塞无关,只和消息的长度相关。以上多计算机和分布式存储的MIMD机器之间的主要区别在于后者的两个节点间的信息传输不依赖于本地计算和其它网络阻塞。 分布式存储的MIMD类型的机器主要有IBM的SP, Intel的Paragon, 曙光4000系列, Cray 的T3E, Meiko的CS-2, NEC的Cenju 3, 和nCUBE等。通过本地网络的连接的集群系统可以认为是分布式存储的MIMD型计算机。 多处理器(Multiprocessor):一个多处理器型并行计算机(共享存储的MIMD计算机)由大量处理器组成,所有的处理器都访问一个共同的存储。理论上理想的模型就是PRAM模型(并行的随机访问系统),即任何一个处理器访问任一存储单元都是等效的(见图3.2)。并发存储访问是否允许取决于所使用的真正的模型【34】。 混合模型:分布式共享存储(DMS)计算机,提供了一个统一的存储访问地址空间但是分布式物理存储模块。编译器和运行时系统负责具体的并行化应用。这种系统软件比较复杂。 图3.1 多计算机模型图3.2 PRAM 模型 SIMD计算机:在一个SIMD(单指令流多数据流)计算机中在不同数据流阶段所有的处理器执行同样的指令流。典型的机型有MasPar的MP, 和联想机器CM2。 多计算机系统具有良好的可扩展性,价格低廉的集群式并行计算机就属于这种模型,本文中的算法主要基于多计算机体系结构。 3.2 程序模型 并行程序的编程语言如C或Fortan。并行结构以某种类库的形式直接整合进这些编程语言中。编程模型确定了并行程序的风格。一般可分为数据并行、共享存储和消息传递等模型[35]。 数据并行编程:数据并行模型开始于编写同步SIMD并行计算机程序。程序员需要在每个处理器上独立执行一个程序,每个处理器均有其自己的存储器。程序员需要定义数据如何分配到每个局部存储中。实际应用中大量的条件分支的需要使得其很难高效的运行在SIMD型的机器上。 共享存储编程:共享存储模型是一个简单的模型,因为程序员写并行程序就像写串行程序一样。一个程序的执行与几个处理器独立,也不需要同步。一个处理器的执行状态独立于其它处理器的运

浅谈多核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秒钟,那么这个程序就会假死,因为程序在忙着执行,没空搭理用户的其他操作;而如果你把这个按钮触发的函数赋给一个线程,然后启动线程去执行,那么程序就不会假死,继续响应用户的其他操作。但是,随之而来的就是线程的互斥和同步、死锁等问题,详细见有关文献。 现在是多核时代了,这种线程的互斥和同步问题是更加严峻的,单核时代大都算并发,多核时代真的就大为不同,为什么呢?具体细节请参考有关文献。我

fluent使用总结

3.1计算流体力学基础与FLUENT软件介绍 3.1.1计算流体力学基础 计算流体力学(Computational Fluid Dynamics,简称CFD)是利用数值方法通过计算机求解描述流体运动的数学方程,揭示流体运动的物理规律,研究定常流体运动的空间物理特性和非定常流体运动的时空物理特征的学科[}ss}。其基本思想可以归纳为:把原来在时间域和空间域上连续的物理量的场,如速度场和压力场,用一系列有限个离散点上的变量值的集合来代替,通过一定的原则和方式建立起关十这些离散点上场变量之间的关系的代数方程组,然后求解代数方程组获得场变量的近似值[f=}}l 计算流体力学可以看作是在流动基本方程(质量守恒方程、动量守恒方程、能量守恒方程)控制下对流动的数值仿真。通过这种数值仿真,可以得到流场内各个位置上的基本物理量(如速度、压力、温度和浓度等)的分布以及这些物理量随时间的变化规律。 还可计算出相关的其它物理量,如旋转式流体机械的转矩、水力损失和效率等。此外,与CAD联合还可进行结构优化设计等。 过去,流体力学的研究主要有实验研究和理论分析两种方法。实验研究主要以实验为研究手段,得到的结果真实可信,是理论分析和数值计算的基础,其重要性不容低估。然}fu实验往往受到模型尺寸、流场扰动和测量精度等的限制,有时可能难以通过实验的方法得到理想的结果。此外,实验往往经费投入较大、人力和物力耗费较大及周期较长;理论分析方法通常是利用简化的流动模型假设,给出所研究问题的解析解或简化方程。然}fu随着时代的发展,这些方法已不能很好地满足复杂非线性流体运动规律的研究。理论分析方法的优点是所得结果具有普遍适用性,各种影响因素清晰可见,是指导试验研究和验证新的数值计算方法的理论基础。但是,它往往要求对计算对象进行抽象和简化,才有可能得出理论解。}fU对十非线性情况,只有少数流动才能得到解析结果。 计算流体力学方法很好地克服了前面两种方法的弱点,与传统的理论分析方法、实验研究方法一同组成了研究流体流动问题的完整体系。计算流体力学的发展,先后经历 2 FLUENT软件介绍 FLUENT软件是由美国FLUENT公司开发的著名的CFD计算分析软件,在航空、航天、透平机械、汽车、船舶、机械、化工、石化、计算机、半导体、能源、医学等领域得到了广泛的应用。能够解决流动、传热、化学反应、燃烧、多相流、旋涡流动等问题。 FLUENT软件研究的流动模型包括了定常和非定常流动,层流(包括各种非牛顿流模型),紊流(包括最先进的紊流模型),不可压缩和可压缩流动,传热和化学反应等。FLUENT软件设计基于“CFD计算机软件群的概念”,针对每一种流动的物理问题的特点,采用适合于它的数值解法在计算速度、稳定性和精度等各方面达到最佳。不同领域的计算软件组合起来,成为CFD软件群,从而高效率地解决各个领域的复杂流动的计算问题,在各软件之间可以方便地进行数值交换,采用统一的前后处理工具,省去了科研工作者在计算方法、编程、前后处理等方面投入的重复、低效的劳动,而可以将主要精力用十物理问题本身的探索上。 流体有限体积法(Finite V olume Method,简称FVM)是目前计算流体动力学领域内应用最普遍的一种对偏微分方程组的离散方法。FLUENT软件就是采用C语言编写的基于非结构化网格和有限体积法的通用CFD求解器,它推出了多种优化的物理模型,如定常和非定常流动;层流(包括各种非牛顿流模型);紊流(包括最先进的紊流模型);不可压缩和可压缩流动;传热;化学反应等。对每一种物理问题的流动特点,有适合它的数值解法,用户可对显式或隐式差分格式进行选择,以期在计算速度、稳定性和精度等方面达到最佳。 在FLUENT 5.0之后的版本中,都采用GAMBIT的专用前处理软件。GAMBIT软件是面向CFD的专业前处理器软件,它包含全面的几何建模能力,也可以从主流的CAD/CAE软件导入几何体和网格,GAMBIT强大的布尔运算能力为建立复杂的几何模型提供的极大的方便。GAMBIT功能强大的网格划分工具,可以划分出包含边界层等CFD特殊要求的高质量的网格。GAMBIT中专有的网格划分算法可以保证在较为复杂的几何区域直接划分出高质量的六面体网格。GAMBIT中的TGRID方法可以在极其复杂的几何区域中划分出与相邻区域网格连续的完全非结构化的网格,GAMBIT网格划分方法的选择完全是智能化的,在选择一个几何区域后GAMBIT会自动选择最合适的网格划分算法,使网格划分过程变得极为容易。 通用CFD软件包,用来模拟从不可压缩到高度可压缩范围内的复杂流动。由于采用了多种求解方法和多重网格加速收敛技术,因而FLUENT能达到最佳的收敛速度和求解精度。灵活的非结构化网格和基于解的自适应网格技术及成熟的物理模型,使FLUENT在转捩与湍流、传热与相变、化学反应与燃烧、多相流、旋转机械、动/变形网格、噪声、材料加工、燃料电池等方面有广泛应用。

相关主题