#
# Copyright (C) Mellanox Technologies Ltd. 2001-2015.  ALL RIGHTS RESERVED.
#
# See file LICENSE for terms.
#


For More Information
====================

This file is a *very* short overview of building and installing UCX
and building MPI/SHMEM libraries with it.  Much more information is
available on the UCX github wiki and UCX web site.

    https://github.com/openucx/ucx/wiki

    -and-

    http://openucx.org/


Developer Builds
================

shell$ ./autogen.sh
shell$ ./contrib/configure-devel --prefix=$PWD/install-debug

You will need very recent versions of GNU Autoconf, Automake, and
Libtool. 

*** NOTE: Developer's copies of UCX typically include a large
performance penalty at run-time because of extra debugging overhead.


User Builds
===========

Building UCX is typically a combination of running "configure"
and "make".  Execute the following commands to install the UCX
system from within the directory at the top of the tree:

shell$ ./autogen.sh
shell$ ./contrib/configure-release --prefix=/where/to/install
shell$ make all install

If you need special access to install, then you can execute "make
all" as a user with write permissions in the build tree, and a
separate "make install" as a user with write permissions to the
install tree.

Compiling support for various networks or other specific hardware may
require additional command line flags when running configure.

Parallel builds are also supported (although some versions of "make",
such as GNU make, will only use the first target listed on the command
line when executing parallel builds).  For example (assume GNU make):

shell$ make -j 4 all
shell$ make install

Parallel make is generally only helpful in the build phase (i.e.,
"make all"); the installation process (i.e., "make install") is mostly
serial and does not benefit much from parallelization.

# Build rpm package
shell$ contrib/buildrpm.sh -s -b
 
# Build deb package
shell$ dpkg-buildpackage -us -uc
 
# Build Doxygen documentation
shell$ make docs


Compiling OpenMPI with UCX library
==================================

The Open MPI package includes two public software layers: MPI and OpenSHMEM.
UCX support in OpenMPI is not upstream yet, it is work in progress.
Current work on OpenMPI/UCX integration is ongoing for OpenSHMEM API and can be found here:

https://github.com/openucx/ompi-mirror/pull/1


To compile OpenMPI with UCX support:

# checkout Pull Request
% git clone https://github.com/openucx/ompi-mirror
% cd ompi-mirror
% git fetch origin pull/1/head:pr-1
% git checkout pr-1

