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).