=============================================================================
                                 Hitmap Release 1.1
=============================================================================
			
Hitmap is a highly-efficient library for hierarchical tiling and mapping of
arrays and sparse structures. It is designed to be used with an SPMD
(Single Process, Multiple Data) parallel programming language and it aims to
simplify parallel programming, providing functionalities to create, manipulate,
distribute, and communicate tiles and hierarchies of tiles.
 
Hitmap library supports functionalities to:

	- Generate a virtual topology structure arranging the available physical
	  processors.
	- mapping the data to the different processor with chosen partitioning and
	  load-balancing techniques.
	- automatically determine inactive processors at any stage of the computation,
	  preventing the active processors may be affected.
	- identify the neighbor processors to use in point-to-point or collective
	  communications.
	- build communication patterns to be reused across algorithm iterations.


This README file should contain enough information to get you started
with Hitmap. More information could be found in the doxygen documentation.
Execute ./gendoc to generate it.




                               Getting Started
=============================================================================

The following instructions take you through a sequence of steps to
compile the library.

(a) You will need the following prerequisites.

    - A C compiler.
    - An MPI implementation.
    - The GNU make utility.

(c) Configure Hitmap:
	
	The config directory contains configurations files for the make utility and the compilers:
	- make.def: Generic definitions for the Makefiles of the  Hitmap library and the examples.
	- make.platforms.def: Menu of compiler flags set for specific platforms or operative systems.
		Check your platform specifics in this file, add a new menu entry if needed. Choose the
		default platform in this file, or execute $make PLATFORM=.... when building the
		library or the examples.
    
(d) Build Hitmap:

	This distribution contains all the needed files to compile Hitmap.
	- Execute the make command in the top directory.

(f) Build Hitmap examples:

    - Go to the selected example directory and execute the make command.
	- Testing examples:
		1) Some examples include a ./check script to execute basic tests comparing the results
		produced by the code with some provided files for specific problem sizes.
		These tests only work if all the processors have a shared filesystem.
		2) Those derived from the NAS benchmark suite include their own correctness test
		in the main code, and the programs report about it at the end of the execution.
	
