# README file for MILC datatype benchmark 

This benchmark supports the comparison of a MILC version that uses MPI
datatypes for most communications versus the default implementation that
uses an index list. Please refer to Hoefler, Gottlieb: "Parallel
Zero-Copy Algorithms for Fast Fourier Transform and Conjugate Gradient
using MPI Datatypes." for details!

MILC is an open-source project distributed by the MILC collaboration;
the copyrights remain with the original holders. 

The additions were made by Steven Gottlieb (DDT and profiling) and
Torsten Hoefler (some more profiling) and are copyrighted by the
Trustees of the university of Illinois (c) 2010. See LICENSE for
details on the license of the additions!

Installing
----------
  
  * edit milc/ks_imp_dyn/Makefile to fit your needs (CC, OPT, etc.)
  * if -DDDT is set, then the datatype version is used, otherwise the default implementation (index list) is used
  * build: cd milc/ks_imp_dyn/ && make
  * test: mpiexec -n 2 ./su3_rmd in.time.su3_rmd

Output
----------

  * MILC runs in different phases (CG, FF, GF, FAT)
  * profiling of send/receive operations is done separately for each phase (and a "default" phase that covers everything else)
  * each phase has three parts: "memcpy", "Isend", "ddtsend"
   * the "original" MILC implementation uses memcopy (pack) + Isend and the "optimized" implementation uses ddtsend
   * not all sends use datatypes (e.g., if the dimension is not even), the counts will show you how many sends are using datatypes

Running
-------

 * use normal MILC input files
 * the datatype implementation only works if the dimensions per process are even

Citation
--------
Any published work which uses this software should include the following
citation:
----------------------------------------------------------------------
T. Hoefler and S. Gottlieb:   Parallel Zero-Copy Algorithms for Fast
Fourier Transform and Conjugate Gradient using MPI Datatypes. In Recent
Advances in the Message Passing Interface (EuroMPI'10), pages 132-141,
Springer, ISSN: 0302-9743, ISBN: 078-3-642-15645-8, Sep. 2010
----------------------------------------------------------------------
