The Gram-Schmidt process is a classical process for orthonormalising a
set of vectors in inner product space. There are many implementations of
the Gram-Schmidt process - classical, modified and iterated classical Gram-
Schmidt process. In the thesis we have chosen the classical Gram-Schmidt
process. Parallelization of classical Gram-Schmidt process was implemented
on Intel Xeon Phi coprocessor. We have implemented many different func-
tions of classical Gram-Schmidt process in the C programming language with
a help of OpenMP library. The results show that the best function is the one
that evenly distributes work among all threads. First every thread calculates
the same amount of projections, then the rest of projections are calculated
sequentially, where the threads compute each projection in parallel. The
implementation of the same function on the Intel Xeon Phi is up to three
times faster than the same implementation on two Intel Xeon processors.
The speedup factor is increasing with the size of input vectors.
|