小编Yev*_*eny的帖子

使用多处理运行子进程时出现系统错误

我在使用Multiprocessing软件包(在Amazon EC2上的Ubuntu 12.04上使用numpy 1.7.0的python 2.73)并行执行一些简单的基于numpy的矩阵代数计算时遇到系统错误(如下所示).我的代码适用于较小的矩阵大小但崩溃较大的(具有足够的可用内存)

我使用的矩阵的大小是很大的(我的代码运行良好的1000000x10浮点密集矩阵,但崩溃1000000x500 - 我顺便通过子进程传递这些矩阵).10 vs 500是运行时参数,其他所有内容保持不变(输入数据,其他运行时参数等)

我也尝试使用python3运行相同的(移植的)代码 - 对于较大的矩阵,子进程进入睡眠/空闲模式(而不是像在python 2.7中那样崩溃),程序/子进程只是挂在那里什么都不做.对于较小的矩阵,代码可以使用python3运行良好.

任何建议都将受到高度赞赏(我这里的想法已经不多了)

错误信息:

Exception in thread Thread-5: Traceback (most recent call last):  
File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
    self.run()   File "/usr/lib/python2.7/threading.py", line 504, in run
    self.__target(*self.__args, **self.__kwargs)   File "/usr/lib/python2.7/multiprocessing/pool.py", line 319, in _handle_tasks
    put(task) SystemError: NULL result without error in PyObject_Call
Run Code Online (Sandbox Code Playgroud)

我使用的多处理代码:

def runProcessesInParallelAndReturn(proc, listOfInputs, nParallelProcesses):
    if len(listOfInputs) == 0:
        return
    # Add result queue to the list of argument tuples.
    resultQueue = mp.Manager().Queue()
    listOfInputsNew = [(argumentTuple, …
Run Code Online (Sandbox Code Playgroud)

python numpy multiprocessing

8
推荐指数
1
解决办法
1100
查看次数

标签 统计

multiprocessing ×1

numpy ×1

python ×1