Cisco Blogs


Cisco Blog > High Performance Computing Networking

Community-contributed Perl and Python bindings for hwloc

January 22, 2011 at 7:30 am PST

I love open source communities.

Two hwloc community members have taken it upon themselves to provide high-quality native language bindings for Perl and Python.  There’s active work going on, and discussions occurring between the hwloc core developers and these language providers in order to provide good abstractions, functionality, and experience.

  • The Perl CPAN module is being developed by Bernd Kallies: you can download it here (I linked to the directory rather than a specific tarball because he keeps putting up new versions).
  • The Python bindings are being developed by Guy Streeter (at Red Hat); his git repository is available here.

Read More »

Tags: ,

Building 3rd party Open MPI plugins

January 20, 2011 at 11:47 am PST

Over the past several years, multiple organizations have approached me asking how to develop their own plugins outside of the official Open MPI tree.  As a community, Open MPI hasn’t really been good about providing a good example of how to do this.

Today, I published three examples of compiling Open MPI plugins outside of the official source tree.  A Mercurial repository is freely clonable from my Bitbucket hosting:

(MOVED: See below)

This repository might get moved somewhere more official (e.g., inside Open MPI’s SVN), but for the moment, it’s an easily-publishable location for sharing with the world.

(UPDATE: the code has been moved to the main Open MPI SVN repository; look under contrib/build-mca-comps-outside-of-tree in the trunk and release branches starting with v1.4)

Read More »

Tags: , ,

Why MPI?

January 7, 2011 at 3:15 pm PST

It’s the beginning of a new year, so let’s take a step back and talk about what MPI is and why it is a Good Thing.

I’m periodically asked what exactly MPI is.  Those asking cover many different biases: network administrators, systems programmers, application programmers, web developers, server and network hardware designers, … the list goes on.  Most have typically heard about this “MPI” thing as part of “high performance computing” (HPC), and think that it’s some kind of parallel programming model.

Technically, it’s not.  MPI — or, more specifically, message passing — implies a class of parallel programming models.  But at its heart, MPI is about simplified inter-process communication (IPC).

Read More »

Tags: ,

Happy Holidays!

December 25, 2010 at 7:21 am PST

My blog always gets “slow” during late November and most of December.  The podcast suffers, too.

Here’s why…

void november_december(int year) {
    // Uses at least one week
    attend_sc();
    // Uses about another week
    thanksgiving_vacation();
    while (before_christmas()) {
        MPI_Irecv(email, 17, MPI_WORK, ..., &req[i++]);
        MPI_Isend(voicemail_reply, 1, MPI_WORK, ..., &req[i++]);
        MPI_Isend(email_reply, 2, MPI_WORK, ..., &req[i++]);
    }
    // Uses another 2 weeks
    christmas_new_years_holiday();
}

Read More »

Tags: ,

The Graph 500

December 17, 2010 at 5:00 am PST

Did you hear about the Graph 500 at SC’10?  You might not have.  It got some fanfare, but other press releases probably drowned it out.

Even though it’s a brand new “yet another list”, it’s worth discussing because it’s officially a Good Idea.  Here’s what Rich Murphy, Official Chief Graph 500 Cat Herder (ok, I might have made up that title), tells me about it:

Basically, what we’re trying to do is create a complementary measure to Linpack for data intensive problems.  A lot of us on the steering committee believe that these kinds of problems will dominate high performance computing over the next decade.  We’ve given some “business areas” as examples of these kinds of applications: cybersecurity, medical informatics, data enrichment, social networks, and symbolic networks.  These basically exist to support the assertion that this could be huge someday.

+1 on what he says.

Read More »

Tags: ,