Cisco Blogs


Cisco Blog > High Performance Computing Networking

Open MPI and the MPI-3 MPI_T interface

July 13, 2013 at 5:00 am PST

Open MPI recently revamped its entire run-time parameter system (a.k.a., “MCA parameter system”) as part of its implementation effort for the “MPI_T” interface from MPI-3.

The MPI_T interface is a standardized interface designed for MPI tools, but can be used by regular MPI application programs, too.

Specifically, MPI_T provides programatic access to two types of MPI implementation data:

  1. Control variables: used to control the behavior of an MPI implementation
  2. Performance variables: provide access to internal MPI implementation performance metrics

Read More »

Tags: , , ,

Why MPI is Good for You (part 3)

June 24, 2013 at 1:05 pm PST

I’ve previously posted on “Why MPI is Good for You” (blog tag: why-mpi-is-good-for-you).  The short version is that it hides the typical application programmer from lots and lots of underlying network stuff; stuff that they really, really don’t want to be involved in.

Here’s another case study…

Cisco’s upcoming ultra-low latency MPI transport is implemented over an “unreliable” transport: raw Ethernet L2 frames. For latency reasons, it’s using the OpenFabrics verbs operating-system bypass API. These two facts mean that a) userspace is directly talking to the NIC hardware, and b) we don’t have a driver thread running down in the kernel that can service incoming frames regardless of what the MPI application is doing.

Read More »

Tags: , , , , ,

The History and Development of the MPI standard

June 21, 2013 at 10:39 am PST

Today’s guest posting comes from Jesper Larsson Träff; he’s Faculty of Informatics, Institute of Information Systems in the Research Group for Parallel Computing at the Vienna University of Technology (TU Wien).

Have you ever wondered why MPI is designed the way that it is?  The slides below are from Jesper’s talk about the History and Development of the MPI standard.  They go into detail about how certain design decisions were made, and why.  Amusingly, I’m in a picture on slide 2.  :-)

Read More »

Tags: ,

MPI Quiz

June 6, 2013 at 4:39 pm PST

A fun scenario was proposed in the MPI Forum today.  What do you think this code will do?

MPI_Comm comm, save;
MPI_Request req;
MPI_Init(NULL, NULL);
MPI_Comm_dup(MPI_COMM_WORLD, &comm);
MPI_Comm_rank(comm, &rank);
save = comm;
MPI_Isend(smsg, 4194304, MPI_CHAR, rank, 123, comm, &req);
MPI_Comm_free(&comm);
MPI_Recv(rmsg, 4194304, MPI_CHAR, rank, 123, save, MPI_STATUS_IGNORE);

Read More »

Tags: ,

Speaking about Open MPI / FOSS at Midwest Open Source Convention this weekend

May 15, 2013 at 2:45 pm PST

I’ve been a bit remiss about posting recently; it’s conference-paper-writing season, folks — sorry.

But I thought I’d mention that I’ll be speaking at the Midwest Open Source Software Convention (MOSSCon) this weekend.

I’ll be talking about my work in Open MPI, Hardware Locality (hwloc), and other open source projects, as well as Cisco’s role in open source communities.  To be honest, when I joined Cisco (7 years ago… where has the time gone?), the fact that I could keep working in the open source community was one of the major factors in my decision to come here.

Read More »

Tags: ,