分享

Ansys.并行计算

 非同寻常 2014-11-22

1.我有一个ANSYS输入文件,如何并行计算?

答:最简单的办法是以批处理的方式提交。有以下几个步骤:

(1)系统配置。一般已设置好,如有疑问或需进一步信息,请参考回答5。

(2)修改并行求解器脚本,指定使用CPU的个数。

a.在家目录下找到ansddsmpich文件。

b.其中的"-np"参数后带的数目,即为求解器所用的进程(或CPU)数目。必须指定为偶数。

(3)修改ansys输入文件,指定使用的求解器类型和使用方式(必须指定为script),以及求解器域分解的数目(必须大于如前指定的CPU的个数)。

在输入文件中的SOLVE命令前加入如下信息(字母大小写随意):

/SOLUTION

EQSLV,DDS

!求解器类型为DDS

DSOPT,SCRIPT,10
!域分解的数目为10,也可指定为其他值(必须大于如前指定的CPU的个数)。

(4)启动ANSYS并提交输入文件。

在终端提示符后输入如下命令行(大小写敏感),调用ANSYS系统脚本即可。结果文件保存在当前目录下的tmp目录下。

~/ansys_batch-sh example.inp

注意:用户需将example.inp换成自己输入文件的名字。


2.如何在ANSYS的字符界面下使用并行功能?

答: 基本与回答1相同。

(1)先执行回答1中所述1、2、3步。

(2)启动ANSYS。

在终端提示符后输入如下命令行(大小写敏感),在ANSYS提示符出现后按回车,即可输入ANSYS所识别的各种命令:

ansys80 -p ANSYS -pp -mpi mpich

(3)提交输入文件(注意加入回答1.3中命令!),有如下几种方式:

a. 在ANSYS提示符下粘贴输入文件的内容;

b. 使用ANSYS的/INPUT命令,指定输入文件;

c. 在ANSYS提示符后交互式(文本界面下)输入命令。

3.如何在ANSYS的图形界面下使用并行功能?

答:步骤如下。

(1)需要运行X-WINDOWS仿真软件(如EXCEED等),并正确配置。关于此信息请询问系统管理员。

(2)先执行回答1中所述1、2、3步。

(3)启动ANSYS,有如下几种方式:

a. 在终端提示符后输入如下命令行(大小写敏感),直接打开ANSYS图形界面:

ansys80 -p ANSYS -pp -mpi mpich -g

b. 在终端提示符后输入如下命令行(大小写敏感),打开ANSYS配置界面

launcher80

在ANSYS配置界面中进行如下设置:

1)在LAUNCH一栏下选择"PARALLEL PERMONCE FOR ANSYS";

2)在CUSTOMIZATION一栏下“MPI TYPE”中选择MPICH。

修改好其他参数后,点击RUN按钮,即可打开ANSYS图形界面。

(4)在ANSYS界面下设置求解器。

选择MAIN MENU > SOLUTION > ANALYSIS TYPE > SOL'N CONTROLS。

在弹出窗口种选择SOL'N OPTIONS一栏,并修改一下参数:

1)EQUATION SOLVER 选 DISTRIBUTED DOMAIN;

2)NUMBER OF DOMAIN中填入分区数目(必须大于如前指定的CPU的个数);

3)DISTRIBUTION METHOD 中选 SCRIPT 一项。

(5)建立分析模型并求解。可交互式建立或读入ANSYS输入文件。

4. 怎样指定ANSYS并行功能所用的机器?

答:编辑用户家目录下的machines文件。文件每一行代表一个CPU。总的CPU数目必须大于ansddsmpich80文件中指定的CPU数目。

5. 需要哪些文件来实现ANSYS并行功能?

答:除ANSYS程序文件外,还需要如下几个文件。这些文件都在各个用户的家目录下。

ansys_batch-sh
ANSYS系统脚本(必须有可执行属性)。以批处理方式调用ANSYS,唯一输入参数为ANSYS输入文件名。

machines
指定ANSYS求解器所用的机器。

ansddsmpich80

调用ANSYS的DDS求解器的脚本(必须有可执行属性)。

 

 

关于ansys程序运行大内存,多核CPU的设置问题(转载)

