什么';vmem的用途是什么?我可以在python中使用vmem吗?
在我的集群中,我只能使用20 Gb内存和230 Gb vmem。我编写了一个python脚本来调用执行文件(使用什么';vmem的用途是什么?我可以在python中使用vmem吗?,python,linux,python-2.7,memory,Python,Linux,Python 2.7,Memory,在我的集群中,我只能使用20 Gb内存和230 Gb vmem。我编写了一个python脚本来调用执行文件(使用子流程)。每次调用(func)都会占用大约0.5 Gb的内存。我使用multiprocess同时进行多个调用。作为说明的简要代码如下: import pathos.multiprocessing as mp def func(i): subprocess.call(['cp',exe_file, exe_file+str(i)]) p = subprocess.Pop
子流程
)。每次调用(func
)都会占用大约0.5 Gb的内存。我使用multiprocess
同时进行多个调用。作为说明的简要代码如下:
import pathos.multiprocessing as mp
def func(i):
subprocess.call(['cp',exe_file, exe_file+str(i)])
p = subprocess.Popen(['./'+exe_file+str(i)], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
err = p.communicate()[1]
p.wait()
def fun_parallel(N):
p=mp.Pool(N)
p.map(func,range(100))
p.close()
p.join()
exe_文件
是执行文件,N
是同时运行的func
的编号。(我有很多线程,所以我可以设置<代码> n<代码>等于16, 32, 64,…不必考虑线程的限制)
我的问题很简单,
OSError:[Errno 12]无法分配内存
我猜原因是,对于N=32,使用的内存是32*0.5=16Gb,对于N=64,使用的内存是64*0.5=32Gb,这高于内存限制20GB
那么vmem有什么用呢?既然我有230 Gb的vmem,它能做些什么吗
func
?(但我认为这不是一个好方法…)有没有什么好方法可以自动利用集群的每一个潜力虚拟内存不是真实内存。运行子进程需要实际内存。@IgnacioVazquez Abrams谢谢,有没有办法使用vmem?我应该使用操作系统吗?使用vmem会显著降低速度吗?虚拟内存不是真实内存。运行子进程需要实际内存。@IgnacioVazquez Abrams谢谢,有没有办法使用vmem?我应该使用操作系统吗?使用vmem会显著降低速度吗?