Skip to content

OpenMPI and OpenSHMEM installation with UCX

Yossi Itigin edited this page May 23, 2018 · 31 revisions

UCX installation

Requirements: Autoconf 2.63 and above.

  1. Get latest version of the UCX code
$ git clone https://github.com/openucx/ucx.git ucx
$ cd ucx
  1. Run autogen:
$ ./autogen.sh
  1. This step is only required for OpenPOWER platforms - Power 8 On Ubuntu platform the config.guess file is a bit outdated and does not have support for power. In order to resolve the issue you have to download an updated config.guess. From the root of the project:
$ wget https://github.com/shamisp/ucx/raw/topic/power8-config/config.guess
  1. Configure:
$ mkdir build
$ cd build
$ ../configure --prefix=/your_install_path

Note: For best performance configuration, use ../contrib/configure-release.
This will strip all debugging and profiling code.

  1. Build and install:
$ make
$ make install
  1. Running unit tests (using google test).
    This only work if gtest was installed and detected on your platform, and --enable-gtest was passed to configure:
$ make -C test/gtest test

OpenMPI and OpenSHMEM installation

  1. Get latest-and-gratest OpenMPI version:
$ git clone https://github.com/open-mpi/ompi.git
  1. Autogen:
$ cd ompi
$ ./autogen.pl
  1. Configure with UCX:
$ mkdir build
$ cd build
../configure --prefix=/your_install_path/ --with-ucx=/path_to_ucx_installation
  1. Build:
$ make
$ make install

Running Open MPI with UCX

Example of the command line (with optional flag to select IB device mlx5_0 port 1):

$ mpirun -np 2 -mca pml ucx -x UCX_NET_DEVICES=mlx5_0:1 ./app

Open MPI runtime optimizations for UCX

  • By default OpenMPI enables build-in transports (BTLs), which may result in additional software overheads in the OpenMPI progress function. In order to workaround this issue you may try to disable certain BTLs.
$ mpirun -np 2 -mca pml ucx --mca btl ^vader,tcp,openib -x UCX_NET_DEVICES=mlx5_0:1 -x UCX_TLS=rc,sm ./app

MPI and OpenSHMEM release versions tested with UCX master.

  1. UCX current tarball: https://github.com/openucx/ucx/archive/master.zip

  2. The table of MPI and OpenSHMEM distributions that are tested with the HEAD of UCX master

MPI/OpenSHMEM project
OpenMPI/OSHMEM 3.0.0 and above
OpenMPI 2.1.0 and above
MPICH Latest
Clone this wiki locally