BrokenPipeError: [Errno 32] сломанная труба - PullRequest
0 голосов
/ 05 июля 2018

Я получаю BrokenPipeError: [Errno 32] Ошибка сломанной трубы при использовании многопроцессного пакета Pathos. По сути, каждый процесс выполняется с моделью обучения. Лично я думаю, что это проблема памяти, чем все остальное. Однако любые предложения будут оценены!

  Process ForkPoolWorker-9:
Traceback (most recent call last):
  File "/usr/lib/python3.5/multiprocessing/pool.py", line 125, in worker
    put((job, i, result))
  File "/home/ubuntu/.local/lib/python3.5/site-packages/sklearn/externals/joblib/pool.py", line 386, in put
    return send(obj)
  File "/home/ubuntu/.local/lib/python3.5/site-packages/sklearn/externals/joblib/pool.py", line 372, in send
    self._writer.send_bytes(buffer.getvalue())
  File "/usr/lib/python3.5/multiprocessing/connection.py", line 200, in send_bytes
    self._send_bytes(m[offset:offset + size])
  File "/usr/lib/python3.5/multiprocessing/connection.py", line 404, in _send_bytes
    self._send(header + buf)
  File "/usr/lib/python3.5/multiprocessing/connection.py", line 368, in _send
    n = write(self._handle, buf)
BrokenPipeError: [Errno 32] Broken pipe

Во время обработки вышеуказанного исключения произошло другое исключение:

Traceback (most recent call last):
  File "/usr/lib/python3.5/multiprocessing/process.py", line 249, in _bootstrap
    self.run()
  File "/usr/lib/python3.5/multiprocessing/process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/python3.5/multiprocessing/pool.py", line 130, in worker
    put((job, i, (False, wrapped)))
  File "/home/ubuntu/.local/lib/python3.5/site-packages/sklearn/externals/joblib/pool.py", line 386, in put
    return send(obj)
  File "/home/ubuntu/.local/lib/python3.5/site-packages/sklearn/externals/joblib/pool.py", line 372, in send
    self._writer.send_bytes(buffer.getvalue())
  File "/usr/lib/python3.5/multiprocessing/connection.py", line 200, in send_bytes
    self._send_bytes(m[offset:offset + size])
  File "/usr/lib/python3.5/multiprocessing/connection.py", line 404, in _send_bytes
    self._send(header + buf)
  File "/usr/lib/python3.5/multiprocessing/connection.py", line 368, in _send
    n = write(self._handle, buf)
BrokenPipeError: [Errno 32] Broken pipe

1 Ответ

0 голосов
/ 05 июля 2018

@ Isiah Meadows, что-то вроде этого. Коды моделирования работают нормально, и тот же процесс выполняется для другого входящего потока данных.

from pathos.pools import ProcessPool
pool = ProcessPool(5)
try:
    segment_lists = pool.map(segmentModelMaster, list(args_iteration))
    segment_grid_list, segment_evl_list = zip(*segment_lists)
except Exception:
    logger.error('Multi-process individual task failed, aborting!')
    pool.close()
    pool.terminate()
...