MR-MPI WWW Site -MR-MPI Documentation - OINK Documentation - OINK Commands

OINK Documentation

Version info:

The OINK "version" is the date when it was released, such as 1 Feb 2011. OINK and MR-MPI library are updated continuously. Whenever we fix a bug or add a feature, we release it immediately, and post a notice on this page of the WWW site. Each dated copy of OINK contains all the features and bug-fixes up to and including that version date. The version date is printed to the screen and log file every time you run OINK. It is also in the file oink/version.h and in the MR-MPI directory name created when you unpack a tarball.

OINK is a simple scripting wrapper around the "MapReduce-MPI library, and also provides a easy-to-use development framework for writing new MapReduce algorithms and codes. Like the MR-MPI library, OINK will run on any platform (serial or parallel) that supports MPI. Note the MR-MPI library has its own manual and doc pages.

The name OINK is meant to evoke the aroma of the Apache Pig platform which wraps the Hadoop MapReduce capabilities with its high-level Pig Latin language. Since OINK has only a small fraction of Pig's capability, it is more the sound of a pig, than the pig itself.

Source code for OINK and the MR-MPI library were developed at Sandia National Laboratories, a US Department of Energy facility. They are freely available for download from the MR-MPI web site and are distributed under the terms of the modified Berkeley Software Distribution (BSD) License. This basically means they can be used by anyone for any purpose. See the LICENSE file provided with the distribution for more details.

The authors of OINK and the MR-MPI library are Steve Plimpton at and Karen Devine who can be contacted via email: sjplimp,kddevin at

Goals of OINK

We think the first two goals are largely met. See the section on Adding Commands to OINK and the named command, input, and output doc pages for details of the first goal. See the section on Adding Functions to OINK for details of the second goal.

The third goal, however, is only partially met. See the MR-MPI library commands doc page for its current status. The sticking point here is that in a real programming language you can pass a pointer to an arbitrary data structure to your map() or reduce() functions, but it is hard to do that from a scripting language using text input without re-inventing something like Python.

Contents of OINK Manual

OINK aims to be a simple scripting interface and development environment and the lightweight documentation reflects that.

Once you are familiar with OINK, you may want to bookmark this page at Section_script.html#comm since it gives quick access to documentation for all OINK commands.

PDF file of the entire manual, generated by htmldoc

  • Building OINK
  • OINK Scripts
  • Adding Functions to OINK
  • Adding Commands to OINK
  • Errors