近期出现这些问题,找了些资料,并整理下,放这里了。下面这些方法并没有一一试过。

1.ansys结果文件过大,如何处理?
解决超大结果文件的方案,主要有四种方法:
方法一:将磁盘格式转换为NTFS;
方法二:在begin level的时候加上一条命令/config,fsplit,value,其中value is the size of file, the final size equal to n*valve,n is the number of sub-file,(在PC机上面,一般1单位=4M)则/config,fsplit,750 生成每个分割后的文件都是3G的大小,在这个命令下,不只是rst文件被分割,只要是由ansys所产生的binary文件都会。
如下面命令大概会产生6个rst文件:
/config,fsplit,1 !! 1=4MB  

/prep7  
et,1,45  
mp,ex,1,2e11  
mp,prxy,1,0.3  

blc4,,,10,1,1  
esize,0.1  
vmesh,all  

/solu  
da,5,all  
sfa,2,,pres,0.1  
solve 

方法三:<1>将不同时间段内的结果分别写入一序列的结果记录文件;<2>使用/assign命令和重启动技术;<3>ANSYS采用向指定结果记录文件追加当前计算结果数据方式使用/assign指定的文件,所以要求指定的结果记录文件都是新创建的文件,否则造成结果文件记录内容重复或混乱。特别是,反复运行相同分析命令流时,在重复运行命令流文件之前一定要删除以前生成的结果文件序列。
方法四:采用载荷步文件批处理方式求解,在结果文件大小达到极限而终止计算时,同样可以接着计算,不过在重新计算时,在重启动对话框里选择—create *.rst,并且read上次的计算结果。 
(转:simwe)

2.ansys中物理内存和虚拟内存设置:
增大物理内存是提高解题效率的关键。 虚拟内存理想配置为:物理内存+250M,ansys的运行速度与内存大小直接有关,对于同一台机器,内存由256M增大到512M时计算同一题目的速度可以提高几倍,解体规模可以达10万自由度以上。
(转:aoxue)


3.ansys计算是提示内存不足,查看却还有很多内存没有使用,如何解决?
(1)加大虚拟内存 
(2)在ANSYS Product Launcher中,Customization Preferences下设置内存(选Use custom memory settings) 
(3)将Total Workspace (M设为1400,这可能是在2G内存下的最大值,这可能也是32位系数下的最大值,因为系统要保留些内存,自已试一下最大可开到多少...) 
(4)Database(M尽可能小,如64 M)
(5)可改变求解方法为PCG (Pre-Condition CG) (缺省为Sparse direct) 

(转:aoxue)


4.系统内存是2G,当调整超过1100MB时,ANSYS就运行不了,参考了一下help文件,其中有This occurs quite often on Windows machines. If you attempt to start ANSYS with a -m value of 1800 (requesting a very large scratch space) on a machine with memory as shown above, it will fail because there is no single block of memory large enough to allow ANSYS to start up with that much allocated space. 大意是说对于windows系统容易出错,超过系统内存,但是我的系统内存是2G啊,怎么会超过?不明白,还有help文件说插入DLL,‘The figure above shows a simplified example where a single DLL has split the ANSYS virtual memory space into two pieces. In actual practice, it is likely that several such splits may occur making many smaller memory pieces available.’,不知道这个Dll在那么弄啊,用什么命令?
首先,我觉的你可能选择的求解方法不合适,我在512MB的机子 上还能做到280000个单元呢,建议选择PCG解法,其次,windows对内存有限制,对于32位机,系统只允许程序用2GB的内存,因此,如果是做 大分析,建议你打开/3GB开关;对于,你用-M开内存的问题,HELP里解释的意思应该是说,你用-M所开的是连续的内存快,当你将其开到1800时, 系统已经不可能提供这么大的连续内存了,至于那些DLL意思是说,一些DLL的存在会将内存分开,导致连续内存空间减少.我觉得,你机子的内存已经足够了,在3GB模式下,大多数的问题都能解决.具体操作:
1. 右键单击我的电脑,然后单击属性。- 或 -在控制面板中,启动性能和维护工具,然后单击系统。 
2. 在高级选项卡中,单击"启动和故障恢复"下的设置。 
3. 在系统启动下,单击编辑。这将在"记事本"中打开boot.ini文件
4.在boot.ini文件的最后加上“空格”+“/3GB”
5.保存即可
你可以试试。。。

