Проблема запуска октавы с openmpi в Жужу
Я пытаюсь использовать openmpi из октавы для запуска других экземпляров октавы на удаленных машинах. Когда я запускаю скрипт, который должен запускать различные процессы, он жалуется на устаревшие библиотеки:
Running octave in parallel on /opt/data/octave/test using 24 processors
[pleasant-increase:13959] Warning: could not find environment variable "LD_PRELOAD"
[octave-controller:15259] mca: base: component_find: unable to open /usr/lib/openmpi/lib/openmpi/mca_paffinity_hwloc: perhaps a missing symbol, or compiled for a different ver$
[octave-controller:15259] mca: base: component_find: unable to open /usr/lib/openmpi/lib/openmpi/mca_carto_auto_detect: perhaps a missing symbol, or compiled for a different v$
[octave-controller:15259] mca: base: component_find: unable to open /usr/lib/openmpi/lib/openmpi/mca_carto_file: perhaps a missing symbol, or compiled for a different version $
[octave-controller:15259] mca: base: component_find: unable to open /usr/lib/openmpi/lib/openmpi/mca_shmem_mmap: perhaps a missing symbol, or compiled for a different version $
[octave-controller:15259] mca: base: component_find: unable to open /usr/lib/openmpi/lib/openmpi/mca_shmem_posix: perhaps a missing symbol, or compiled for a different version$
[octave-controller:15259] mca: base: component_find: unable to open /usr/lib/openmpi/lib/openmpi/mca_shmem_sysv: perhaps a missing symbol, or compiled for a different version $
--------------------------------------------------------------------------
It looks like opal_init failed for some reason; your parallel process is
likely to abort. There are many reasons that a parallel process can
fail during opal_init; some of which are due to configuration or
environment problems. This failure appears to be an internal failure;
here's some additional information (which may only be relevant to an
Open MPI developer):
opal_shmem_base_select failed
--> Returned value -1 instead of OPAL_SUCCESS
--------------------------------------------------------------------------
[octave-controller:15259] [[INVALID],INVALID] ORTE_ERROR_LOG: Error in file runtime/orte_init.c at line 79
--------------------------------------------------------------------------
It looks like MPI_INIT failed for some reason; your parallel process is
likely to abort. There are many reasons that a parallel process can
fail during MPI_INIT; some of which are due to configuration or environment
problems. This failure appears to be an internal failure; here's some
additional information (which may only be relevant to an Open MPI
developer):
ompi_mpi_init: orte_init failed
--> Returned "Error" (-1) instead of "Success" (0)
--------------------------------------------------------------------------
*** An error occurred in MPI_Init
*** on a NULL communicator
*** MPI_ERRORS_ARE_FATAL: your MPI job will now abort
Это продолжается для различных процессов, некоторые библиотеки отличаются, но всегда имеют
opal_shmem_base_select failed
...
ompi_mpi_init: orte_init failed
Я видел комментарии, которые говорят, что измените флаги компиляции на openmpi и перекомпилируйте.
Проблема в том, что я использую локальный репозиторий juju для предоставления компьютеров, и я не могу понять, куда поместить библиотеки, чтобы они загружались при инициализации, вместо версии, которую в настоящее время использует juju. Я знаю, что пакы где-то хранятся. Я не уверен, находятся ли они на конечном автомате juju, на сервере juju, или juju действует как его собственный проходной канал apt-get.
Любые идеи приветствуются.
Добавлено 2015.04.28 1723PST-в ответ на Роби Басак --------------------------------------- ------------
Спасибо за награду, Хорхе Кастро
Мой кластер не подключен к сети. Контроллер MaaS на данный момент подключен, но в будущем будет отключен. Когда я настроил Juju, я использовал локальный репозиторий, как в
juju sync-tools -e maas --local-dir="~/.juju/sync-tools"
juju bootstrap -e mass --debug --upload-tools=true --metadata-source="~/.juju/sync-tools" --to jujuBS.maas
juju deploy --repository=".juju/charms" local:juju-gui --to 0
juju expose juju-gui
Я использовал один и тот же механизм для подвесок октавного и октавного контроллеров. Когда я смотрю на модуль.... log-файлы в /var/log/juju, на одном из узлов я вижу, как загружаются многие apts. Они хранятся где-то, так как узел не имеет доступа к сети.
Некоторые из них загружаются в результате загрузки чарма, поэтому кажется, что либо MaaS, либо juju осведомлены о подходящих требованиях к чарам. Я добавил несколько октавных пакетов в талисман и инсталляцию, чтобы октава установила их, и вдруг появились необходимые apts, которые отсутствуют. Эти apts, очевидно, требуются в пакете octave (как оказалось, open-mpi был один). Я скачал его, добавил его в брелок и установил. Теперь пакет MPI загружается в октаве, но дает статус, который вы видите выше.
1 ответ
Короткий ответ: вы контролируете ситуацию; Вы можете делать то, что вам нравится в очарование install
крюк. По умолчанию используется основной архив Ubuntu с squid-deb-proxy MAAS, действующим в качестве прокси-кэша; отдельное зеркало или репозиторий не активны.
Контроллер MaaS на данный момент подключен, но в будущем будет отключен.
Я думаю, что вы используете squid-deb-proxy от MAAS, который кэширует пакеты, но не более того. По умолчанию это означает, что среда, которую видит ваш установщик charm, настроена на использование squid-deb-proxy, предоставленного MAAS, для загрузки пакетов, но sources.list
по-прежнему указывает на основной архив Ubuntu. Таким образом, ваши пакеты поступают из архива Ubuntu через MAAS в качестве кэша пакетов.
Чтобы использовать вместо этого пользовательский пакет, вы хотите изменить свои прелести install
перехватите его, сначала переконфигурировав apt. Например, вы можете установить PPA с вашим измененным пакетом, а затем договориться о install
крюк, чтобы использовать это.
Вы можете увидеть общий пример этого в реализации source
опция конфигурации charm в крюке изменения конфигурации mariadb charm. В случае нестандартного талисмана, который вам не нужен, вы можете просто добавить строку вроде:
sudo add-apt-repository -y ppa:username/octave
перед установкой пакета в ваш install
крючок или подходящий эквивалент, если ваше обаяние написано на другом языке.
Если вы хотите отключить машину MAAS от доступа к Интернету, вам нужно будет внедрить свой собственный локальный репозиторий apt, а затем либо организовать squid-deb-proxy на машине MAAS, чтобы использовать его в пользу archive.ubuntu.com
(при условии, что вы отразили это), или иным образом договоритесь с вашими установочными хуками, чтобы настроить apt для его использования.