作者dv6000 (dv6000)
看板Fortran
标题Re: [问题] 怎麽写可需要用到大量记忆体的小程式
时间Wed Sep 9 02:08:49 2009
你的问题,可以分为两部份来讨论.
一个是"k"可以开多大的空间,可以k(100)还是可以到k(10000000000000)
这个,就要请你看看你使用的fortran的手册了,一般都会有上限.
此外,你说只能用2gb?那应该是你OS的极限,
如果你用32bits的OS,比如说WINXP 32bits or Linux 32bits,
基本上 32bits OS就只能使用4gb的memory,东扣扣,西扣扣,你的程式最多就只能用2gb罗.
要解决不难,你使用64 bits 的OS+ 64 bits 的complier,你就可以超越2gb的极限了.
我这所说的2gb是指一整个code可以使用超过2gb的ram,不是单指一个"k"阵列.
也许单一阵列会无法开到2gb?那要看你的fortran.
不过,就我自己的经验,如果你的code使用超过2gb的ram,那算是大的code,
那最好不要在小pc跑,
光是那些do, do wile的回圈数就很大,所以code会很慢,跑几个月得到一个结果不实在.
应该找个超级电脑或是平行你的code.
如果有错, 还请先进指教啊.
※ 引述《s06yji3 (阿南)》之铭言:
: implicit none
: integer i
: real*16 k(125000000)
: k = 0.0
: do i = 1, 1000
: k=k+1.0
: end do
: end
: 这是我写的code,原本预计他可以用到10gb的记忆体作计算
: 不过目前看到大概也只用到2gb而已。
: 如果把k(125000000)再增加一个order的话,编译器就会出问题。
: 想请问,有没有什麽写法,可以直接用到10~30GB记忆体容量的小程式
: 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 141.212.168.98
1F:→ gilocustom:16byte*125000000=2,000,000,000byte ~ 2GB 09/09 02:42
2F:→ blc:unix like有时候kernel和shell也会限制记忆体,当然也能解除。 09/09 09:47