- 积分
- 6
- 注册时间
- 2010-3-9
- 仿真币
-
- 最后登录
- 1970-1-1
|
本帖最后由 magicwolf 于 2011-7-10 13:19 编辑
今天尝试了lsdyna的并行计算,过程如下:
1. 安装virtualbox虚拟机到自己的笔记本,虚拟机中安装xp,克隆成两个,与笔记本构成一个小型PC集群,主机名和IP分别为host1:192.168.1.1(笔记本) ;host2:192.168.1.2(虚拟的xp1);host3:192.168.1.3(虚拟的xp2)。在这三个主机中创建相同的管理员帐户如 admin , 密码 123
2. 在三个主机中安装mpich1.2.5,安装好后打开“任务管理器”中的“进程”选项卡,查看是否有一个mpd.exe的进程。如果有的话说明安装成功。
3. 安装好mpich之后还必须对每台主机进行注册才能使用:三个主机分别执行程序目录(默认为C:\Program Files\MPICH\mpd\bin\)下的mpiregister.exe,首先会提示输入用户账号(第一步中创建的admin),然后会提示输入两遍密码,之后会问你是否保持上面的设定。如果选择是,则上面的信息将写入硬盘,否则保存在内存中,再重新启动之后就不存在了,这样mpich才能在网络环境中访问每台主机。
4. 下载mpp971_s_R5.1.1_Intelsse_win32_mpich125.zip,解压出来的mpp971.exe是求解器文件,I2a.exe用于转换结果文件,将求解器放置到三个主机中无空格无中文的目录如:C:\LSDYNA\mpp\中,设置系统环境变量LSTC_FILE=license的路径
5. 为方便操作,将mpich程序目录(C:\Program Files\MPICH\mpd\bin\)加入系统环境变量path中;在3个主机中的C:\LSDYNA\目录下放一个算例testcase.k,执行以下命令进行单机测试- mpirun -np 2 C:\LSDYNA\mpp\mpp971.exe i=C:\LSDYNA\testcase.k
复制代码 ,normal termination的话再进行多机并行计算,2表示cpu数
6. 执行并行计算有以下3种方法,前两种必须保证三个主机中的求解器路径相同,k文件路径也相同,如求解器都放在C:\LSDYNA\mpp\mpp971.exe ,k文件都放在C:\LSDYNA\testcase.k:
方法一:用MPIConfig.exe建立主机列表,执行- mpirun -np 6 C:\LSDYNA\mpp\mpp971.exe i=C:\LSDYNA\testcase.k
复制代码 这种方法最方便,MPIConfig的设置方法参见附图。
方法二:直接执行- mpirun -hosts 3 host1 2 host2 2 host3 2 C:\LSDYNA\mpp\mpp971.exe i=C:\LSDYNA\testcase.k
复制代码 (第一个3表示host数;后面三个2表示cpu数;host1(2,3)可用ip替换,效果一样的)
方法三:使用配置文件,这种方法最灵活,可设置的参数也较多(请参考mpich的user guide),我的设置如下:- exe C:\LSDYNA\mpp\mpp971.exe i=C:\LSDYNA\testcase.k
- hosts
- 192.168.1.1 2
- 192.168.1.2 2
- 192.168.1.3 2
复制代码 保存成一个文本文件,如cfg.txt
执行即可
当然,以上三个ip也可以用host1,host2,host3替换
计算完成后在host1中会生成主要的结果文件,host2,host3中也会生成一些文件。
7.若求解器或k文件在三个主机中的安装位置不同,可采用上一步中第三种方法,蛋疼的假设:
host1中求解器路径C:\LSDYNA\mpp\mpp971.exe ,k文件路径C:\LSDYNA\testcase.k;
host2中求解器路径C:\1\mpp\mpp971.exe ,k文件路径C:\1\testcase.k;
host3中求解器路径C:\a\mpp\mpp971.exe ,k文件路径C:\a\testcase.k;
配置文件则设置为:- exe C:\LSDYNA\mpp\mpp971.exe i=C:\LSDYNA\testcase.k
- hosts
- host1 2
- host2 2 C:\1\mpp\mpp971.exe i=C:\1\testcase.k
- host3 2 C:\a\mpp\mpp971.exe i=C:\a\testcase.k
复制代码 host1无求解器路径和k文件路径,则使用第一行"exe "后面的路径。
host2,3则使用指定路径求解器和文件
结果文件的生成位置:在host1中执行mpirun cfg.txt命令时,其“当前目录”为结果文件的生成位置,若其他两个主机中不存在该目录,host2和host3中的结果文件会跑到C:\windows\system32里去了,k文件手册中说可设置p=pfile参数改变输出结果的位置,方法3中设置pfile似乎行不通。
当前目录即命令提示符(cmd)中“>”前面的那串字符表示的目录,如
C:\Documents and Settings\Administrator> 表示当前目录为“C:\Documents and Settings\Administrator\”
mpirun的运行参数,mpiregister及mpiconfig的设置可以看mpich1.2.5程序自带的user guide的第五节Tools;
以上过程均在win32上进行,win32的mpp_dyna不知道支持不支持mpich2,所以安装的是mpich1.2.5,64位的mpp_dyna需要mpich2,所以操作会有所不同,但总体过程相似的。
===========
07.09 补充1:win32版mpp_dyna不完全支持mpich2,可以安装mpich1的dll文件,再安装mpich2,程序可以运行,但是只能单核计算。mpich2的执行程序换成了mpiexec,配置文件设置方式有所不同(见mpich2 user guide p.5-6)
07.09 补充2:对比了下mpp版本与smp版本在单机4核8线程(伪8核)64位机器上的执行效率,计算一个DYNA自带算例airbag_deploy.k,mpp版选8核用了15s,选6核用了17s;smp版选8核用了28s,选6核用了27s。结论是1.mpp版本多核计算的效率要明显高于smp版;2.smp版不一定选最高核数时计算效率最高。
07.09 补充3:mpp计算时不能Ctrl+C,sw*,因为Ctrl+C会导致程序终止。解决方法是:新开一个cmd窗口,cd进入工作目录,键入命令其他命令类似,原理可见《常见问题2.0》第36问。 |
评分
-
6
查看全部评分
-
|