An optimized version of openQCD-1.2 for BlueGene/Q and other machines ===================================================================== DESCRIPTION This software is a modification of the original openQCD code from http://luscher.web.cern.ch/luscher/openQCD/openQCD-1.2.tar.gz which was written by Martin Luscher and Stefan Schaefer The additional optimizations include: 1) use of intrinsics for QPX instructions for BlueGene/Q These instructions are only available on BlueGene/Q and with the IBM xlc compiler. They are enabled by default (by including "-DQPX" in CFLAGS in main/Makefile). 2) implementation of global communications by different MPI functions Wrapper functions for global summation and broadcast allow to implement them by different MPI cunctions (e.g. using Reduce + Bcast or Allreduce for global sums). This can be used also on other machines, e.g. SuperMUC, and may help to significantly reduce the time spent in global communications or to work around unpleasant features of some MPI implementations. The MPI functions used are selected in modules/utils/utils.c through the CPP macros USE_MPI_BCAST and USE_MPI_ALLREDUCE. The default setting has been found benificial on BlueGene/Q and SuperMUC. AUTHORS The original openQCD code has been written by Martin Luscher and Stefan Schaefer with contributions from others (see http://luscher.web.cern.ch/luscher/openQCD/) The optimizations and modifications with respect to the original openQCD code have been implemented and tested by Dalibor Djukanovic, Mauro Papinutto, and Hubert Simma. LICENSE The code may be used under the terms of the GNU General Public License (GPL) http://www.fsf.org/licensing/licenses/gpl.html