Primary website      Secondary website

Open-MX

Myrinet Express over Generic Ethernet Hardware

New release: Open-MX 1.5.4 released (2014/12/15). See the ChangeLog for details and the corresponding 1.5 FAQ.

See the Download page for details about all releases.

News: Clustermonkey reports Open-MX use in the Limilus Project for Switchless 10G experiments with Bonded Loop (2013/04/11)

News: The Research, Computing & Engineering website hosts a podcast interview of Open-MX project leader. (2009/03/15)

News: Linux Magazine talks about Open-MX in an article about the Good old Ethernet. (2009/02/25)

News: Clustermonkey published an article about Open-MX and links to the videos of an Open-MX talk that was recently given at the STFC Daresbury Laboratory in UK. (2009/01/15)

Get the latest Open-MX news by subscribing to the open-mx-announce mailing list. See also the news archive.

Summary

Open-MX is a high-performance implementation of the Myrinet Express message-passing stack over generic Ethernet networks. It provides application-level with wire-protocol compatibility with the native MXoE (Myrinet Express over Ethernet) stack.

The following middleware are known to work flawlessly on Open-MX using their native MX backend thanks to the ABI and API compatibility: Open MPI, Argonne's MPICH2/Nemesis, Myricom's MPICH-MX and MPICH2-MX, PVFS2, Intel MPI (using the new TMI interface), Platform MPI (formerly known as HP-MPI), NewMadeleine, and NetPIPE.

The design of Open-MX is described in several papers.

The FAQ contains answers to many questions about Open-MX usage, configuration, and so on.

Features

Open-MX implements:

The following features will be available in the near future:

Requirements:

To get the latest Open-MX news, you should subscribe to the open-mx-announce mailing list. See also the news archive. For additional discussions regarding the Open-MX development, see also the open-mx-devel mailing list but be aware that open-mx-announce is the only way to be informed about important news and releases.

Performance

If you need help to tune your installation for Open-MX, please refer to the Performance tuning section of the FAQ.

10G Ethernet Performance

Multiple raw outputs of the Intel MPI Benchmarks and NetPIPE are available below using Open MPI or MPICH-MX on top of Open-MX. For comparison purpose, the performance of the BTL TCP component of Open MPI is also given (using the exact same configuration of the host and its 10G interface). For configuration details, see the headers of the corresponding output file. Direct access to all raw performance numbers is available here.

MPICH-MX/Open-MX Open MPI/Open-MX Open MPI/TCP
NetPipe (link width is 9491Mbps) 7.05µs - 9367Mbps 7.22µs - 9106Mbps 15.07µs - 6462Mbps
IMB (link width is 1186MiB/s) 7.02µs - 1160MiB/s 7.21µs - 1124MiB/s 14.54µs - 825MiB/s

The Open-MX latency depends on the processor frequency. For instance, if you replace the 2.33 GHz "Clovertown" Xeon (E5345) in the above tests with some 3.16 GHz "Harpertown" (X5460), the latency drops to 6.18µs.

Gigabit Ethernet Performance

IMB performance on Gigabit Ethernet interfaces (Broadcom bnx2) with Open MPI/Open-MX and Open MPI/TCP.

Intra-node Communication Performance

Since Open-MX also provides an efficient shared-memory communication model, the IMB performance on top of MPICH-MX is also available for the following runs:

Bugs and Questions

The FAQ contains answers to many questions about Open-MX usage, configuration, and so on. Bug reports and questions should be sent on the project tracker or on the open-mx-devel mailing list. See the REPORTING-BUGS file in the source tree for details.

Credits

Inria Open-MX is developed by the Inria Runtime Team-Project (headed by Raymond Namyst) in collaboration with Myricom, Inc. The main contributors are Brice Goglin, Nathalie Furmento, and Ludovic Stordeur.

Open-MX development resources are maintained on the Inria Gforge server. See the Open-MX project homepage.

