juju에서 openmpi로 옥타브를 실행하는 데 문제가 있습니다.

juju에서 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가 현재 사용 중인 버전 대신 프로비저닝이 발생할 때 로드되도록 라이브러리를 어디에 두어야 할지 알 수 없다는 것입니다. 나는 packahes가 어딘가에 저장되어 있다는 것을 알고 있습니다. juju 상태 머신, juju 서버에 있는지 또는 juju가 자체 apt-get 통과 채널로 작동하는지 확실하지 않습니다.

어떤 아이디어라도 감사하겠습니다.

Robie Basak에 대한 응답으로 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

옥타브 및 옥타브 컨트롤러 참에 동일한 메커니즘을 사용했습니다. 노드 중 하나의 /var/log/juju에 있는 유닛....로그 파일을 보면 많은 apt가 로드되는 것을 볼 수 있습니다. 노드가 네트워크에 접근할 수 없기 때문에 이것들은 어딘가에 저장됩니다.

이들 중 일부는 참 로딩의 결과로 로드되므로 MaaS나 juju 중 하나가 참에 대한 적절한 요구 사항을 인식하고 있는 것 같습니다. 참 및 설치에 일부 옥타브 패키지를 추가하여 옥타브가 패키지를 설치했는데 갑자기 필수 apt가 누락되었습니다. 이러한 apts는 분명히 옥타브 패키지에 필요합니다(open-mpi는 밝혀진 대로 하나였습니다). 다운로드해서 참에 추가하고 설치했습니다. 이제 MPI 패키지는 옥타브로 로드되지만 위에 표시된 상태를 제공합니다.

답변1

짧은 대답: 귀하가 통제할 수 있습니다. 매력의 고리에서 원하는 것을 할 수 있습니다 install. 기본값은 프록시 캐시 역할을 하는 MAAS의 squid-deb-proxy와 함께 기본 Ubuntu 아카이브를 사용하는 것입니다. 별도의 미러나 저장소가 활성화되어 있지 않습니다.

MaaS 컨트롤러는 현재 연결되어 있지만 나중에는 연결이 끊어집니다.

패키지를 캐시하지만 그 이상은 캐시하지 않는 MAAS에서 제공하는 squid-deb-proxy를 사용하고 있다고 생각합니다. 기본적으로 이는 참 설치 후크가 보는 환경이 MAAS에서 제공하는 squid-deb-proxy를 사용하여 패키지를 다운로드하도록 구성되었지만 sources.list여전히 기본 Ubuntu 아카이브를 가리키고 있음을 의미합니다. 따라서 패키지는 MAAS를 통해 Ubuntu 아카이브에서 패키지 캐시로 제공됩니다.

install대신 사용자 정의 패키지를 사용하도록 준비하려면 먼저 apt를 재구성하여 참 후크를 수정하여 이를 사용하고 싶습니다 . 예를 들어 수정된 패키지로 PPA를 설정한 다음 install이를 사용하도록 후크를 준비할 수 있습니다.

source다음의 참 구성 옵션 구현에서 이에 대한 일반적인 예를 볼 수 있습니다.mariadb 참의 구성 변경 후크. 일반적일 필요가 없는 맞춤 참의 경우 다음과 같은 줄을 추가하면 됩니다.

 sudo add-apt-repository -y ppa:username/octave

후크 에 패키지를 설치하기 전 install, 또는 참이 다른 언어로 작성된 경우 적절한 상응물을 설치합니다.

MAAS 시스템을 인터넷 액세스에서 연결 해제하려면 자체 로컬 apt 저장소를 구현한 다음 MAAS 시스템에 squid-deb-proxy를 배열하여 이를 사용하도록 해야 합니다 archive.ubuntu.com(미러링했다고 가정). 그렇지 않으면 설치 후크를 사용하여 적절하게 구성할 수 있도록 준비하십시오.

관련 정보