I CAN HAS MPI

The Cisco and Microsoft joint Cross-Animal Technology Project, a well-established player in the field of multi-species collaborative initiatives, is pleased to introduce its next project: a revolution in High Performance Computing (HPC): LOLCODE language bindings for the Message Passing Interface (MPI).

CATP believes that cats are natural predatory programmers.  Who better to take advantage of all the world’s spare, unused computing cycles than cats?  They’re at home when we’re not.  They’re clever, they can problem-solve, and they have lots of free time on their… paws.

To target cats, we needed a computing language that speaks their language.  Rather than create our own, we found that the brilliant researchers at LOLCODE continue to push the boundaries of human-cat collaborative programming.  We are therefore thrilled to bring the work of LOLCODE to the world of HPC.

The MPI LOLBINDINGS fit naturally within Cisco’s “Internet of Everything” philosophy; we believe that everything, everywhere will eventually be connected to the internet.  The network that already connects us will also connect our devices, and our cats.  Enabled by Microsoft’s Big Compute capabilities, our goal is to push the frontiers of computing: we want to provide greater access to High Performance Computing (HPC), to more devices, and more species.

Enough human talk; let’s look at some examples, adhering to v1.2 of the LOLCODE specification.  This is the canonical “hello world” in MPI LOLBINDINGS:

HAI
CAN HAS MPI?
MPI_HAI
BTW Lines beginning with "BTW" are comments
BTW MPI's "Communicator" translates to "catinator"
I HAS A ME ITS MPI_CATZ_RANK MPI_CATZ_WORLD
I HAS A BIGNIS ITS MPI_CATZ_SIZE MPI_CATZ_WORLD
VISIBLE "HAI WORLD! ME IZ " ME " OF " BIGNIS
MPI_KTHXBYE
KTHXBYE

And here’s the traditional “compute Pi in parallel” example in MPI LOLBINDINGS:

HAI
CAN HAS MPI?
MPI_HAI
I HAS A PIE ITZ 3.141592653589793238462643
I HAS A ME ITZ MPI_CATZ_RANK MPI_CATZ_WORLD
I HAS A BIGNIS ITZ MPI_CATZ_SIZE MPI_CATZ_WORLD

IM IN YR MATHS
I HAS A ITERASHUN
ME IZ 0 O RLY?
YA RLY
VISIBLE "I CAN HAS ITERASHUN?"
GIMMEH ITERASHUN
OIC

MPI_BCATZ ITERASHUN 1 MPI_NUMBR 0 MPI_CATZ_WORLD

BOTH SAEM ITERASHUN AN 0, O RLY?
YA RLY, GTFO
OIC

I HAS A H ITZ QUOSHUNT OF 1.0 AN ITERASHUN
I HAS A REZULT ITZ 0.0

I HAS A COUNT ITZ ME
IM IN YR LOOP
I HAS A TMP ITZ PRODUKT OF H AN SUM OF COUNT AN 0.5
REZULT R SUM OF REZULT AN QUOSHUNT OF 4.0 AN SUM OF 1.0 AN ...
PRODUKT OF TMP AN TMP
COUNT R SUM OF COUNT AN BIGNIS
BOTH SAEM COUNT AN BIGGR OF COUNT AN ITERASHUN, O RLY?
YA RLY, GTFO
OIC
IM OUTTA YR LOOP

REZULT R PRODUKT OF H AN REZULT
BOTH SAEM ME AN 0, O RLY?
YA RLY
MPI_REDUSEZ MPI_IN_PLACEZ REZULT 1 MPI_NUMBAR SUM 0 MPI_CATZ_WORLD
VISIBLE "YUR PIE IZ " AN REZULT AN " ERRORZ IZ " AN ...
FABZ DIFF OF REZULT AN PIE
NO WAI
MPI_REDUSEZ REZULT ZZZ 1 MPI_NUMBAR SUM 0 MPI_CATZ_WORLD
OIC
IM OUTTA YR MATHS

MPI_KTHXBYE
KTHXBYE

We here at CATP are excited to see the potential of MPI LOLBINIDINGS, especially as we venture into the era of exascale computing.  To that end, CATP engineers will present the LOLBINDINGS proposal to the MPI Forum for inclusion in MPI-4 (a.k.a. MPI4CATZ).

Kthxbye.