作者acyang (阿光)
看板Fortran
标题[问题] linux上跑程式档案输出和程式进度不同ꠠ…
时间Thu May 14 20:54:21 2009
※ [本文转录自 LinuxDev 看板]
作者: acyang (阿光) 看板: LinuxDev
标题: [问题] linux上跑程式档案输出和程式进度不同步的问题
时间: Thu May 14 20:52:29 2009
各位前辈好
小弟在linux based的计算主机上执行一些科学运算程式,
有一个问题困扰了我很久,一直无法解决,
所以想向大家求救,
我是用fortran来写作程式的,
由於程式执行时间很长,为了保险起见,
程式中有加入输出"纪录档"的程式码,
(纪录档指的就是如果程式不幸中断,可以从这纪录档接续开始)
程式如果在windows环境下,
纪录档会随着程式的进行正常地输出正常地更新,
(像是跑完了第1000次叠代,纪录档的资讯也更新到第1000次的状态)
但是如果相同的程式是放在linux based的计算主机上,
纪录档并没有正常发挥作用,
可能程式都跑完了第1000次叠代,纪录档却只有更新到第700次的状态,
甚至都没有输出,要等到程式结束後才会输出,
这样一点纪录的作用都没有。
请问是linux的环境设定问题呢,还是我程式必须针对不同平台做修正呢,
又还是我在编译时要下特殊的参数呢?
请有在linux平台上执行过程式的前辈指点一下小弟我吧。
谢谢
注
软体环境及硬体环境
1.Q6600+技嘉965主机板
opensue11+PGI fortran complier
2.Q6600+技嘉965主机板
windows vista+PGI fortran complier
3.XEON E5410+不知名主机版
SUSE Linux 9+PGI fortran complier
4.AMD64 Opteron Dual Core 2.8
SUSE Linux 9.3+PGI fortran complier
纪录档案并不大,不超过1MB,
只有在2的情况下,才会正常地输出。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.155.8
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.155.8
1F:推 Solccp:会不会在buffer里面? flush看看..@@ 05/15 10:03
2F:→ acyang:感谢回答,再问一下假设纪录档是unit=113,是不是在 05/15 17:21
3F:→ acyang:要强制他写入硬碟时加上call flush(113)这样? 05/15 17:22