• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..16-Dec-2021-

.github/H22-Sep-2020-7961

bindings/java/H22-Sep-2020-7,1135,018

buildlib/H22-Sep-2020-794681

config/H16-Dec-2021-11,30310,144

contrib/H22-Sep-2020-3,1942,427

debian/H22-Sep-2020-9363

docs/H22-Sep-2020-7,9506,919

examples/H16-Dec-2021-3,5842,802

src/H22-Sep-2020-196,467141,306

test/H22-Sep-2020-91,07466,449

.ctagsH A D22-Sep-2020157 54

.gitignoreH A D22-Sep-20201.3 KiB8887

.gitmodulesH A D22-Sep-202094 54

AUTHORSH A D22-Sep-20203.2 KiB109106

LICENSEH A D22-Sep-20202.3 KiB3834

Makefile.amH A D22-Sep-20202.5 KiB10874

Makefile.inH A D16-Dec-202142.7 KiB1,2421,095

NEWSH A D22-Sep-202016.7 KiB418379

READMEH A D22-Sep-20206.1 KiB185137

README.mdH A D22-Sep-20206.1 KiB185137

aclocal.m4H A D16-Dec-202144.7 KiB1,2521,136

autogen.shH A D22-Sep-2020524 4133

compileH A D16-Dec-20217.2 KiB348258

config.guessH A D16-Dec-202141.9 KiB1,4221,230

config.h.inH A D16-Dec-202128.1 KiB990703

config.subH A D16-Dec-202135.1 KiB1,8081,670

configureH A D16-Dec-2021969.8 KiB33,69828,023

configure.acH A D22-Sep-202013.7 KiB417365

depcompH A D16-Dec-202123 KiB792502

install-shH A D16-Dec-202114.3 KiB502327

ltmain.shH A D16-Dec-2021316.5 KiB11,1487,979

missingH A D16-Dec-20216.7 KiB216143

ucx.pc.inH A D22-Sep-2020282 1210

ucx.spec.inH A D22-Sep-20209 KiB328275

README

