【环境安装】ubuntu16.04安装openmpi+mpi4py+torchsparse

ubuntu16.04安装OpenMPI、mpi4py和torchsparse

  • 一、安装OpenMPI
    • 1、下载各种文件
    • 2、安装GCC
    • 3、安装openmpi
  • 二、安装mpi4py
    • 1、下载mpi4py源文件
    • 2、安装mpi4py
  • 三、安装torchsparse、torchpack
    • 1、下载各种文件
    • 2、安装sparsehash
    • 3、安装torchsparse
    • 4、安装torchpack
  • 四、各种源文件
  • 参考文章

一、安装OpenMPI

1、下载各种文件

a. 下载 openmpi 源文件,—> 官网。选择自己想安装的版本,这里选择 4.0.0 版本。
【环境安装】ubuntu16.04安装openmpi+mpi4py+torchsparse_第1张图片
【环境安装】ubuntu16.04安装openmpi+mpi4py+torchsparse_第2张图片
b. 下载 GCC 源文件,—>清华镜像源。选择想要安装的版本,这里选择 7.5.0 版本。
【环境安装】ubuntu16.04安装openmpi+mpi4py+torchsparse_第3张图片
【环境安装】ubuntu16.04安装openmpi+mpi4py+torchsparse_第4张图片

2、安装GCC

a. 找到 gcc-7.5.0.tar.gz 文件,解压。

tar -zxvf gcc-7.5.0.tar.gz

b. 下载编译所需依赖。

cd gcc-7.5.0
./contrib/download_prerequisites 
cd ..

c. 创建 build 目录,进行编译设置。默认安装路径是 /usr/local/,自定义路径使用 --prefix,例如,–prefix=/usr/local/gcc-7.5.0。

mkdir gcc-build
cd gcc-build
../gcc-7.5.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

# 自定义安装路径,则:
# ../gcc-7.5.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib --prefix=/usr/local/gcc-7.5.0

d. 编译。

sudo make -j4

# 使用sudo 避免权限问题编译失败,-j代表进程数。

如果编译顺利,进行 e. 步。

如果出现类似 “sanitizer_internal_defs.h:254:72: error: size of array ‘assertion_failed__1129’ is negative” 的错误,则增加一项 --disable-libsanitizer , 并从 c. 步重新开始。

make clean
cd ..
rm -rf gcc-buiuld
mkdir gcc-build
cd gcc-build
../gcc-7.5.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib --disable-libsanitizer
sudo make -j4

# 如果自定义路径,记得加上--prefix=/...

如果还有问题,请参考这篇博客,—> 降级gcc6.3.X。

e. 安装。

sudo make install -j4

f. 替换旧的 gcc、g++。
先检查目前的 gcc 版本。

gcc --version
g++ --verison

# gcc表示c编译器,g++表示c++编译器

然后,开始替换。

cd /usr/bin
# 备份旧的gcc、g++
sudo cp gcc gcc.bak
sudo cp g++ g++.bak
# 链接新的gcc
sudo ln -s '/usr/local/bin/gcc' gcc
sudo ln -s '/usr/local/bin/g++' g++

如果自定义路径,则

sudo ln -s '/usr/local/gcc-7.5.0/bin/gcc' gcc
sudo ln -s '/usr/local/gcc-7.5.0/bin/g++' g++

再次检查 gcc 版本。

gcc --version
g++ --verison

如果版本号变成 7.5.0 ,则安装成功。

3、安装openmpi

a. 找到 openmpi-4.0.0.tar.gz 文件,解压。

tar -zxvf openmpi-4.0.0.tar.gz

b. 创建 build 目录,进行编译设置。

mkdir openmpi-build
cd openmpi-build
export CC=/usr/local/bin/gcc
export CXX=/usr/lcoal/bin/g++
../openmpi-4.0.0/configure --prefix=/usr/local/openmpi-4.0.0 --disable-mpi-fortran --enable-mpi-cxx

# --prefix表示自定义安装路径,--disable-mpi-fortran表示不编译fortran语言,如果要使用fortran语言,请去掉该项。
# ../openmpi-4.0.0/configure --prefix=/usr/local/openmpi-4.0.0

# 请注意,默认编译设置只编译c语言和fortran语言,如果要编译c++语言,请加上--enable-mpi-cxx
# ../openmpi-4.0.0/configure --prefix=/usr/local/openmpi-4.0.0 --enable-mpi-cxx

# 还可以自定义各种配置,参考下面命令
# ../openmpi-4.0.0/configure --help| less

c. 编译。

sudo make -j4

d. 安装。

sudo make install -j4

e. 配置环境变量。

vi ~/.bashrc

在文档末尾加入如下代码。OPENMPI 换成你自己的安装路径。

export OPENMPI=/usr/local/openmpi-4.0.0
export PATH=$OPENMPI/bin:$PATH
export LD_LIBRARY_PATH=$OPENMPI/lib:$LD_LIBRARY_PATH
export INCLUDE=$OPENMPI/include:$INCLUDE
export CPATH=$OPENMPI/include:$CPATH
export MANPATH=$OPENMPI/share/man:$MANPATH

