Cisco Blogs


Cisco Blog > High Performance Computing Networking

mpicc != mpicc

September 26, 2011 at 5:00 am PST

In my last post, I talked about why MPI wrapper compilers are Good for you.  The short version is that it is faaar easier to use a wrapper compiler than to force users to figure out what compiler and linker flags the MPI implementation needs — because sometimes they need a lot of flags.

Hence, MPI wrappers are Good for you.  They can save you a lot of pain.

That being said, they can also hurt portability, as one user noted on the Open MPI user’s mailing list recently.

Read More »

Tags: , , ,

Why MPI “wrapper” compilers are Good for you

September 23, 2011 at 5:20 am PST

An interesting thread on the Open MPI user’s mailing list came up the other day: a user wanted Open MPI’s “mpicc” wrapper compiler to accept the same command line options as MPICH’s “mpicc” wrapper.  On the surface, this is a very reasonable request.  After all, MPI is all about portability — so why not make the wrapper compilers be the same?

Unfortunately, this request exposes a can of worms and at least one unfortunate truth: the MPI API is portable, but other aspects of MPI are not, such as compiling/linking MPI applications, launching MPI jobs, etc.

Let’s first explore what wrapper compilers are, and why they’re good for you.

Read More »

Tags: , , ,

“All of life is not #MPI”

September 7, 2011 at 5:08 pm PST

I retweeted a tweet today that may seem strange for an MPI guy.  I was echoing the sentiment that not everything in HPC revolves around MPI.

My rationale for retweeting is simple: I agree with the sentiment.

But I do want to point out that this statement has multiple levels to it.

Read More »

Tags: ,

Connection Management

September 3, 2011 at 5:04 am PST

One of the nice features of MPI is that its applications don’t have to worry about connection management.  There’s no concept of “open a connection to peer X” — in MPI, you just send or receive from peer X.

This is somewhat similar to many connectionless network transports (e.g., UDP) where you just send to a target address without explicitly creating a connection to that address.  But it’s different in a key way from many connectionless transports (e.g., UDP): MPI’s transport is reliable, meaning that whatever you send is guaranteed to get there.

All this magic happens under the covers of the MPI API.  It means that in some environments, MPI must manage connections for you, and also must guarantee reliable delivery.

Read More »

Tags: ,

Hardware Locality 1.2.1 and 1.3rc1 released

August 23, 2011 at 4:27 am PST

In the vein of awesome software releases (ahem…), Hardware Locality (hwloc) v1.2.1 has been released.  As the “.1″ implies, this is a bug fix release of a bunch of little things that crept in the 1.2 series.  A full list of the news-worthy items can be found here.

But more awesome than that is the fact that Hwloc 1.3rc1 has also been released.  The Hwloc 1.3 series brings in some major new features.  The list of new features can be found below.

Read More »

Tags: , , ,