Настройка параллельной группы & mpi4py / OpenMDAO 2.2.X - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь использовать распараллеливание с mpi / openmdao.

Я пробовал на разных компьютерах с Ubuntu, а также с Ubuntu Bash на Windows (функция Windows 10)

Зависимости работаютотлично независимо (т.е. импорт petsc4py и импорт mpi4py работает нормально, и я могу запустить тесты этих аналогично ссылкам: https://openmdao.readthedocs.io/en/1.7.3/getting-started/mpi_linux.html & http://mpi4py.scipy.org/docs/usrman/install.html)

Но код группы Paralel вРуководство openmdao 2.2 не работает. При каждой попытке (на разных компьютерах) я, похоже, получаю еще одну ошибку, большинство из которых выглядят как ошибки совместимости (то есть я устанавливаю petsc4py, который нарушает установку numpy или mpi4py, вызывая проблемы в существующем ядре openmdao.)

На некоторых компьютерах у меня были установлены мои собственные openmpi и petsc, но команда conda install уже установила их, насколько я вижу.

В конце концов я попробовал эти шаги на недавно запущенном экземпляре amazon, но у меня были похожие проблемы.

sudo apt-get install build-essential 
wget http://repo.continuum.io/archive/Anaconda3-5.2.0-Linux-x86_64.sh    
bash Anacond*
sudo apt-get install libibnetdisc-dev
sudo apt-get install libblas-dev libatlas-dev liblapack-dev
conda install mpi4py
conda install -c conda-forge petsc4py 

если я проверю '' список кондо '' на одном из компьютеров, сокращенное обозначениеtput is;

mpi                       1.0                       mpich    conda-forge                                                                                      
mpi4py                    3.0.0              py36_mpich_1    conda-forge                                                                                      
mpich                     3.2.1                         1    conda-forge                                                                                      
mpich2                    1.4.1p1                       0    anaconda                                                                                         
mpmath                    1.0.0            py36hfeacd6b_2                                                                                                     
msgpack-python            0.5.1            py36h6bb024c_0                                                                                                     
multipledispatch          0.4.9            py36h41da3fb_0                                                                                                     
mumps                     5.0.2           blas_openblas_208  [blas_openblas]  
conda-forge                                                                     
numpy                     1.14.3          py36_blas_openblas_200  [blas_openblas]  conda-forge                                                                
numpydoc                  0.7.0            py36h18f165f_0                                                                                                                                                                          
openblas                  0.2.20                        8    conda-forge                                                                                      
openmdao                  2.2.1                     <pip>                                                                                                     
openpyxl                  2.4.10                   py36_0                                                                                                     
openssl                   1.0.2o                        0    conda-forge                                                                                      
petsc                     3.9.1           blas_openblas_0  [blas_openblas]  
conda-forge                                                                       
petsc4py                  3.9.1                    py36_0    conda-forge                                                                                      
pexpect                   4.3.1                    py36_0                                                                                                     
pickleshare               0.7.4            py36h63277f8_0                                                                                                     
pillow                    5.0.0            py36h3deb7b8_0                                                                                                     
pip                       10.0.1                    <pip

В той же системе, если попытаться запустить mpirun -n 2 python my_par_model.py на основе ручного кода, это то, что я получаю

aws snapshot

У кого-нибудь есть предложения, где он может не работать или какие шаги я мог бы предпринять для реализации uconntu anconda / openmdao / petsc / mpi4py и успешного запуска paralel openmdao?

Ответы [ 2 ]

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

Я думаю, что совместимость MPI была главной проблемой.Я не знал, что это должен быть openmpi, и действительно, команда conda install устанавливает mpich и, возможно, вызывает проблему с openmdao.

Я продолжу делать больше тестов, но для работающей системы, начиная с новой установки ubuntu-16.04.4-desktop-amd64.iso, я выполнил следующие шаги;

(Шаги, которые требуют времени, - это установка openmpi и установка pip petsc4py.)

1) Для некоторых зависимостей (взято из https://gist.github.com/mrosemeier/088115b2e34f319b913a)

sudo apt-get install libibnetdisc-dev
sudo apt-get install libblas-dev libatlas-dev liblapack-dev

2) Загрузить/ Установить OpenMPI (в основном взято из http://lsi.ugr.es/jmantas/pdp/ayuda/datos/instalaciones/Install_OpenMPI_en.pdf)

wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.0.tar.gz 
tar -xzf openmpi-3.1.0.tar.gz 
cd openmpi-*
./configure --prefix="/home/$USER/.openmpi"
make
sudo make install
echo export PATH="$PATH:/home/$USER/.openmpi/bin" >> /home/$USER/.bashrc
echo export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/$USER/.openmpi/lib/" >> /home/$USER/.bashrc

3) MINICONDA & Rest (в основном взято из https://github.com/OpenMDAO/OpenMDAO/blob/master/.travis.yml)

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
sh Minicond* # agree to add to the path etc.
conda install --yes python=3.6
conda install --yes numpy==1.14 scipy=0.19.1 nose sphinx mock swig pip;
pip install --upgrade pip;
pip install mpi4py
pip install petsc4py==3.9.1
#petsc4py Gives an error failed building wheel for petsc but then installs petsc itself, afterwards, petsc4py is also installed

sudo apt install git  # in the cases git does not exist

# not sure why we need this part but i followed 
pip install redbaron;
pip install git+https://github.com/OpenMDAO/testflo.git;
pip install coverage;
pip install git+https://github.com/swryan/coveralls-python@work;
# pyoptsparse and openmdao
git clone https://github.com/mdolab/pyoptsparse.git;
cd pyoptsparse;
python setup.py install;
cd ..;
conda install --yes matplotlib;

git clone http://github.com/OpenMDAO/OpenMDAO
cd OpenMDAO
pip install .

# optional  
conda install spyder 

4) Проверить версии

mpirun --version : Open MPI 3.1.0
python --version : 3.6.5
pip --version   :  
pip 10.0.1 from /home/user/miniconda3/lib/python3.6/site-packages/pip (python 3.6)



conda list : (note that there is no mpich or similar in the conda list) 

openmdao                  2.2.1                     <pip>
mpi4py                    3.0.0                     <pip>
petsc                     3.9.2                     <pip>
petsc4py                  3.9.1                     <pip>
0 голосов
/ 04 июня 2018

Вы могли бы взглянуть на реализацию установки для linux, которая существует в нашем файле .travis.yml?https://github.com/OpenMDAO/OpenMDAO/blob/master/.travis.yml

Это работает для установки и тестирования OpenMDAO с нуля на экземплярах Trusty Tahr на Travis CI.На первый взгляд, я вижу одно отличие - использование pip для установки mpi и PETSc в python, установленный в conda.

...