
   Description of the test
   ========================

   This test uses the HMPI partitioning function HMPI_Partition_set
   to get the optimal allocations of elements to processors.
 
   The processor speeds are represented by functions of size of the 
   problem. The test in the directory Generate_mxm_data is used to 
   generate the speed functions.

   The bounds for each processor is calculated in the directory Memory_bounds

   This test executes the parallel matrix-matrix multiplication
   using one-dimensional array of processes.

   The matrix distribution used is naive one-dimensional
   heterogeneous distribution using horizontal striping of matrices.

   The test takes as input the number of processes
   required to execute the algorithm.

   The time of execution of the algorithm is returned.

   Files
   -----

   bounds.h  ---->      Contains the bounds of the processors
   counter.h ---->      Contains the size of the problem
   mxm.c     ---->      Contains the code of the matrix-matrix multiplication algorithm
   mxm_data.h,
   mxm_data.c --->      Contains the speed functions
   mxm_i.c,
   mxm_i.h    --->      Contains the functions to get the cooridnate the processor
                        to which the matrix element is assigned

   HOW TO RUN
   ----------

   shell$ hmpibcast mxm.c mxm_i.h mxm_i.c mxm_data.h mxm_data.c counter.h bounds.h

   shell$ hmpiload -o mxm mxm.c 

   shell$ hmpirun mxm
   N=1000, time(sec)=10.020
