|
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ghcacj(金币+20):谢谢 2010-11-05 09:18:10
update 5
前面update 4中说到, 在生成map文件的时候, 迭代次数似乎没有起到什么作用, 从计算时间上来看, 1和100W次的差别, 如果需要统计平均, 那么应该还是能感觉得到的. 但是事实是: 没有差别.
那么为什么会这样? 打一个砂锅看看......
哦, 看到纹路了. 原来是这样的:
首先, 我们看到在 生成map的控制文件中, 有可能修改的是这样的两个section:
------ General Information ------------------------------------------
CO2 in CuBTC, to generate C_CO2 Pamp@CuBTC
1 # No. of iteration
1
1
1
1
1
1
C_CO2.CuBTC.pmap.res
C_CO2.CuBTC.pmap.con
或者
------ Mapmaker Information -----------------------------------------------
1 # Number of maps to make
# PLEASE KEEP THIS 'BLANK LINE'!!
CuBTC # Name of the sorbent
CO2_C_prob_pmap # Name of prob atoms of the sorbate
NCOUL LJ # Typer of interaction to be mapped
0.1 # Grid of spacing, Angstrom
200.0 # High end potential cutoff, KJ/mol
AUTO # Map filename or AUTO
我前面做的修改迭代次数是将General Information里面的第二行, (第一个“1”) 修改为1000000
这里我做了这样的测试:
(1) 将General Information修改为如下:
------ General Information ------------------------------------------
CO2 in CuBTC, to generate C_CO2 Pamp@CuBTC
TEST # No. of iteration
TEST
TEST
TEST
TEST
TEST
TEST
C_CO2.CuBTC.pmap.res
C_CO2.CuBTC.pmap.con
文件的其他部分不做任何改变. 你猜怎地?
mapmake 照样跑得很欢:
Map progress: 1000 points calculated 0.01% of total
Map progress: 2000 points calculated 0.01% of total
Map progress: 3000 points calculated 0.02% of total
Map progress: 4000 points calculated 0.02% of total
Map progress: 5000 points calculated 0.03% of total
Map progress: 6000 points calculated 0.03% of total
Map progress: 7000 points calculated 0.04% of total
Map progress: 8000 points calculated 0.04% of total
Map progress: 9000 points calculated 0.05% of total
Map progress: 10000 points calculated 0.05% of total
Map progress: 11000 points calculated 0.06% of total
Map progress: 12000 points calculated 0.07% of total
半个苹果下去了, 还没有任何错误地继续爬格子下去... 赶紧将任务停了.
这说明General Information里面的数值设置, 对生成map文件没有任何作用.
(2) 来个狠的. 将控制文件的其他section全部删除, 只留下这个:
------ Mapmaker Information -----------------------------------------------
1 # Number of maps to make
# PLEASE KEEP THIS 'BLANK LINE'!!
CuBTC # Name of the sorbent
CO2_C_prob_pmap # Name of prob atoms of the sorbate
NCOUL LJ # Typer of interaction to be mapped
0.1 # Grid of spacing, Angstrom
200.0 # High end potential cutoff, KJ/mol
AUTO # Map filename or AUTO
毫无意外, 程序报错, 说缺少某某Section之类的. 看来某些Section起不到实际作用, 但是没了它们, 还是不行的.
(等等, 这怎么听起来像是导师和学生的关系呢? ^-^)
(3) 刨根一下, 看看源文件 mapmaker.F90
哦, 原来这样....
那个文件中但是还真有一个DO循环, 也确实是针对 number of mapfile的. 莫非这个mapmake倒真可以并行起来,同时生成几个map文件?
试试吧.
(3)-1
Search一下这个Do循环的ID:
mmparams%nmaps
还好, 没有多少行, 看起来也是在读入control文件的一些信息, 并且做一些预判断.
(3)-2
修改一下试试看能不能给我同时生成两个map文件. 修改的Section如下, 其他未提及的保持原样.
------ Mapmaker Information -----------------------------------------------
2 # Number of maps to make
# PLEASE KEEP THIS 'BLANK LINE'!!
CuBTC # Name of the sorbent
CO2_C_prob_pmap # Name of prob atoms of the sorbate
NCOUL LJ # Typer of interaction to be mapped
0.1 # Grid of spacing, Angstrom
200.0 # High end potential cutoff, KJ/mol
AUTO # Map filename or AUTO
# PLEASE KEEP THIS 'BLANK LINE'!!
CuBTC # Name of the sorbent
CO2_C_prob_pmap # Name of prob atoms of the sorbate
NCOUL LJ # Typer of interaction to be mapped
0.1 # Grid of spacing, Angstrom
100.0 # High end potential cutoff, KJ/mol
AUTO # Map filename or AUTO
这里的意图是让程序给我生成不同CUTOFF的两个PMAP.
首先得到的报错是:
config.F90: Error: Could not allocate memory for grid%coords
好, 大意是内存不能Allocate, 也许格点太多, 内存不够.
Double check了一下config.F90, 也没有啥其他的发现. 于是修改了一下Grid of sapceing, 将原来的数值从0.1改为10.0
以此来减少生成的格点数目.
修改后的样子如下:
------ Mapmaker Information -----------------------------------------------
2 # Number of maps to make
# PLEASE KEEP THIS 'BLANK LINE'!!
CuBTC # Name of the sorbent
CO2_C_prob_pmap # Name of prob atoms of the sorbate
NCOUL LJ # Typer of interaction to be mapped
10.0 # Grid of spacing, Angstrom
200.0 # High end potential cutoff, KJ/mol
AUTO # Map filename or AUTO
# PLEASE KEEP THIS 'BLANK LINE'!!
CuBTC # Name of the sorbent
CO2_C_prob_pmap # Name of prob atoms of the sorbate
NCOUL LJ # Typer of interaction to be mapped
10.0 # Grid of spacing, Angstrom
100.0 # High end potential cutoff, KJ/mol
AUTO # Map filename or AUTO
程序倒真能运行了. 但是会“发现”map文件的文件名已经存在.
不管怎样修改, 我都没有解决这个’误会’就只好作罢. 我想大概程序作者只是有这样的规划, 但是也没有能真正在程序中实现吧.
总结一下, 这个update 5 告诉我们, 生成map的时候, 不管是PAMP还是EMAP, 迭代的次数是不需要担心的.
[ Last edited by qphll on 2010-11-5 at 08:17 ] |
|