Mercury Computer Systems - Software

Software

Mercury supplies a set of APIs, libraries and a kernel called MCOE. The APIs provide multicomputer services to applications, and provide a common API layer above Solaris, VxWorks, Linux, or Windows on the host side, and MCexec or Linux on the compute node side. MCexec is Mercury's own real-time kernel, which is provided today mainly for customers who are not yet ready for Linux. Systems can be configured today that run MCexec on some nodes, and Linux on others. Mercury systems in the past have required a host board, which is typically not a Mercury product, and then the compute node boards. Next generation products include a host board that also provides I/O capability through the use of PMC or XMC modules.

MCOE is properly used in two stages, start-up and run. During start-up, the user allocates memory and communication resources. This can be slow on large systems, and is certainly not real-time. During the run stage, MCexec generally acts as a hard-real-time OS. Linux provides comparable performance. For the most demanding applications, the user can even disable interrupts when running MCexec on the compute nodes.

MCOE includes a single-node kernel called MCexec or LNXexec, and distributed database services for system-wide naming, routing, and resource allocation. MCexec supports the minimum real-time profile of POSIX. It is thus vaguely UNIX-like, with fork being the greatest omission. Running a program involves two steps: loading the executable to get a handle, and spawning a process from that handle. LNXexec is essentially an off-the-shelf Linux kernel, built with a reduced footprint and with inherent support for TCP/IP over the fabric (Race or RapidIO). This, the set of nodes running LNXexec essentially become a Linux cluster, with the choice of cluster-like development or traditional Mercury development using the high-performance MCOE APIs.

Filesystem and terminal IO is very slow, being redirected to a non-Mercury host OS. Applications normally do little of this; instead they use high-speed DMA to interact directly with IO hardware.

Mercury Computer Systems sells software for biomedical image processing; their most known software package for this purpose is called Amira.

The former Visualization Sciences Group of Mercury Computer Systems became in June 2009 an independent entity called VSG - Visualization Sciences Group, which continues to develop and support Open Inventor (3D Development Toolkit) and Avizo (3D Visualization and Analysis Software for Engineers and Scientists).

Read more about this topic:  Mercury Computer Systems