Articles
Top 5 Reasons the HPC Community Should Care About libfabric
I’ve mentioned libfabric on this blog a few times: it’s a set of next-generation APIs that allow direct access to networking hardware (e.g., high-speed / low latency NICs) from Linux userspace (kernel access is in the works). To give you a little perspective: the libfabric APIs are aimed at a lower layer than MPI. libfabric […]
“Using Advanced MPI” book (i.e., MPI-3 for the rest of us)
I’m stealing this text directly from Torsten Hoefler‘s blog, because I think it’s directly relevant to many of this blog’s readers: Our book on “Using Advanced MPI” will appear in about a month — now it’s the time to pre-order on Amazon at a reduced price. It is released by the prestigious MIT Press, a must […]
libfabric support of usNIC in Open MPI
I’ve previously written about libfabric. Here’s some highlights: libfabric is a set of next-generation, community-driven, ultra-low latency networking APIs The APIs are not tied to any particular networking hardware model Cisco is actively helping define, design, and develop the libfabric APIs as part of the community My fellow team member Reese Faucette recently contributed a […]
usNIC support for the Intel MPI Library
Cisco is pleased to announce the intention to support the Intel MPI Library™ with usNIC on the UCS server and Nexus switches product lines over the ultra low latency Ethernet and routable IP transports, at both 10GE and 40GE speeds. usNIC will be enabled by a simple library plugin to the uDAPL framework included in […]
Supercomputing is upon us!
It’s that time of year again — we’re at about T-2.5 weeks to the Supercomputing conference and trade show; SC’14 is in New Orleans, November 16-21. Are you going to get some tasty gumbo and supercharged computing power? If so, come say hi! The Cisco booth is 2715.
The “vader” shared memory transport in Open MPI: Now featuring 3 flavors of zero copy!
Today’s blog post is by Nathan Hjelm, a Research Scientist at Los Alamos National Laboratory, and a core developer on the Open MPI project. The latest version of the “vader” shared memory Byte Transport Layer (BTL) in the upcoming Open MPI v1.8.4 release is bringing better small message latency and improved support for “zero-copy” transfers. NOTE: “zero copy” […]
HPC schedulers: What is a “slot”?
Today’s guest post comes from Ralph Castain, a principle engineer at Intel. The bulk of this post is an email he sent explaining the concept of a “slot” in typical HPC schedulers. This is a little departure from the normal fare on this blog, but is still a critical concept to understand for running HPC […]
usNIC provider contributed to libfabric
Today’s guest post is by Reese Faucette, one of my fellow usNIC team members here at Cisco. I’m pleased to announce that this past Friday, Cisco contributed a usNIC-based provider to libfabric, the new API in the works from OpenFabrics Interfaces Working Group. (Editor’s note: I’ve blogged about libfabric before) Yes, the road is littered with […]
MPI-3.1
As you probably already know, the MPI-3.0 document was published in September of 2012. We even got a new logo for MPI-3. Woo hoo! The MPI Forum has been busy working on both errata to MPI-3.0 (which will be collated and published as “MPI-3.1”) and all-new functionality for MPI-4.0. The current plan is to finalize […]
Overlap of communication and computation (part 2)
In part 1 of this series, I discussed various peer-wise technologies and techniques that MPI implementations typically use for communication / computation overlap. MPI-3.0, published in 2012, forced a change in the overlap game. Specifically: most prior overlap work had been in the area of individual messages between a pair of peers. These were very […]
Overlap of communication and computation (part 1)
I’ve mentioned computation / communication overlap before (e.g., here, here, and here). Various types of networks and NICs have long-since had some form of overlap. Some had better quality overlap than others, from an HPC perspective. But with MPI-3, we’re really entering a new realm of overlap. In this first of two blog entries, I’ll […]
HPC over UDP
A few months ago, I posted an entry entitled “HPC in L3“. My only point for that entry was to remove the “HPC in L3? That’s a terrible idea!” knee-jerk reaction that us old-timer HPC types have. I mention this because we released a free software update a few days ago for the Cisco usNIC […]
Unsung heros: MPI run time environments
Most people immediately think of short message latency, or perhaps large message bandwidth when thinking about MPI. But have you ever thought about what your MPI implementation has to do before your application even calls MPI_INIT? Hint: it’s pretty crazy complex, from an engineering perspective. Think of it this way: operating systems natively provide a […]
Traffic in parallel
In my last entry, I gave a vehicles-driving-in-a-city analogy for network traffic. Let’s tie that analogy back to HPC and MPI.
Still more traffic
I periodically write about network traffic, and how general / datacenter network traffic analysis is related to MPI / HPC. In my last entry, I mentioned how network traffic has many characteristics in common with distributed computing. Routing decisions, for example, are made independently at each network switch. Consider if you were looking down at […]
Traffic (redux)
I’ve written about network traffic before (see this post and this post). It’s the subject of endless blog posts, help forums, and instructional guides across the internet. In a High Performance Computing (HPC) context, there are some fascinating aspects about network traffic that are fairly different than other types of network traffic.
BigMPI: You can haz moar counts!
Jeff Hammond has recently started developing the BigMPI library. BigMPI is intended to handle all the drudgery of sending and receiving large messages in MPI. In Jeff’s own words: [BigMPI is an] Interface to MPI for large messages, i.e. those where the count argument exceeds INT_MAX but is still less than SIZE_MAX. BigMPI is designed […]
First public tools for the MPI_T interface in MPI-3.0
Today’s guest post is written by Tanzima Islam, Post Doctoral Researcher at Lawrence Livermore Laboratory, and Kathryn Mohror and Martin Schulz, Computer Scientists at Lawrence Livermore Laboratory. The latest version of the MPI Standard, MPI 3.0, includes a new interface for tools: the MPI Tools Information Interface, or “MPI_T”. MPI_T complements the existing MPI profiling […]
Can I MPI_SEND (and MPI_RECV) with a count larger than 2 billion?
This question is inspired by the fact that the “count” parameter to MPI_SEND and MPI_RECV (and friends) is an “int” in C, which is typically a signed 4-byte integer, meaning that its largest positive value is 231, or about 2 billion. However, this is the wrong question. The right question is: can MPI send and […]
MPI over 40Gb Ethernet
Half-round-trip ping-pong latency may be the first metric that everyone looks at with MPI in HPC, but bandwidth is one of the next metrics examined. 40Gbps Ethernet has been available for switch-to-switch links for quite a while, and 40Gbps NICs are starting to make their way down to the host. How does MPI perform with […]
Java Bindings for Open MPI
Today’s guest blog post is from Oscar Vega-Gisbert and Dr. Jose Roman from the Department of Information Systems and Computing at the Universitat Politècnica de València, Spain. We provide an overview of how to use the Java bindings included in Open MPI. The aim is to expose MPI functionality to Java programmers with minimal performance […]
New Open MPI stable series launched: v1.8
The Open MPI project released version v1.8 last week. This is a major release that heralds the beginning of a new production-ready series, full MPI-3.0 support, and a new OpenSHMEM implementation. Open MPI is developed in a tick-tock fashion: Odd-numbered series are focused on feature development and expansion Even-numbered series are focused on stability and […]
Networks for MPI
It seems like we’ve gotten a rash of “how do I setup my new cluster for MPI?” questions on the Open MPI mailing list recently. I take this as a Very Good Thing, actually — it means more and more people are tinkering with and discovering the power of parallel computing, HPC, and MPI.
Belated April Fool’s blog post
I was on vacation last week, and had a nice April Fool’s blog post queued up to be posted at 8am US Eastern time on 1 April 2014. It should have appeared whilst I was relaxing on a beach… but due to a bug in our WordPress installation, it didn’t. And I didn’t find out […]
EuroMPI/ASIA 2014: Call for Workshop papers
Held in conjunction with EuroMPI/ASIA 2014 (see the associated call for papers), September 9-12, 2014. In-cooperation status with ACM and SIGHPC. This year, EuroMPI/ASIA 2014 will hold two workshops. Accepted workshop papers will be included in ACM’s ICPS conference proceedings of the EuroMPI/ASIA 2014. Workshop information is available on the EuroMPI/ASIA 2014 web site, and […]
Open MPI 1.7.5 released
After a metric ton of work by the entire community, Open MPI has released version 1.7.5. Among the zillions of minor updates and new enhancements are two major new features: MPI-3.0 conformance OpenSHMEM support (Linux only) See this post on the Open MPI announcement list for more details.
HPC in L3
As an HPC old-timer, I’m used to thinking of HPC networks as large layer-2 (L2) subnets. All HPC traffic (e.g., MPI traffic) is therefore designed to stay within a single L2 subnet. The next layer up — L3 — is the “networking” layer in the OSI network model; it adds more abstractions than are available […]
What’s Next for MPI?
MPI-3 has been out for over a year and a half. MPICH supports all of the mandatory MPI-3 behavior and some of its optional semantics. Open MPI supports all of MPI-3 except the new one-sided semantics. New functionality is becoming mature in both, and that maturity is trickling down to the implementations that are derived […]
Open MPI 1.7.4 released!
It took us longer than we intended, but we finally released Open MPI v1.7.4. Woo hoo! (we got nice coverage from El Reg, too) This is a monster release; it represents hundreds (thousands? millions?) of person-hours of work. Consider this a ginormous “thank you!” to the entire Open MPI community! Special thanks goes to […]
More Network Locality (Netloc) progress
We announced the Network locality project at SC’13, and generated a LOT of interest (far more than I even anticipated!). As a refresher, here’s a link to a a blog entry we wrote about Netloc back in November. There is still much work to be done; we’re actively continuing work in multiple areas:
InsideHPC podcast: MPI collaboration with OpenFabrics
In my last blog post, I described a new collaboration between the MPI community and the OpenFabrics verbs community. The collaboration started with the OpenFrameworks group asking the MPI community to list its requirements for a lower layer network API to the OpenFabrics OpenFrameworks working group. In that last blog post, I posted an abbreviated […]
A fun thing happened on the way to the OpenFrameworks discussion today…
A few months ago, Sean Hefty from Intel started an effort to design a new low-level network API to replace libibverbs. That is, it’s not libibverbs 2.0 — it’s a new API that aims to both expand the scope of what libibverbs did, and also to address many of its much-criticized shortcomings. Sean and Paul […]
Process affinity: Hop on the bus, Gus!
Today’s blog post is written by Joshua Ladd, Open MPI developer and HPC Algorithms Engineer at Mellanox Technologies. At some point in the process of pondering this blog post I noticed that my subconscious had, much to my annoyance, registered a snippet of the chorus to Paul Simon’s timeless classic “50 Ways to Leave Your […]
MPI_FESTIVUS(3)
NAME MPI_Festivus – An MPI function for the rest of us
Call for Workshops: EuroMPI/Asia 2014
The 21st European MPI Users’ Group Meeting, EuroMPI/AISA 2014, will be held in Kyoto, Japan, 9th – 12th September, 2014. In addition to the main conference’s technical program, EuroMPI/ASIA 2014 is soliciting proposals for one-day or half-day workshops to be held in conjunction with the main conference. It is intended that those workshops are aim to discuss on […]
Open MPI: Binding to core by default
After years of discussion, the upcoming release of Open MPI 1.7.4 will change how processes are laid out (“mapped”) and bound by default. Here’s the specifics: If the number of processes is <= 2, processes will be mapped by core If the number of processes is > 2, processes will be mapped by socket Processes […]