Papers

  1. Brice Goglin. High-Performance Message Passing over generic Ethernet Hardware with Open-MX In Elsevier Journal of Parallel Computing (PARCO), 37(2):85-100, February 2011. Available here.
    This paper describes the design of the Open-MX stack and of its copy offload mechanism, and how the MX wire protocol and host configuration may be tuned for better performance. If you are looking for general-purpose Open-MX citations, please use this one.
  2. Brice Goglin. NIC-assisted Cache-Efficient Receive Stack for Message Passing over Ethernet. In Concurrency and Computation: Practice and Experience, Euro-Par 2009 best papers issue. Wiley. 2010. Accepted for publication, to appear. Available here.
    Extended revision of the Euro-Par 2009 paper, discussing cache-affinity-related problems in the Open-MX receive stack and improving performance by enhancing the cache-efficiency from the NIC up to the application.
  3. Brice Goglin and Nathalie Furmento. Finding a Tradeoff between Host Interrupt Load and MPI Latency over Ethernet. In Proceedings of the IEEE International Conference on Cluster Computing, New Orleans, LA, September 2009. IEEE Computer Society Press. Available here.
    Achieving low latency with Open-MX usually requires careful tuning of the NIC interrupt coalescing. This paper discuss how to add basic support for Open-MX-aware coalescing in regular NIC so as to achieve optimal latency without disturbing message rate or increasing the host load.
  4. Brice Goglin. NIC-assisted Cache-Efficient Receive Stack for Message Passing over Ethernet. In Proceedings of the 15th International Euro-Par Conference, Volume 5704 of Lecture Notes in Computer Science, pages 1065-1077, Delft, The Netherlands, August 2009. Springer Verlag. Available here.
    This paper discussed cache-affinity-related problems in the Open-MX receive stack. It shows that adding Open-MX protocol knowledge in the NIC firmware and combining it with multiqueue capabilities improves performance by enhancing the cache-efficiency from the NIC up to the application.
  5. Brice Goglin. Decoupling Memory Pinning from the Application with Overlapped on-Demand Pinning and MMU Notifiers. In CAC 2009: Workshop on Communication Architecture for Clusters, held in conjunction with IPDPS 2009, Rome, Italy, May 2009. IEEE Computer Society Press. Available here.
    This paper describes an innovative memory pinning optimization in Open-MX based on pinning pages on-demand, overlapping this process with the communication, and decoupling it from user-space so as to implement a safe pinning cache using the kernel MMU-Notifier framework.
  6. Brice Goglin. High Throughput Intra-Node MPI Communication with Open-MX. In Proceedings of the 17th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP2009), Weimar, Germany, February 2009. IEEE Computer Society Press. Available here.
    The Open-MX intra-communication subsystem achieves very high throughput thanks to overlapped memory pinning and I/OAT copy offload. This paper led to the development of the KNEM module which offers similar performance to the generic MPICH2/Nemesis implementation without needing Open-MX, as described here.
  7. Brice Goglin. Improving Message Passing over Ethernet with I/OAT Copy Offload in Open-MX. In Proceedings of the IEEE International Conference on Cluster Computing, pages 223-231, Tsukuba, Japan, September 2008. IEEE Computer Society Press. Available here.
    Open-MX uses I/OAT copy offload on the receive side to work around the inability of generic Ethernet hardware to perform zero-copy receive, enabling high throughput up to the 10G linerate.
  8. Brice Goglin. Design and Implementation of Open-MX: High-Performance Message Passing over generic Ethernet hardware. In CAC 2008: Workshop on Communication Architecture for Clusters, held in conjunction with IPDPS 2008, Miami, FL, April 2008. IEEE Computer Society Press. Available here.
    This paper describes the initial design and performance of Open-MX stack.

All Open-MX papers are also listed here with the corresponding Bibtex entries.


Last updated on 2014/12/15.

Valid XHTML 1.0 Strict CSS Valide !