1<div align="center">
2  <a href="http://www.openucx.org/"><img src="./docs/doxygen/UCX_Logo_930x933.png" width="200"></a>
3  <br>
4  <a href="https://twitter.com/intent/follow?screen_name=openucx"> <img src="https://img.shields.io/twitter/follow/openucx?style=social&logo=twitter" alt="follow on Twitter"></a>
5  <a href="https://openucx.github.io/ucx/api/latest/html/"><img src="docs/doxygen/api.svg"></a>
6  <a href='https://openucx.readthedocs.io/en/master/?badge=master'><img src='https://readthedocs.org/projects/openucx/badge/?version=master' alt='Documentation Status' />
7  <a href="https://github.com/openucx/ucx/releases/latest"><img src="docs/doxygen/release.svg"></a>
8</div>
9
10<!-- TOC generated by https://github.com/ekalinin/github-markdown-toc -->
11
12<hr>
13
14   * [Unified Communication X](#unified-communication-x)
15      * [Using UCX](#using-ucx)
16         * [Building and Running Internal Unit Tests](#building-and-running-internal-unit-tests)
17         * [UCX Performance Test](#ucx-performance-test)
18      * [Our Community](#our-community)
19      * [Licenses](#licenses)
20      * [Contributor Agreement and Guidelines](#contributor-agreement-and-guidelines)
21      * [UCX Publications](#ucx-publications)
22      * [UCX Architecture](#ucx-architecture)
23      * [Supported Transports](#supported-transports)
24      * [Supported CPU Architectures](#supported-cpu-architectures)
25
26<hr>
27
28# Unified Communication X
29
30Unified Communication X (UCX) provides an optimized communication
31layer for Message Passing ([MPI](https://www.mpi-forum.org/)),
32[PGAS](http://www.pgas.org/)/[OpenSHMEM](http://www.openshmem.org/)
33libraries and RPC/data-centric applications.
34
35UCX utilizes high-speed networks for inter-node communication, and
36shared memory mechanisms for efficient intra-node communication.
37
38## Using UCX
39
40### Release Builds
41
42Building UCX is typically a combination of running "configure" and "make".
43Execute the following commands to install the UCX system from within the
44directory at the top of the tree:
45
46```sh
47$ ./autogen.sh
48$ ./contrib/configure-release --prefix=/where/to/install
49$ make -j8
50$ make install
51```
52
53NOTE: Compiling support for various networks or other specific hardware may
54require additional command line flags when running configure.
55
56### Developer Builds
57
58```bash
59$ ./autogen.sh
60$ ./contrib/configure-devel --prefix=$PWD/install-debug
61```
62
63*** NOTE: Developer builds of UCX typically include a large performance
64penalty at run-time because of extra debugging code.
65
66### Running internal unit tests
67
68```sh
69$ make -C test/gtest test
70```
71
72### Build RPM package
73```bash
74$ contrib/buildrpm.sh -s -b
75```
76
77### Build DEB package
78```bash
79$ dpkg-buildpackage -us -uc
80```
81
82### Build Doxygen documentation
83```bash
84$ make docs
85```
86
87### OpenMPI and OpenSHMEM installation with UCX
88[Wiki page](http://github.com/openucx/ucx/wiki/OpenMPI-and-OpenSHMEM-installation-with-UCX)
89
90### MPICH installation with UCX
91[Wiki page](http://github.com/openucx/ucx/wiki/MPICH-installation-with-UCX)
92
93### UCX Performance Test
94
95Start server:
96
97```sh
98$ ./src/tools/perf/ucx_perftest -c 0
99```
100
101Connect client:
102
103```sh
104$ ./src/tools/perf/ucx_perftest <server-hostname> -t tag_lat -c 1
105```
106Note: the `-c` flag sets CPU affinity. If running both commands on same host, make sure you set the affinity to different CPU cores.
107
108## Our Community
109
110* [Project Website](http://www.openucx.org/)
111* [ReadTheDocs](https://openucx.readthedocs.io/en/master/)
112* [Github](http://www.github.com/openucx/ucx/)
113* [Software Releases](http://www.github.com/openucx/ucx/releases)
114* [Mailing List](https://elist.ornl.gov/mailman/listinfo/ucx-group)
115* [Twitter](https://twitter.com/openucx)
116
117## Licenses
118
119UCX is licensed as:
120
121* [BSD3](LICENSE)
122
123## Contributor Agreement and Guidelines
124
125In order to contribute to UCX, please sign up with an appropriate
126[Contributor Agreement](http://www.openucx.org/license/).
127
128Follow these
129[instructions](https://github.com/openucx/ucx/wiki/Guidance-for-contributors)
130when submitting contributions and changes.
131
132## UCX Publications
133
134To reference UCX in a publication, please use the following entry:
135
136```bibtex
137@inproceedings{shamis2015ucx,
138  title={UCX: an open source framework for HPC network APIs and beyond},
139  author={Shamis, Pavel and Venkata, Manjunath Gorentla and Lopez, M Graham and Baker, Matthew B and Hernandez, Oscar and Itigin, Yossi and Dubman, Mike and Shainer, Gilad and Graham, Richard L and Liss, Liran and others},
140  booktitle={2015 IEEE 23rd Annual Symposium on High-Performance Interconnects},
141  pages={40--43},
142  year={2015},
143  organization={IEEE}
144}
145```
146
147To reference the UCX website:
148
149```bibtex
150@misc{openucx-website,
151    title = {{The Unified Communication X Library}},
152    key = {{{The Unified Communication X Library}},
153    howpublished = {{\url{http://www.openucx.org}}}
154}
155```
156
157## UCX Architecture
158
159![](docs/doxygen/Architecture.png)
160
161| Component | Role        | Description |
162| :---:     | :---:       | ---         |
163| UCP | Protocol          | Implements high-level abstractions such as tag-matching, streams, connection negotiation and establishment, multi-rail, and handling different memory types |
164| UCT | Transport         | Implements low-level communication primitives such as active messages, remote memory access, and atomic operations |
165| UCS | Services          | A collection of data structures, algorithms, and system utilities for common use |
166| UCM | Memory            | Intercepts memory allocation and release events, used by the  memory registration cache |
167
168## Supported Transports
169
170* [Infiniband](https://www.infinibandta.org/)
171* [Omni-Path](https://www.intel.com/content/www/us/en/high-performance-computing-fabrics/omni-path-driving-exascale-computing.html)
172* [RoCE](http://www.roceinitiative.org/)
173* [Cray Gemini and Aries](https://www.cray.com/)
174* [CUDA](https://developer.nvidia.com/cuda-zone)
175* [ROCm](https://rocm.github.io/)
176* Shared Memory
177    * posix, sysv, [cma](https://dl.acm.org/citation.cfm?id=2616532), [knem](http://knem.gforge.inria.fr/), and [xpmem](https://github.com/hjelmn/xpmem)
178* TCP/IP
179
180## Supported CPU Architectures
181
182* [x86_64](https://en.wikipedia.org/wiki/X86-64)
183* [Power8/9](https://www.ibm.com/support/knowledgecenter/en/POWER9/p9hdx/POWER9welcome.htm)
184* [Arm v8](https://www.arm.com/products/silicon-ip-cpu)
185

README.md

1<div align="center">
2  <a href="http://www.openucx.org/"><img src="./docs/doxygen/UCX_Logo_930x933.png" width="200"></a>
3  <br>
4  <a href="https://twitter.com/intent/follow?screen_name=openucx"> <img src="https://img.shields.io/twitter/follow/openucx?style=social&logo=twitter" alt="follow on Twitter"></a>
5  <a href="https://openucx.github.io/ucx/api/latest/html/"><img src="docs/doxygen/api.svg"></a>
6  <a href='https://openucx.readthedocs.io/en/master/?badge=master'><img src='https://readthedocs.org/projects/openucx/badge/?version=master' alt='Documentation Status' />
7  <a href="https://github.com/openucx/ucx/releases/latest"><img src="docs/doxygen/release.svg"></a>
8</div>
9
10<!-- TOC generated by https://github.com/ekalinin/github-markdown-toc -->
11
12<hr>
13
14   * [Unified Communication X](#unified-communication-x)
15      * [Using UCX](#using-ucx)
16         * [Building and Running Internal Unit Tests](#building-and-running-internal-unit-tests)
17         * [UCX Performance Test](#ucx-performance-test)
18      * [Our Community](#our-community)
19      * [Licenses](#licenses)
20      * [Contributor Agreement and Guidelines](#contributor-agreement-and-guidelines)
21      * [UCX Publications](#ucx-publications)
22      * [UCX Architecture](#ucx-architecture)
23      * [Supported Transports](#supported-transports)
24      * [Supported CPU Architectures](#supported-cpu-architectures)
25
26<hr>
27
28# Unified Communication X
29
30Unified Communication X (UCX) provides an optimized communication
31layer for Message Passing ([MPI](https://www.mpi-forum.org/)),
32[PGAS](http://www.pgas.org/)/[OpenSHMEM](http://www.openshmem.org/)
33libraries and RPC/data-centric applications.
34
35UCX utilizes high-speed networks for inter-node communication, and
36shared memory mechanisms for efficient intra-node communication.
37
38## Using UCX
39
40### Release Builds
41
42Building UCX is typically a combination of running "configure" and "make".
43Execute the following commands to install the UCX system from within the
44directory at the top of the tree:
45
46```sh
47$ ./autogen.sh
48$ ./contrib/configure-release --prefix=/where/to/install
49$ make -j8
50$ make install
51```
52
53NOTE: Compiling support for various networks or other specific hardware may
54require additional command line flags when running configure.
55
56### Developer Builds
57
58```bash
59$ ./autogen.sh
60$ ./contrib/configure-devel --prefix=$PWD/install-debug
61```
62
63*** NOTE: Developer builds of UCX typically include a large performance
64penalty at run-time because of extra debugging code.
65
66### Running internal unit tests
67
68```sh
69$ make -C test/gtest test
70```
71
72### Build RPM package
73```bash
74$ contrib/buildrpm.sh -s -b
75```
76
77### Build DEB package
78```bash
79$ dpkg-buildpackage -us -uc
80```
81
82### Build Doxygen documentation
83```bash
84$ make docs
85```
86
87### OpenMPI and OpenSHMEM installation with UCX
88[Wiki page](http://github.com/openucx/ucx/wiki/OpenMPI-and-OpenSHMEM-installation-with-UCX)
89
90### MPICH installation with UCX
91[Wiki page](http://github.com/openucx/ucx/wiki/MPICH-installation-with-UCX)
92
93### UCX Performance Test
94
95Start server:
96
97```sh
98$ ./src/tools/perf/ucx_perftest -c 0
99```
100
101Connect client:
102
103```sh
104$ ./src/tools/perf/ucx_perftest <server-hostname> -t tag_lat -c 1
105```
106Note: the `-c` flag sets CPU affinity. If running both commands on same host, make sure you set the affinity to different CPU cores.
107
108## Our Community
109
110* [Project Website](http://www.openucx.org/)
111* [ReadTheDocs](https://openucx.readthedocs.io/en/master/)
112* [Github](http://www.github.com/openucx/ucx/)
113* [Software Releases](http://www.github.com/openucx/ucx/releases)
114* [Mailing List](https://elist.ornl.gov/mailman/listinfo/ucx-group)
115* [Twitter](https://twitter.com/openucx)
116
117## Licenses
118
119UCX is licensed as:
120
121* [BSD3](LICENSE)
122
123## Contributor Agreement and Guidelines
124
125In order to contribute to UCX, please sign up with an appropriate
126[Contributor Agreement](http://www.openucx.org/license/).
127
128Follow these
129[instructions](https://github.com/openucx/ucx/wiki/Guidance-for-contributors)
130when submitting contributions and changes.
131
132## UCX Publications
133
134To reference UCX in a publication, please use the following entry:
135
136```bibtex
137@inproceedings{shamis2015ucx,
138  title={UCX: an open source framework for HPC network APIs and beyond},
139  author={Shamis, Pavel and Venkata, Manjunath Gorentla and Lopez, M Graham and Baker, Matthew B and Hernandez, Oscar and Itigin, Yossi and Dubman, Mike and Shainer, Gilad and Graham, Richard L and Liss, Liran and others},
140  booktitle={2015 IEEE 23rd Annual Symposium on High-Performance Interconnects},
141  pages={40--43},
142  year={2015},
143  organization={IEEE}
144}
145```
146
147To reference the UCX website:
148
149```bibtex
150@misc{openucx-website,
151    title = {{The Unified Communication X Library}},
152    key = {{{The Unified Communication X Library}},
153    howpublished = {{\url{http://www.openucx.org}}}
154}
155```
156
157## UCX Architecture
158
159![](docs/doxygen/Architecture.png)
160
161| Component | Role        | Description |
162| :---:     | :---:       | ---         |
163| UCP | Protocol          | Implements high-level abstractions such as tag-matching, streams, connection negotiation and establishment, multi-rail, and handling different memory types |
164| UCT | Transport         | Implements low-level communication primitives such as active messages, remote memory access, and atomic operations |
165| UCS | Services          | A collection of data structures, algorithms, and system utilities for common use |
166| UCM | Memory            | Intercepts memory allocation and release events, used by the  memory registration cache |
167
168## Supported Transports
169
170* [Infiniband](https://www.infinibandta.org/)
171* [Omni-Path](https://www.intel.com/content/www/us/en/high-performance-computing-fabrics/omni-path-driving-exascale-computing.html)
172* [RoCE](http://www.roceinitiative.org/)
173* [Cray Gemini and Aries](https://www.cray.com/)
174* [CUDA](https://developer.nvidia.com/cuda-zone)
175* [ROCm](https://rocm.github.io/)
176* Shared Memory
177    * posix, sysv, [cma](https://dl.acm.org/citation.cfm?id=2616532), [knem](http://knem.gforge.inria.fr/), and [xpmem](https://github.com/hjelmn/xpmem)
178* TCP/IP
179
180## Supported CPU Architectures
181
182* [x86_64](https://en.wikipedia.org/wiki/X86-64)
183* [Power8/9](https://www.ibm.com/support/knowledgecenter/en/POWER9/p9hdx/POWER9welcome.htm)
184* [Arm v8](https://www.arm.com/products/silicon-ip-cpu)
185