Avatar

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.