dolphin express reflective memory

The Dolphin Reflective Memory library is a user-friendly interface that is used to create a reflective memory address space on top of the SISCI API. It can be used to build reflective memory applications with Dolphins adapters and switches in a functional and highly available way. The library is presented with example programs and benchmark modules in order to ease the implementation of Reflective Memory applications. 

Reflective Memory Systems (In computer literature also referred to as mirror memory systems or replicated memory systems) are solutions to problems raised by message passing in multicomputer environments. Reflective Memory systems are based on automatic updates of remote shared memory copies. Each system processor includes a dual-ported local physical memory, a part of which is configured as logically shared. The Reflective Memory is composed of all these physically distributed, logically shared memory parts mapped into a global (shared) address space. The main idea of Reflective Memory is that if a shared data item might be reused, an accurate copy of it should be kept in each processors local memory. Upon each write to a shared memory location, the network interface automatically updates all system copies. Shared memory read-operations are performed on local memory, therefore eliminating any memory access contention delays.

Typical applications can range from a two-node fail over pair to large DSM applications like aircraft, ship and submarine simulators, automated testing systems, industrial automation and high-speed data acquisition. Because of their inherent replication they are especially good for fault tolerance.

Customer applications can take advantage of the exceptional link bandwidth (667 MBytes/s) and low application-to-application latency (~1.4 microseconds) performances of the Dolphin Express interconnect.

Features and Benefits

  • All nodes share the Reflective Memory space.
  • All nodes have a local copy of the entire Reflective Memory space.
  • The local copies on the subsequent nodes are automatically updated.
  • The synchronization logic ensures that only one node has write access to the Reflective Memory at the time, keeping all Reflective Memory copies consistent.
  • Reflective Memory write-operations are multicasted to all nodes in the system.
  • When a DMA transfer is used to update remote Reflective Memory copies computation may overlap with communication.
  • One-to-all multicast communication is used for remote Reflective Memory updates.
  • Shared data regions are organized as segments
  • Push-only: Only shared writes are propagated through the system. A write to the local Reflective Memory is distributed (reflected) to the Reflective Memory copies on all nodes. Reflective Memory read-operations are performed on the local Reflective Memory copy.
  • DMA- , SCIMemCpy- and shared memory transfers are supported by the SISCI API. The SCI Reflective Memory functions ReflectDMA (or ReflectDMASetup ReflectDMARun and ReflectDMARemove in combination) and ReflectMemCopy use the SISCI implementation of the PSB DMA engine and the SISCI function SCIMemCpy for remote accesses. When building an application the desired transfer mechanism can be selected.
  • Physically distributed, logically shared memory parts are mapped into a global, shared address space.
  • Network topology is application specific.

The Dolphin Reflective Memory software is part of the Dolphin SISCI Developers Kit. SCI Reflective Memory documentation can be requested from Dolphin.

Please e-mail pci-support@dolphinics.no for more information.