CAEworks's Archiver

cfd 发表于 2008-5-20 12:40

[转]ANSYSCFX10并行计算全套攻略(windows和linux)

本人只是安装软件好玩,没别的意思,希望大家购买正版软件,本文制作交流学习,禁止用做商业用途,违者责任自负!

经过了长时间摸索和实践终于分别在windows和linux下面安装成功cfx10并行计算方法。现在整理归纳如下:
无论是在windows还是linux下,比较常用的两个版本一个是magnitude,另一个是LND,这两个版本我比较喜欢第一种,当然第二个也行,但是总或多或少出点小毛病,下面一第一种为例
window下:
1.解压:拿到软件是一些分块压缩软件包,如果是.rar格式的并且名字只有最后数字不同,那么解压缩任何一个都可以全部解压缩出来,加压后是一个bin文件和cue文件,那么用daemon或者相类似软件都可以将它们打开;
2.提出破解文件:文件中应该有magnitude文件目录或者crack目录等,将它们单独提出来,并且改变属性变成存档文件,(选中要改变文件点击右键属性,选中存档,取消只读);
3.运行安装文件中的whoid可执行文件,(这部是为了有多个网卡朋友准备的,因为不知道ansyscfx选择哪个为主要的网卡,)看到你机器里面的参数,若有多个网卡物理地址,那么记下第一个和你的主机名。打开刚才提出破解文件目录里面的ansys.dat文件(可以用记事本或者相同东西打开)将000000000000替换成你刚才记下的网卡物理地址,将host替换成你的机器名(主机名);
4.运行keygen.exe文件这时,会生成一个license.dat文件
5.安装程序,先安装程序或者先安装license manager都可以,如果先安装license manager,安装过程时当问到生成license或者指定license的时候你可以选择生成license,但是这时候会打开一个文件,此时你将刚才第4步生成的license.dat里面的内容拷贝到里面并且保存,它会自动生成license.dat到
C: Program FilesAnsys IncShared FilesLicensing目录下,若你要指定license时候,那么你要先将license.dat文件拷贝到C: Program FilesAnsys IncShared FilesLicensing这个目录下面,这样license就指定好了,别高兴,还要接着来,不要灰心,你距离成功很近了;
6.刚才你要实现安装了license manager那么这部应该安装程序了,我一般是全安装,但是路径根据自己需要选择,我一般不会安装在c盘(除非就一个盘),如果你已经都安装完了,最后会出现一个什么take什么的,把对勾去掉,因为那是让你上网做个调查;
7.这时候需要设置环境变量,你不需要知道什么是环境变量,只要按照我说的做就行了,将我的电脑选中点击右键选择属性-->选择高级-->环境变量,这时会看到什么用户变量和系统变量,不管谁了,选择一个点击新建,然后将ANSYSLMD_LICENSE_FILE添加到变量名处,将1055@host(这里的host是你的机器名也叫主机名,可别真的填入host)填入变量值处,然后点击确定,
[注意:这步可用也可不用,因为windows自己会生成一个变量]-----同样在创建一个变量,将LM_LICENSE_FILE添加到变量名处,将C: Program FilesAnsys IncShared FilesLicensing填入变量值处------[注意:这步可用也可不用,因为windows自己会生成一个变量]
一路确定关闭刚才的属性窗口。
8.点击开始-->程序-->ANSYS FLEXlm License Manager--->FLEXlm LMTOOLS Utility,在services/license Files下面选择configuration using Serices,选中ANSYS FLEXlm License Manager,然后选择start/stop Reread一项,这时方框里面是你刚才选择的ANSYS FLEXlm License Manager这个东西,然后在force server shutdown前面打上对勾,点击stop server ,最低下出现stoping server,看上面选择config Services,下拉菜单是ANSYS FLEXlm License Manager,点击第一个browse指定C: Program FilesAnsys IncShared FilesLicensingintelLmgrd.exe
,第二个browse指定C: Program FilesAnsys IncShared FilesLicensinglicense.dat
第三个browse指定C: Program FilesAnsys IncShared FilesLicensinglicense.log(目录里面没有你可以这样写,它会自动生成,别的就不行)
在start server at power up和 use services前面打上对勾,然后点击save services
这时回到start/stop Reread一项,点击start server,这时最下面会出现server start successful。
9.重新启动机器
到此时,你只是安装完软件

cfd 发表于 2008-5-20 12:42

