LINX Interprocess Communications Services for Complex Distributed Systems
LINX provides reliable, high-performance, interprocess communications services that make complex distributed systems easier to conceptualize, model, partition, and scale. Utilizing direct message passing, LINX is the only IPC technology that scales from DSPs and microcontrollers to 64-bit CPUs. LINX is independent of the underlying processor, operating system, or interconnect, supports control and data plane applications over reliable and unreliable media, and delivers 20% higher performance than TIPC. LINX also supports any distributed system topology, from a single processor on a single blade, to large networks with complex cluster topologies deployed on hundreds of processors in a multi-rack system.
Transparent, Scalable IPC Services
LINX enable application processes distributed across multiple operating systems, CPUs, and interconnects to communicate in a seamless fashion, as if they were running on the same CPU under the same operating system. LINX services are independent of the underlying hardware, operating system, physical interconnect, and network topology. This consistency and transparency makes distributed applications easy to partition and develop, enables them to be reconfigured and scaled with minimal changes to the application code, and makes it easier to integrate software components from other suppliers. It also increases overall system availability and makes systems easier to debug and maintain over time.
High-Performance, System-Wide IPC Solution
Traditionally, designers of distributed systems have used a mix of IPC technologies to handle local (processes on the same node) and remote (processes on different nodes) IPC. Most designers, for example, use the operating system’s native IPC services to maximize performance for local IPC, while using standard, more versatile IPC technologies like TCP to handle system-wide remote interprocess communications, which occur less frequently and have more forgiving latency and throughput requirements.
LINX provides a system-wide, high-performance IPC solution that eliminates the need to use multiple IPC services in the same system. Utilizing a high-performance, lightweight direct messaging passing technology, LINX provides the performance and versatility needed to satisfy local and remote IPC requirements across all CPU (including multi-core devices), OS, and interconnect boundaries. LINX can even act as a transport for bearer protocols such as UDP and TCP, and is efficient enough to work with DSPs.
Faster than TIPC and TCP/UDP/Sockets
LINX delivers substantially higher performance than competitive message-based IPC protocols. LINX is 90% faster than TCP/UDP/Sockets for local IPC and 50% faster than TCP for remote IPC. LINX also provides (on average) 25% lower latency and 20% higher throughput than TIPC for local IPC, and 10% lower latency and 25% higher throughput than TIPC for remote IPC. And LINX features a traffic adaptation algorithm that enables systems to minimize latency for low traffic load and maximize throughput for high traffic load.
More Scaleable than TIPC and TCP/UDP/Sockets
LINX utilizes an innovative address map for connections that greatly enhances flexibility and scalability. Unlike competitive IPC models, which must maintain the entire system address map on every node in the system, LINX nodes store only the addresses needed for local connections. As a result, they require very little memory for code/data storage, and can be easily reconfigured. This enables LINX systems to scale to very large networks with complex cluster topologies (i.e., clusters connected by bridges and gateways), including those containing small-footprint DSP and microcontroller nodes.
High Reliability and Availability
LINX enhances distributed system availability by providing supervision and failure reporting for designated connections. LINX also provides built-in support for redundant links, both for physical CPU interconnects and logical connections between endpoints.
Platform Support
Linux: PowerPC, Intel, ARM/Xscale, MIPS
OSE: PowerPC, ARM/Xscale, MIPS
OSEck: Freescale MSCxxxx, TI C64x+, and others