Clone or download
yosefe Merge pull request #3031 from yosefe/topic/put-message-rate-optimizat…

Optimizations for PUT message rate
Latest commit d053374 Nov 9, 2018
Failed to load latest commit information.
bindings/java JUCX: pom.xml: junit version as property Feb 6, 2018
config/m4 UCT/IB/MLX5: Revert include verbs.h before mlx5dv.h Nov 8, 2018
contrib test: check that current version is present in spec Nov 7, 2018
debian version: rename MICRO_VERSION to SCM_VERSION Jul 27, 2017
doc Merge pull request #3015 from evgeny-leksikov/ucx_docs Nov 4, 2018
src RMA/BASIC: Fix invalid check whick skipped put_short protocol Nov 9, 2018
test Merge pull request #3016 from evgeny-leksikov/bugfix Nov 8, 2018
.ctags CTAGS: Add default configuration file for ctags. Dec 1, 2016
.gitignore version/rpm: change definition of VERSION Jul 27, 2017
AUTHORS AUTHORS: Dumping contributors from "git shortlog -s" Sep 7, 2018 Fix broken link in Sep 12, 2018
INSTALL ALL: License clarification Aug 24, 2015
LICENSE UCT/ROCM: Initial implementation. v2 Jul 4, 2017 JUCX: First Java and C (JNI) source files. Dec 18, 2017
NEWS NEWS: Backport from 1.4.x Oct 26, 2018 GITHUB: Adding PR template Jun 15, 2018
README README: Update perftest example and UCX layers desc May 13, 2018 README: Adding as a soft link Jul 31, 2015 BUILD: Remove jemalloc, since UCM is using ptmalloc. Jan 22, 2016 Merge branch 'master' of into topic/dv-dc Oct 15, 2018 BUILD: add packaging Jun 16, 2015 spec: add all releases to spec changelog Nov 7, 2018

UCX is a communication library implementing a high-performance messaging layer for MPI, PGAS, and RPC frameworks.

Running internal unit tests

$ ./
$ ./contrib/configure-devel
$ make
$ make -C test/gtest test

Running UCX hello-world


$ ./  
$ ./contrib/configure-release --prefix=$PWD/install
$ make

Start server:

$ ./src/tools/perf/ucx_perftest -c 0

Connect client:

$ ./src/tools/perf/ucx_perftest <server-hostname> -t tag_lat -c 0

UCX high-level layout

  • UCX - Unified Communication X
  • UCP - UCX Protocol. Implements high-level abstractions such as tag-matching, streams, connection negotiation and establishment, multi-rail, and handling different memory types.
  • UCT - UCX Transport. Implements low-level communication primitives such as active messages, remote memory access, and atomic operations.
  • UCS - UCX Services. A collection of data structures, algorithms, and system utilities for common use.
  • UCM - UCX Memory. Intercepts memory allocation and release events, used by memory registration cache.