#parallel-processing #jupyter-notebook #multiprocessing #jupyter #ipython-parallel
#параллельная обработка #jupyter-notebook #многопроцессорная обработка #jupyter #ipython-parallel
Вопрос:
Я пытаюсь следовать этим инструкциям по использованию ipyparallel
, чтобы ускорить некоторые скрипты Python в Jupyter Notebook. При выполнении
import ipyparallel as ipp
IPPC = ipp.Client()
Я получаю следующую ошибку:
Using matplotlib backend: TkAgg
Waiting for connection file: ~/.ipython/profile_default/security/ipcontroller-client.json
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
<ipython-input-11-bf8e572b63bc> in <module>()
18 display(HTML("<style>.container {width:100% !important;}</style>"))
19
---> 20 IPPC = ipp.Client()
21
22
/home/guest/.local/lib/python3.7/site-packages/ipyparallel/client/client.py in __init__(self, url_file, profile, profile_dir, ipython_dir, context, debug, sshserver, sshkey, password, paramiko, timeout, cluster_id, **extra_args)
415 no_file_msg,
416 ])
--> 417 raise IOError(msg)
418 if url_file is None:
419 raise IOError(no_file_msg)
OSError: Connection file '~/.ipython/profile_default/security/ipcontroller-client.json' not found.
You have attempted to connect to an IPython Cluster but no Controller could be found.
Please double-check your configuration and ensure that a cluster is running.
Файл ~/.ipython/profile_default/security/ipcontroller-client.json
не существует (папка пуста!!) и выполнение sudo find / -name ipcontroller-client
не возвращает никаких результатов.
Кроме того, при попытке запуска ipcluster
в терминале я получаю
user@laptop:~$ ipcluster start -n 2
ipcluster: command not found
и вкладка «Кластеры» в Jupyter Notebook пуста: Скриншот
Тем не менее, ipyparallel
определенно установлен:
user@laptop:~$ pip3 install ipyparallel
Requirement already satisfied: ipyparallel in ./.local/lib/python3.7/site-packages (6.3.0)
Requirement already satisfied: jupyter-client in /usr/lib/python3/dist-packages (from ipyparallel) (5.2.3)
Requirement already satisfied: traitlets>=4.3 in /usr/lib/python3/dist-packages (from ipyparallel) (4.3.2)
Requirement already satisfied: tornado>=4 in /usr/lib/python3/dist-packages (from ipyparallel) (5.1.1)
Requirement already satisfied: pyzmq>=13 in /usr/lib/python3/dist-packages (from ipyparallel) (17.1.2)
Requirement already satisfied: ipykernel>=4.4 in /usr/lib/python3/dist-packages (from ipyparallel) (4.9.0)
Requirement already satisfied: ipython-genutils in /usr/lib/python3/dist-packages (from ipyparallel) (0.2.0)
Requirement already satisfied: decorator in /usr/lib/python3/dist-packages (from ipyparallel) (4.3.0)
Requirement already satisfied: ipython>=4 in /usr/lib/python3/dist-packages (from ipyparallel) (5.8.0)
Requirement already satisfied: python-dateutil>=2.1 in /usr/lib/python3/dist-packages (from ipyparallel) (2.7.3)
Requirement already satisfied: pexpect in /usr/lib/python3/dist-packages (from ipython>=4->ipyparallel) (4.6.0)
и есть три файла ipcluster
, ipcontroller
и ipengine
в /home/user/.local/bin
которых находятся скрипты Python.
В чем может быть проблема?
Ответ №1:
Сара.Кстати, недавно у меня был аналогичный первоначальный опыт работы с ipyparallel, где симптомы были почти такими же. После его установки содержимое вкладки «Кластеры» папок, файлов и Jupyter Notebook, о котором вы упоминали, отсутствовало.
Проблема заключалась в том, что, хотя казалось, что ipyparallel был установлен, он был либо установлен неправильно, либо конфигурация, разрешения или владельцы (пользователь или root) были перепутаны.
Но сначала вы сообщили:
user@laptop:~$ ipcluster start -n 2
ipcluster: command not found
и "there are three files: ipcluster, ipcontroller, and ipengine in /home/user/.local/bin which are Python scripts."
В моей системе Ubuntu эти программы, установленные в /usr/local/bin
, не ~/.local/bin
.
В любом случае, ipcluster: command not found
означает, что ipcluster отсутствует на вашем пути выполнения.
Вы можете запустить его, введя полный путь к программе или первый компакт-диск в ее папку.
Это может решить вашу проблему, или это может выявить больше проблем.
Хорошо, теперь о моей истории и ее решении…
Я впервые установил ipyparallel:
$ pip3 install ipyparallel
Были проблемы, поэтому впоследствии,
$ pip3 install --user ipyparallel
Проблемы остались, поэтому,
$ sudo pip3 install ipyparallel
Я тоже видел сообщения «Требование уже выполнено: …», но они были
этому предшествует предупреждение:
WARNING: The directory '/home/(user name here)/.cache/pip' or its parent
directory is not owned or is not writable by the current user. The cache
has been disabled. Check the permissions and owner of that directory.
If executing pip with sudo, you may want sudo's -H flag.
Все по-прежнему не работает!
Итак, я запустил
$ sudo -H pip3 install ipyparallel
На этом этапе были обнаружены все папки и файлы, соответствующие элементы появились на вкладке «кластеры» Jupyter Notebook, и проблемы исчезли.
Теперь я признаю, что я не понимаю всего этого, и я склонен действовать инстинктивно и по опыту, пока все в конечном итоге не заработает (или нет). Итак, я не говорю, что вам нужно (или следует) это сделать, но я надеюсь, что мои комментарии послужат отправной точкой и некоторыми полезными советами.