(转:simwe)


5.怎么设置Total workspace(MB)和Datebase(MB)才能使用最好?
计算机通过内存条得到的物理内存(RAM)称为实际内存。ANSYS运行时除了需要内存空间外,还需要一定的工作空间。ANSYS程序实际需要的内存空间总是大于真实的内存,额外的内存即为虚拟内存(通过使用计算机一部分硬盘空间来代替物理内存)。被用来作为虚拟内存的硬盘空 间又称为交换空间。 工作空间分为两部分:数据库空间和演算空间。数据库空间与几何建模、设置的边界及载荷等数据有关;演算空间则用来进行所有内部的计算(单元矩阵的形成、布 尔计算等)。对于windows系统而言,64MB工作空间中,32MB为数据库主间,另外32MB为演算空间。

如果模型数据库太大,导致数据库空间不足,ANSYS程序就会调用虚拟内存;如果演算空间不能满足内部计算需要的空间,则ANSYS程序会分配额外的内存去满足其需要。

一般情况下,不需要修改工作空间的缺省值,因为在必要时ANSYS程序会自动分配额外的内存空间。如果希望了解某个特定的问题需要的内存量,完成模型、施加外载、设
置好求解参数后,ANsYs会提供一个空间需要量的估计,可以通过以下两种方法实现:

命令方式:先输入/Runstat,再输入Rmemry
GUI方式:     Mmin Menu>Run>time Stats>All Statistics

(转:chinavib)


6.在ansys中使用多核处理器的方法:
使用AMG算法,可以使多个核同时工作。使用方法1或2. 
方法1:  
(1). 在ansys product lancher 里面lauch标签页选中parallel performance for ansys.  
(2). 然后在求解前执行如下命令: 
finish 
/config,nproc,n!设置处理器数n=你设置的CPU数。
/solu 
eqslv,amg          !选择AMG算法 
solve              !求解 

方法2: 
(1). 在ansys product lancher 里面lauch标签页选中parallel performance for ansys.  
(2). 在D:\professional\Ansys Inc\v90\ANSYS\apdl\start90.ans中添加一行:/config,nproc,2.别忘了把目录换成你自己的安装目录.

(转:simwe)


7.多核处理器算法求解器的选择:
求解器选择一般的sparse,front,pcg等加速比都不是很好,也就10-30% 吧,加速比好的amg,dsparse等分布求解器不错,但需要额外花钱买license

(转:simwe)


8.怎样让ANSYS使用更多的内存?
试验下bcsoption 命令,bcsoption,,force,memory size(mb为单位),强制使用制定的内存大小.bcsoption,,incore      核内求解,一般速度较快.
(转:simwe)

9.很牛的机器却出现内存不足错误?
也许是求解器选择问题,可以用PCG求解器试试,即EQSLV,PCG
(转:simwe)

Q:我在计算一个大型结构,地震荷载,BEAM188计算时间太长一个小时可能计算了1秒总共40秒,而且越来越慢,不小心早上还停了电如何能使计算加快?
或者怎么才能即使突然结束以后还能继续算?
谢谢!

A:调整优化非线性计算的收敛和速度可以说几乎是一种艺术,即没有固定的可循规则,呵呵。

我的经验是,你的结构的"非线性"越小,非线性的变化越规则,就越容易收敛。 想象一下如果你是手算这个非线性问题,对你来讲较容易的,对ANSYS的相应算法也会容易些。
可以把你的地震时程分析拿出几点,做一下静态的非线性分析,同时调整模型看看分析出来的结果是否合理。如果这一步还没有做,那花大量时间做出的时程分析是废品的可能性十分之大。
一定要记住有限元分析是一个"简化"问题的过程。建立一个模型一定要由浅到深,线性的模型没有搞透不要贸然进攻非线性,静态没有搞透不要碰时程分析。
A:影响非线性收敛稳定性及其速度的因素很多,我们可以看看这几点:
1、模型——主要是结构刚度的大小。对于某些结构,从概念的角度看,我们可以认为它是几何不变的稳定体系。但如果结构相近的几个主要构件刚度相差悬殊,或 者悬索结构的索预应力过小(即它的刚度不够大),在数值计算中就可能导致数值计算的较大误差,严重的可能会导致结构的几何可变性——忽略小刚度构件的刚度 贡献。
如果还不能理解,我们可以进一步说:我们有一种通用的方法判断结构的几何可变性,即det(K)=0。