下面并行安装,关键是rsh互相连通
你要将每台机器互连最好在同一个工作组或者域下面,互相ping +机器名可以通,要有ipx协议2k还要有netbios协议

将XX:programming filesAnsys IncCFXCFX-10.0inwinnt下面的rshd文件复制到windowssystem32下面(w2k要在winntsystem32下),然后打开开始--->运行输入cmd,然后在dos命令行下面转到windowssystem32下,运行rshd /install
安装,rsh,每台安装windows的机器都要这样,然后在服务(控制面板---->管理工具-->服务)里面找到Remote Shell (RSH) Service,先停止,然后在登陆下面设置此账户(管理员权限的账户[每台机器都要用相同的用户名和密码]),设置完毕确定,然后在启动,这时rsh启动了,最好重新启动一下

这时用命令rsh hostname cmd /c echo working (这里面的hostname就是你想要连接机器的名字包括自己),出现working就是连接成功,不成功就是网络有问题,或者rsh设置错误

rsh互连了,打开你要用的主机master,打开cfx,在tools下面的command line
然后输入cfx5parallel -install-mpich-service
安装mpich
在输入cfx5parallel -register-mpich-user
这时填入的就是你刚才指定rsh运行的用户,和密码,这是每台机器共用的
这时大致就是安装完毕了,具体的一些细节可用帮助里面的方法,微调,
这时在每台机器必须要安装slover,pre和post可以没有
,但是master机器应该全安装

我一般每台都全部安装,这样用那台机器都可以做master

最后一步,是将XX: Program FilesAnsys IncCFXCFX-10.0config下面的hosts.ccl文件用记事本打开,

# CFX-5 Host Definition File
#
# Automatically created
# by D: Program FilesAnsys IncCFXCFX-10.0inperllibcfx5parhosts.pl
# at Fri Mar 24 13:47:16 2006.

EXECUTION CONTROL:
PARALLEL HOST LIBRARY:
  HOST DEFINITION: canter
    Installation Root = d: Program FilesAnsys IncCFXCFX-%v
    Host Architecture String = intel_p4.sse2_winnt5.1
    Relative Speed = 0.99
  END # HOST DEFINITION canter
  HOST DEFINITION: wd
    Installation Root = e: Program FilesAnsys IncCFXCFX-%v
    Host Architecture String = intel_pentium_winnt5.1
    Relative Speed = 0.44
  END # HOST DEFINITION wd
END # PARALLEL HOST LIBRARY
END # EXECUTION CONTROL

这时两台机器例子,你将每台机器hosts.ccl的文件中的
  HOST DEFINITION: hostname
    Installation Root = e: Program FilesAnsys IncCFXCFX-%v
    Host Architecture String = intel_pentium_winnt5.1
    Relative Speed = 0.44
  END # HOST DEFINITION hostname
代码复制然后拷贝到master中的hosts.ccl里面的像上面例子一样,如果你将这个完整的hosts.ccl放到每台机器下面,那么每台机器都可以作为master,呵呵!

今天累了,就到这吧,对了,你运行并行的时候会出现一个错误,那是因为这个license版本不是并行用的,所以会出错误,我还没有修改好,不过可以用,我看国外的人运行并行的时候也会出现这个错误,呵呵。

linux版本的安装,明天再说吧,比较麻烦,但是调好了比windows快很多。

cfd 发表于 2008-5-20 12:44