刷新系统变量,使修改后的 .bashrc 生效。

source ~/.bashrc

f. 检验安装效果。

which mpirun

若显示正确路径,例如,/usr/local/openmpi-4.0.0/bin/mpirun , 则安装成功。

若安装过程中还有其他问题,请参考 openmpi 官网FAQ。
若要编译 Fortran 语言,可以参考,—>这篇文章,或者官网 FAQ。

二、安装mpi4py

其实完全可以参照官网教程进行 pip 安装,—>官网教程。不过使用conda install 或 pip install 的方式安装会自动安装 mpich,而mpich 和 openmpi 有些变量设置是不兼容的。所以下面演示手动从源码编译安装。

1、下载mpi4py源文件

到官网下载,—> 官网。选择自己要安装的版本,这里选择 3.1.1 。
【环境安装】ubuntu16.04安装openmpi+mpi4py+torchsparse_第5张图片

2、安装mpi4py

a. 安装Cython。mpi4py编译需要用到Cython。

conda install cython

b. 找到 mpi4py-3.1.1.tar.gz 文件,解压。

tar -zxvf mpi4py-3.1.1.tar.gz
cd mpi4py-3.1.1

c. 设置 openmpi 路径。

vi mpi.cfg

找到 [openmpi],修改 mpi_dir 为你自己的 openmpi 安装路径,并对注释掉的那两行进行解注释。

 53 # Open MPI example
 54 # ----------------
 55 [openmpi]
 56 mpi_dir              = /usr/local/openmpi-4.0.0
 57 mpicc                = %(mpi_dir)s/bin/mpicc
 58 mpicxx               = %(mpi_dir)s/bin/mpicxx
 59 include_dirs         = %(mpi_dir)s/include
 60 libraries            = mpi
 61 library_dirs         = %(mpi_dir)s/lib
 62 runtime_library_dirs = %(library_dirs)s

d. 编译。
使用 --mpi=… 指定要使用的MPI,这里使用 openmpi 。

python setup.py build --mpi=openmpi

:编译过程中,可能会有两个 error ,应该是版本兼容性问题,应该不影响使用,不用管。

e. 安装。
使用 --prefix=… 指定 mpi4py 安装路径,不加 --prefix 默认安装到 anaconda安装路径。

python setup.py install --prefix=‘你的conda虚拟环境路径’

三、安装torchsparse、torchpack

torchsparse 项目地址,—>官网。
torchpack 项目地址,—>官网。

1、下载各种文件

a. 下载 torchsprse 源文件,—>官网。这里下载 1.4.0 版本。
【环境安装】ubuntu16.04安装openmpi+mpi4py+torchsparse_第6张图片
b. 下载 sparsehash 源文件,—>官网。这里下载 2.0.4 版本。
【环境安装】ubuntu16.04安装openmpi+mpi4py+torchsparse_第7张图片
c. 下载 torchpack 源文件, —>官网。这里选择 0.3.1 版本。
【环境安装】ubuntu16.04安装openmpi+mpi4py+torchsparse_第8张图片

2、安装sparsehash

a. 找到 sparsehash-sparsehash-2.0.4.tar.gz 文件,解压。

tar -zxvf sparsehash-sparsehash-2.0.4.tar.gz
cd sparsehash-sparsehash-2.0.4

b. 编译,安装。可以使用 --prefix 指定安装路径。

export CC=/usr/local/bin/gcc
export CXX=/usr/lcoal/bin/g++
./configure --prefix=/usr/local/sparsehash-2.0.4
sudo make -j4
sudo make install -j4

c. 设置环境变量

vi ~/.bashrc

在文档最后,加入一句。

export CPLUS_INCLUDE_PATH=/usr/local/sparsehash-2.0.4

刷新环境变量。

source ~/.bashrc

3、安装torchsparse

a. 找到 torchsparse-1.4.0.tar.gz 文件,解压。

tar -zxvf torchsparse-1.4.0.tar.gz

b. 使用 pip 进行安装。./ 表示安装当前目录本地文件。

pip install ./torchsparse-1.4.0

4、安装torchpack

a. 找到 torchpack-0.3.1.tar.gz 文件,解压。

tar -zxvf torchpack-0.3.1.tar.gz

b. 使用 pip 进行安装。

pip install ./torchpack-0.3.1

四、各种源文件

如果打不开某一个网址,可以给我发邮件,邮件发给你,—> [email protected]

参考文章

[1] Linux 安装指定版本GCC方法
[2] 降级gcc6.3.X
[3] Open MPI安装使用
[4] Ubuntu 20.04下安装Openmpi
[5] C++ bindings (deprecated)
[6] MPI for Python
[7] torchsparse
[8] torchpack
[9] sparsehash

你可能感兴趣的:(ubuntu,linux,python)