在数值计算中,要得到det(K)恒等于零是不可能的,我们也就只能让它较小时即认为结构是几何可变的。

对于上述的结构,他们的K值是很小的,故而也可判断为几何可变体系。事实上这类结构在实际工程中也的确是非常危险的。
为此,我们要看看模型有没有问题。如出现上述的结构,要分析它,就得降低刚度很大的构件单元的刚度,可以加细网格划分,或着改用高阶单元(BEAM->SHELL,SHELL->SOLID)。构件的连接形式(2刚接或铰接)等也可能影响到结构的刚度。
2、线性算法(求解器)。ANSYS中的非线性算法主要有:稀疏矩阵法(SPARSE DIRECT SOLVER)、预共轭梯度法(PCG SOLVER)和波前法(FRONT DIRECT SLOVER)。稀疏矩阵法是性能很强大的算法,一般默认即为稀疏矩阵法(除了子结构计算默认波前法外)。预共轭梯度法对于3-D实体结构而言是最优的算法,但当结构刚度呈现病态时,迭代不易收敛。为此推荐以下算法:
1)、BEAM单元结构,SHELL单元结构,或以此为主的含3-D SOLID的结构,用稀疏矩阵法;
2)、3-D SOLID的结构,用预共轭梯度法;
3)、当你的结构可能出现病态时,用稀疏矩阵法;
4)、当你不知道用什么时,可用稀疏矩阵法。
3、非线性逼近技术。在ANSYS里还是牛顿-拉普森法和弧长法。牛顿-拉普森法是我们常用的方法,收敛速度较快,但也和结构特点和步长有关。弧长法常被 某些人推崇备至,它能算出力加载和位移加载下的响应峰值和下降响应曲线。但也发现:在峰值点,弧长法仍可能失效,甚至在非线性计算的线性阶段,它也可能会 无法收敛。
为此,我们尽量不要从开始即激活弧长法,还是让程序自己激活为好(否则出现莫名其妙的问题)。子步(时间步)的步长还是应适当,自动时间步长也是很有必要的。

A:如何加快计算速度

在大规模结构计算中,计算速度是一个非常重要的问题。下面就如何提高计算速度作一些建议:

充分利用ANSYS MAP分网和SWEEP分网技术,尽可能获得六面体网格,这一方面减小解题规模,另一方面提高计算精度。

在生成四面体网格时,用四面体单元而不要用退化的四面体单元。比如95号单元有20节点,可以退化为10节点四面体单元,而92号单元为10节点单元,在此情况下用92号单元将优于95号单元。

选择正确的求解器。对大规模问题,建议采用PCG法。此法比波前法计算速度要快10倍以上(前提是您的计算机内存较大)。对于工程问题,可将ANSYS缺省的求解精度从1E-8改为1E-4或1E-5即可。

波前法,PCG法都是方程组求解方法的一种。 

方程组解法:

(1) 直接解法:a.稀疏矩阵法;b. 波前解法 

a. 稀疏矩阵法:占内存大,但运算次数少;通过变换刚度矩阵的顺序使得非零元素最少 

b. 波前解法: 波前法的特点是:刚度矩阵K和载荷列阵P不按自然编号进入内存而按计算时参加运算的顺序排列; 在内存中只保留尽可能少的一部分K和P的元素。 

(2) 迭代解法:
JCG法;PCG法;ICCG法             
JCG法:可解实数、对称、非对称矩阵             
PCG法:高效求解各种矩阵(包括病态),但仅解实、对称矩阵            
ICCG法:类似JCG,但更强 

对大规模问题,建议采用PCG法。此法比波前法计算速度要快10倍以上(前提是您的计算机内存较大)。

求解设置

Main menu>Solution>Analysis Type>Sol’n Control进入求解控制对话框

Ansys.并行计算

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多