UCCSlogo

Universal Common Communication Substrate

Meet us at SC13 !

  • OpenSHMEM and UCCS event schedule

SC13

SC13

Universal Common Communication Substrate (UCCS)

Universal Common Communication Substrate (UCCS) is a low-level communication substrate that exposes high-performance communication primitives, while providing network interoperability. It is intended to support multiple upper layer protocols (ULPs) or programming models including SHMEM, UPC, Titanium, Co-Array Fortran, Global Arrays, MPI, GASNet, and File I/O. It provides various communication operations including one-sided and two-sided point-to-point, collectives, and remote atomic operations. In addition to operations for ULPs, it provides an out-of-band communication channel required typically required to wire-up communication libraries.

GOALS

  • Provide a common low-level scalable, robust, portable, simple and performance driven communication API for multiple parallel programming models over modern network interfaces
  • Provide common network code for implementing programming models, increasing code reusability and reducing development effort
  • Support hybrid programming environments efficiently
  • Provide flexible API to accommodate requirements of I/O systems, Big Data applications, and Languages

UCCS_Goals

APPROACH

  • Design driven by programming model requirements, hardware capabilities, and compiler optimizations
  • Minimum abstraction over the network interfaces to achieve high performance and scalability
  • Resource sharing among different instances to efficiently support hybrid programming environment
  • Provide an API and a reference implementation, enabling others (Vendors) to innovate under the API

CONCEPTS

Architecture

UCCS reference implementation consists of a front-end layer and high-performance communication back-end. The front-end is a lightweight layer exporting the API. The back-end layer consists of transport layers translating UCCS operations to network driver or hardware directives. Programming models and tools integrate UCCS as an network layer providing high-performance communication services. The RTE interface is used to integrate UCCS with a bootstrap environment, which could be an integrated part of a programming model or third part solution.

Concepts_UCCS

UCCS Communication Context Layout

  • UCCS Context - Defines a scope of communication context and communication activities. All resources are allocated with a particular context. Concurrently running programming models may decide to use shared or dedicated communication resources.
  • UCCS Resource Context - Network resource descriptor, that represent single or multiple networks devices, or ports. Various network hardware exposes device capabilities with a "query" interface.
  • Endpoint - Communication context representing a particular communication peer. Endpoint is used by UCCS to define source or destination for communication operations.

API

  • UCCS exposes a broad range of communication semantics that include RMAs, AMOs, Active Message, and Collectives
  • All communications interfaces are non-blocking
  • API independent of a bootstrap environment

UCCS_API

    
    ornl_logo