!!! Welcome to KMR

This is KMR, a high-performance map-reduce library.
KMR-1.0 is available on K computer since 2013-04-26.
KMR works on ordinary clusters as well.

__Latest release is KMR-1.8.1 (2016-04-25)__.

KMR is a set of high-performance map-reduce operations in the MPI (Message Passing Interface) environment.
It makes programming for data-processing much easier by hiding low-level details of message passing.
Its main targets are large-scale supercomputers with thousands of compute nodes, such as K and Fujitsu FX10.
On these platforms, KMR provides utilities other than the map-reduce operations which address issues such as accessing very large file-systems.

KMR is designed to work in-memory and exploit large amount of memory available on supercomputers, whereas most map-reduce implementations are designed to work with external (disk-based) operations.
So, data exchanges in KMR occur as message passing instead of remote file operations.
The KMR routines work in bulk-synchronous and the most part of the code is sequential, but the code inside the mapper and reducer are multi-threaded.

!!Project Site

* Project Overview and other Activities of the Team at RIKEN:
** [http://mt.aics.riken.jp]


* [Overview and API Document|http://pf-aics-riken.github.io/kmr-manual/]
** It is a Doxgen generated document, included in the installation.
//* Overview and API Document (Newer, corrected, for the next release):
//** [https://mt.aics.riken.jp/kmr/docs/next/html/index.html]
//** Documentation in the distribution is late, and it is placed here for late breaking.


* Source Code Download:
** [Download]
** KMR source is available with BSD license.

!!Issue Reporting

* KMR Issue Tracker:
** [https://github.com/pf-aics-riken/kmr/issues]
//** [http://mt.aics.riken.jp/jtrac/]
//** Please make a new user by the login-page to report a new issue.


* [Tutorial] (in Japanese)


* [cluster2013.pdf]: __K MapReduce: A Scalable Tool for Data-Processing and Search/Ensemble Applications on Large-Scale Supercomputers__.  Motohiko Matsuda, Naoya Maruyama, and Shinichiro Takizawa. IEEE Cluster Computing (CLUSTER) 2013. (C) Copyright IEEE.  [IEEE Explore|http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6702663]\\
 It describes an overview and optimizations used in KMR.

* [hpcs2014.pdf]: __Supporting Workflow Management of Scientific Applications by MapReduce Programming Model__. Shinichiro Takizawa, Motohiko Matsuda, and Naoya Maruyama. IPSJ HPCS 2014. (Japanese)\\
 It describes some scientific applications workflow implemented in MapReduce using KMR.

* [bigdata2014.pdf]: __Evaluation of Asynchronous MPI Communication in Map-Reduce System on the K Computer__.  Motohiko Matsuda, Naoya Maruyama, and Shinichiro Takizawa. EuroMPI Workshop 2014.  (C) Copyright ACM.  [ACM Digital Library|http://dl.acm.org/citation.cfm?id=2642800]\\
 It compares all-to-all collective communication versus asynchronous communication in shuffling communication, to qualify believed effectiveness of overlapping of communication and computation.



This wiki also comes with ABSOLUTELY NO WARRANTY.
Contents are liable to change.



KMR is a product of RIKEN AICS.
Part of the results is obtained by using the K computer at RIKEN AICS.