eXpressWare's complete software infrastructure enabling applications to use standard PCI Express to over cables and backplanes. Several interfaces and APIs are supported, from standard TCP/IP networking to the lowest level direct remote memory access. Each API has its benefits and can be selected based on application requirements. The complete stack can be seen in the figure below:
SISCI - Shared memory API
The SISCI API enables customers to fully exploit the PCI Express programming model without having to spend months to develop device drivers. The SISCI API offers a C programming API for shared/remote memory access, including reflective memory functionality. The SISCI API also supports direct FPGA to FPGA and GPU to GPU communication over PCIe. More details on the SISCI API.
SuperSockets enabled networked applications to benefit from low latency, high throughput PCI Express networks without any modifications. SuperSockets is currently available for both Windows and Linux systems. For Linux, there are two implementations, the kernel implementation and a user space implementation.
Linux kernel Space implementation of SuperSockets
This is our standard recommendation for Linux systems, it implements a new socket address family AF_SSOCKS, and support virtually all networked Linux applications. More information on SuperSockets for Linux.
Linux User Space implementation of SuperSockets
Dolphins User Space implementation of SuperSockets is implemented to support embedded applications. The implementation is slightly faster than the Linux Kernel Space implementation, but comes with some limitations. Applications using the Linux User Space implementation can also communicate with systems running on Windows.
Windows implementation of SuperSockets
Dolphin SuperSockets for Windows supports the basic WinSock2 feature set and is implemented to support embedded applications. This library also supports communication with Linux systems running the Linux User Space implementation of SuperSockets. More information on SuperSockets for Windows.
IP driver for PCIe
The optimized IPoPCIe driver supports regular networking over PCI Express and is typically used as a faster alternative to 10G/40G Ethernet. The IPoPCIe driver fully support routing and ARP. More details on IPoPCIe.
Solution that enables native access to a PCIe devices installed in a remote server. More details on Device Lending.
Transparent Adapter Management Software
Starting from release DIS 5.5.0, eXpressWare now also includes support for managing and monitoring transparent adapter cards. More details on the Transparent Adapter Management Software.
NMPI is an open source version of MPICH2 with a native SISCI transport. More details on NMPI.
The SuperSockets software supports all MPI libraries configured for Ethernet communication.
IRM - Interconnect Resource Manager
The IRM is a central component of the Dolphin stack - it has the responsibility to manage all resources for all higher level software. This enables higher level software to be written in an independent way. When certain resources are required, the IRM will manage and distribute the available resources based on internal policies and configuration settings.
The IRM is also responsible for bringing up the interconnect after power up and hot plug events. The IRM implements its own low cost heart beat mechanisms over PCI Express to detect unresponsive systems and links. The IRM is also responsible for handling hot plugging of nodes, handling of nodes being rebooted.
The IRM services and resources are available through the GENIF interface. The SISCI Driver, TCP/IP driver, SuperSockets driver etc are typically clients of the GENIF interface. The GENIF interface specification is available and customers can write their own GENIF client if required. Typical resources managed by the IRM:
- Remote mapping resources / NTB Luts
PCI Express network management
The Dolphin software includes an optional PCI Express network manager that helps customers to install, configure and monitor the PCI Express network. The management software includes an graphical tool that is very convenient for larger systems. The graphical tool is written in QT and is supported on both Linux and Windows. You can e.g. easily use a Windows Laptop to monitor a Linux PCI Express network.
The network management software uses standard Ethernet as an out of band channel between all systems to easily collect and report issues with the high speed PCI Express network. The network management software is designed to be light weight and will not put a high load on the Ethernet.
Support for multiple operating systems
The core Dolphin software stack is designed to be independent of the operating system. Special operating system dependent code is organized into a separate library. This gives huge benefits, both lowering the cost to include support for a new operating systems as well as being able to test independent code on several platforms. The following operating systems are currently supported by the Dolphin PCI Express software, pease follow the links for more information:
Supported hardware configurations and chipsets
The Dolphin software suite is written to be very portable and supports a variety of PCI Express NTB switches from Microsemi, IDT and PLX/Broadcom as well as the built in Intel NTB available with some Intel CPUs. The software is normally a bundle with Dolphin PCI Express hardware products, but can also be licensed by OEMs designing their own hardware.
The software supports setting up direct NTB to NTB connections, switched topologies and multi-port topologies.
Software road map
Dolphin is offering a complete solution for host to host communication over PCI express today. Future software plans includes integrating with transparent IO devices to create a unified PCI Express environments where systems and IO devices can directly communicate over PCI Express.