尝试在多个点评估函数并存储在数组中时,我遇到了内存错误。我已经阅读了一些关于类似问题的其他帖子,我不认为我超出了我系统的内存限制:
total used free shared buff/cache available
Mem: 131898384 8964068 122074628 15128 859688 121905868
Swap: 14648316 1001760 13646556
以及
MemTotal: 131898384 kB
MemFree: 75056308 kB
MemAvailable: 74889296 kB
错误消息是:
PDF= np.zeros([T,Y])
MemoryError
我的代码是:
Y=40000
T = 200000
tmin = 0
timestep = 10
tmax = timestep*T
TD_Psi = np.zeros([T,Y],'complex')
t = np.linspace(tmin, tmax, T)
for j in range(T):
for i in range(M):
TD_Psi[j] = TD_Psi[j] + c[i]*MO_basis[i]*np.exp(-evals[i]*t[j]*1j)
PDF= np.zeros([T,Y])
for time in range(T):
PDF[time] = np.real(np.conjugate(TD_Psi[time])*TD_Psi[time])
我不确定问题是在我的代码或系统中,以及我可以采取哪些措施来解决此问题。在给我错误之前,它会一直运行到T = 150000
。
非常感谢你的帮助。
答案 0 :(得分:2)
np.zeros([T,Y],'complex')
是128 GB。 np.zeros([T,Y])
是另一个64 GB。您没有192 GB的RAM。你的记忆力不足。