
   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_cholesky_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 cholesky factorization
   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 size of the problem o solve.

   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
   cholesky.c ---->     Contains the code of the matrix-matrix multiplication algorithm
   cholesky_data.h,
   cholesky_data.c ---> Contains the speed functions
   cholesky_i.c,
   cholesky_i.h --->    Contains the functions to get the cooridnate the processor
                        to which the matrix element is assigned

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

   shell$ hmpibcast cholesky.c cholesky_i.h cholesky_i.c cholesky_data.h cholesky_data.c counter.h bounds.h

   shell$ hmpiload -o cholesky cholesky.c

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