SimWe仿真论坛's Archiver

sschpc 发表于 2007-9-14 09:53

marc并行计算中的区域分解

1.marc的并行有两种方式,单输入文件方式和多文件方式。单文件方式只有一个输入文件,计算时在命令行中指定参数-nps;多文件方式预先对问题进行区域分解(在MENTAT中,main menu-》jobs-》domain decomposition,见下图),产生多个输入文件,计算时在命令行中指定参数-np。
[attach]137290[/attach]
   例如,现在有输入文件1example.dat, 2example.dat, 3example.dat, 4example.dat,命令行提交计算:
[color=Black][b]run_marc –jid example.dat –host hostfile[/b][/color]
hostfile文件内容如下:
[color=Black][b]dnode021 2 /tmp[/b][/color]
[color=Black][b]dnode022 2 /tmp[/b][/color]
其中第一列为计算机名,第二列为使用的cpu数,第三列为运行目录。
2.分块方式不同对并行计算的影响尤为巨大,甚至会导致计算无法进行,分块除了要使单元数量接近,还要尽量保证每一部分的荷载均衡。若是接触问题,要尽可能的把一个接触面放在同一个区域内,绝对不要把同属一个接触面的两个接触体放到不同的两个区域。
3.单文件输入方式中可以通过processor参数来控制区域分解的形式,格式如下(此处为marc2005r3格式,marc2005r2的手册有误):
[b]Processor,0,0,0,0,1,16,,1,[/b]
[b]1,1,1,1,[/b]
[b]0.0,0.0,1.0,0.0,0.0,0.0,[/b]
第一行:
第2~5个数字是没有用处的,可以任意填数字;
第6个数字代表是否采用单一数据文件,1为是,0为否。
第7个数字代表域分解方法的选择;
[list][*]11代表Metis Best decomposition[*]12代表Metis Element-Based decomposition[*]13代表Metis Node-Based decomposition[*]14代表Vector decomposition[*]15代表Radial decomposition[*]16代表Angular decomposition[/list]第8个数字代表是否调用out-of-core存储,1为是,0为否。
第9个数字为0或1,1为使用第二以及第三行,0为不使用。
第二行:
第1个数字代表是否移除孤岛
第2个数字代表拓扑图形效果,0为Coarse Graph,1为Fine Graph
第3个数字控制15、16分块方法中旋转轴上的点,0为使用模型的中心点,1为使用第3行中定义的点。
第三行:
第1、2、3个数字定义分块方法14、15、16中使用的三个方向余弦,
第4、5、6个数字定义坐标轴上点的x、y、z坐标。

[[i] 本帖最后由 sschpc 于 2007-9-20 16:25 编辑 [/i]]

nlj 发表于 2007-10-10 03:12

请问楼主,为什么我在DOS下运行那个测试平行算法的例子可以计算,为什么算mentat界面中做这个测试例子时,总出错呢。错误信息如下,
error: input file name
\\p238\MSC" -ci y -cr y -mhost C:\MSC.Software\hostfile\1tubebend_job1.dat
does not exist
                                

error: input file name
\\p238\MSC" -ci y -cr y -mhost C:\MSC.Software\hostfile\2tubebend_job1.dat
does not exist

看意思说说我的root computer上没有生成那分给两台计算机要用的相应文件,是哪儿出错了呢,谢谢。

nlj 发表于 2007-10-10 03:34

虽然运行不成功,但其实在DOS命令窗口中运行的那几个文件也已经生成了,我把它们放到DOS窗口下,它也能运行。不知道在mentat 里面运行不成的原因会是什么,挺有意思的。

sschpc 发表于 2007-10-10 11:45

回复 #3 nlj 的帖子

不太清楚,应该可以啊,我回去试试

页: [1]
 

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