Skip to content

Commit

Permalink
Merge pull request #4637 from yosefe/topic/update-homepage
Browse files Browse the repository at this point in the history
DOCS/RTD: Update home page content
  • Loading branch information
yosefe authored Jan 2, 2020
2 parents 548af9d + 6c0df2e commit 339054f
Show file tree
Hide file tree
Showing 3 changed files with 100 additions and 24 deletions.
Binary file modified docs/source/_static/UCX_Layers.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
62 changes: 38 additions & 24 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,24 @@
OpenUCX
*******

Unified Communication X (UCX) provides an optimized communication layer for
Message Passing (MPI), PGAS/OpenSHMEM libraries and RPC/data-centric
applications.
Unified Communication X (UCX) is an `award winning <https://losalamosreporter.com/2019/11/07/nine-los-alamos-national-laboratory-projects-win-rd-100-awards>`_,
optimized production proven communication framework for modern, high-bandwidth
and low-latency networks.

UCX exposes a set of abstract communication primitives which utilize the best of
available hardware resources and offloads. These include RDMA (InfiniBand and RoCE),
TCP, GPUs, shared Memory, and network atomic operations.

UCX facilitates rapid development by providing a high-level API, masking the
low-level details, while maintaining high-performance and scalability.

UCX implements best practices for transfer of messages of all sizes, based on
accumulated experience gained from applications running on the world's largest
datacenters and supercomputers. The full list of features and capabilities can
be found :ref:`here<ucx_features>`.

UCX is a member of `UCF consortium <https://www.ucfconsortium.org>`_.

UCX utilizes high-speed networks for inter-node communication, and shared
memory mechanisms for efficient intra-node communication.

.. image:: _static/UCX_Layers.png
:alt: UCX layer diagram
Expand All @@ -23,6 +35,7 @@ memory mechanisms for efficient intra-node communication.
:maxdepth: 3
:hidden:

ucx_features
download
running
faq
Expand All @@ -31,7 +44,8 @@ memory mechanisms for efficient intra-node communication.
Quick start
***********

The following commands will download and build UCX v1.6 :doc:`release <download>`:
The following commands will download UCX latest v1.6.1 release, build the code,
and run a simple client/server example:

.. code-block:: console
Expand All @@ -41,34 +55,34 @@ The following commands will download and build UCX v1.6 :doc:`release <download>
$ ./contrib/configure-release --prefix=$PWD/install
$ make -j8 install
$ gcc test/examples/ucp_client_server.c -lucp -lucs -o ucp_client_server \
-Iinstall/include -Linstall/lib
$ export LD_LIBRARY_PATH=$PWD/instal/lib
$ ./ucp_client_server &
$ ./ucp_client_server -a <ip-addr> # <ip-addr>: IP address of a local RoCE or IPoIB interface
...
----- UCP TEST SUCCESS -------
UCX Client-Server Hello World
------------------------------
Documentation
*************

* TODO API
* API doc: `HTML <api/v1.6/html>`_ `PDF <api/v1.6/ucx.pdf>`_
* `Examples <https://github.com/openucx/ucx/tree/v1.6.x/test/examples>`_


Projects using UCX
******************

* `UCX-PY <https://ucx-py.readthedocs.io/en/latest>`_
* `Dask <https://blog.dask.org/2019/06/09/ucx-dgx>`_
* `SparkUCX <http://github.com/openucx/sparkucx>`_
* `NCCL <https://developer.nvidia.com/nccl>`_
* `OpenMPI <http://www.open-mpi.org>`_
* `MPICH <http://www.mpich.org>`_
* `Charm++ <https://www.hpccharm.com>`_
* `OSSS shmem <http://github.com/openshmem-org/osss-ucx>`_
* `SparkUCX <http://github.com/openucx/sparkucx>`_


Developers section
******************

* `UCX on github <http://github.com/openucx/ucx>`_
* `Dev wiki <http://github.com/openucx/ucx/wiki>`_
* `Issue tracker <http://github.com/openucx/ucx/issues>`_
* `UCX mailing list <elist.ornl.gov/mailman/listinfo/ucx-group>`_


Buzz
****

* `UCX wins R&D 100 award <https://losalamosreporter.com/2019/11/07/nine-los-alamos-national-laboratory-projects-win-rd-100-awards>`_
* `UCX @ OpenSHMEM workshop <http://www.openucx.org/wp-content/uploads/2015/08/UCX_OpenSHMEM_2015.pdf>`_
62 changes: 62 additions & 0 deletions docs/source/ucx_features.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
..
.. Copyright (C) Mellanox Technologies Ltd. 2019. ALL RIGHTS RESERVED.
..
.. See file LICENSE for terms.
..
.. _ucx_features:

*****************
UCX main features
*****************

High-level API features
***********************
- Select either a client/server connection establishment (similar to TCP), or
connect directly by passing remote address blob.
- Support sharing resources between threads, or allocating dedicated resources
per thread.
- Event-driven or polling-driven progress.
- Java and Python bindings.
- Seamless handling of GPU memory.

Main APIs
---------
- Stream-oriented send/receive operations.
- Tag-matched send/receive.
- Remote memory access.
- Remote atomic operations.

Fabrics support
***************
- RoCE
- InfiniBand
- TCP sockets
- Shared memory (CMA, knem, xpmem, SysV, mmap)
- Cray Gemini

Platforms support
*****************
- Supported architectures: x86_64, ARM, Power.
- Runs on virtual machines (using SRIOV) and containers (docker, singularity).
- Can utilize either MLNX_OFED or Inbox RDMA drivers.
- Tested on major Linux distributions (RedHat/Ubuntu/SLES).

GPU support
***********
- Cuda (for NVIDIA GPUs)
- ROCm (for AMD GPUs)

Protocols, Optimizations and Advanced Features
**********************************************
- Automatic selection of best transports and devices.
- Zero-copy with registration cache.
- Scalable flow control algorithms.
- Optimized memory pools.
- Accelerated direct-verbs transport for Mellanox devices.
- Pipeline protocols for GPU memory
- QoS and traffic isolation for RDMA transports
- Platform specific optimizations (such as memcpy)
- Multi-rail support
- Bare-metal, containers and cloud environments support
- Advanced protocols for transfer messages of different sizes

0 comments on commit 339054f

Please sign in to comment.