忙了一天,现在说说linux版本的并行计算,首先要说明的,大家手里拿到的应该都是单机版,但是可以做并行,要注意的是,不能开两个以上进程,就是说,我在master运算一个算例,占用了两个节点(或者更多)那么再打开一个算里会出现错误。
linux安装方法:
首先要做的确定你的有几个网卡,一个就不要担心了,但是多个网卡,你要注意了,一定要用ifcong -a 找到你主要的网卡,将网卡物理地址和机器名记下,
其次要注意的是,linux一定要安装rsh和mpich,并且要每台机器互连,并且通路,具体方法,最好的配置方式可以参照[url=http://linux.vbird.org/home.php]http://linux.vbird.org/home.php[/url]
鳥哥的 Linux 私房菜里面有全套的配制方法,至于NIS和NFS你是否要配置根据需要,我没配置也能运行,但是rsh必须好用,,剩下的就是在linux上安装cfx10,安装比较麻烦,一不小心就会出问题,下面将详细方法列出:
1:生成license在windows下面,生成方法同windows一样,但是,我采用了一点点改变,就是把ansys.dat文件中的DAEMON ansyslmd "C: Program FilesAnsys IncShared FilesLicensingintelansyslmd.exe"东西改变以下,改成你建立的安装目录
如/usr/cfx10下面那么就改成DAEMON ansyslmd "/usr/cfx10/shared_files/licensing/linia32/ansyslmd"将
VENDOR_STRING=customer:00264721 中的数字不同机器用不同的编号,如改成
VENDOR_STRING=customer:00264720
我这样做是为了不会产生用户冲突,不知道真的能否改变,但是现在看来没出问题。将生成的license.dat放到linux服务器上
2:在终端根目录下用vi .bash_profile命令打开 .bash_profile文件,配置环境变量,加入ANSYSLMD_LICENSE_FILE=1055@hostname
hostname是你的机器名子,可比以为是参数,注意变量名ANSYSLMD_LICENSE_FILE紧贴着=号,否则不认
同理填入LM_LICENSE_FILE={这里填入的是你安装license的目录例如"/usr/cfx10/shared_files/licensing/license.dat}
然后在export后面变量名中填入ANSYSLMD_LICENSE_FILE和LM_LICENSE_FILE,
这时侯,重新启动机器,为了让变量生效,否则后面要出问题
3:重启后,挂上光驱,装入安装盘
命令: mount -t iso9660 -o loop {安装文件位置和文件名} {装在光驱的文件目录}
成功后,继续下步。
进入光盘,找到install文件
在终端中./install
按照提示安装,我先安装程序,后安装license manager,谁先谁后都没关系,但是master上面全部安装,而solver上面最少要安装solver,我一般不论master还是solver都安装,因为这样可以将任何一台机器都作为master,根据你的需要。安装程序没什么说的,但是安装license manager的时候要千万小心了,我是将每台机器都作为license server(不用说,是为了方便),每个都用自己的license。当让你安装license的时候,2种方法都可以,一个是指定license位置,一个是生成一个license,第一种方法,你要先将1:中生成的license.dat文件考贝到license安装目录,例如/usr/cfx10/shared_files/licensing/下面,因为及其比较傻,就认识这个地方,呵呵,如果没有出现
/shared_files/licensing这个目录别着急,是因为你安装license manager的时候程序没复制完,复制完了就会出现的。第二种方法就是你用gedit或者相同东西打开你的1:中生成的license.dat,全拷贝,然后粘贴在你生成文件中,这样也可以生成license.dat文件在你安装目录里面。为了保证这一过程正确,你可以打开目录/shared_files/licensing看到安装成功后会出现license.log文件,然后在出现一个ansyslmd.ini文件,打开ansyslmd.ini,看到server=1055@hostname这个东西,如果不是这个,那么就你安装有问题了,检查一下。安装完成后会提示你启动license,当然yes了,不要高兴太早,因为,如果你一旦重新启动机器那么license会自动关闭,你需要启动license,方法两种,在终端中进到
/usr/cfx10/shared_files/licensinglinia32目录下面然后运行./lmgrd -c /usr/cfx10/shared_files/licensing/license.dat启动license。或者在/usr/cfx10/CFX-10.0/bin运行。./cfx5launch命令,然后在cfx平台上点击tools选择ansys license manager,出现后点击start license,这时窗口出现runing就是启动了,否则就是你安装错误了,回去检查。
其实你可以在/etc/rc.d/rc文件中最后一行填入/usr/cfx10/shared_files/licensinglinia32/lmgrd -c /usr/cfx10/shared_files/licensing/license.dat
这样每次重新启动都会自动启动license了
这时你再单机运行一下程序做个例子,看看有没有问题,如果没有那么,告诉你,你可以做并行了,但是还要有一步,就是找到host.ccl文件,将所有机器的这个文件合成一个,然后放到每他机器里面,我的位置在/usr/cfx10/CFX-10.0/config中,具体参照windows中的方法
现在恭喜你,你可以做并行了,但是并行不一定就一定快,多少网格,占用多少内存,多大工作量用多少个节点看看help里面由计算公式,还要根据具体情况具体分析,和你的配置也有关。

最终祝愿所有像我一样,因为计算问题而苦恼的朋友们早点摆脱困境
我会陆续将我计算时候出现的问题和经验拿出来和大家共同分享和讨论,希望大家互相共勉
终结

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.