Document Type


Publication Date



Computer Sciences


Parallel computing is an ever growing field in computer science that is used in everything from cross-discipline research to consumer goods, and because of this it is important to study the efficiency of parallel systems and methods. This thesis will examine storage and execution techniques of matrix vector operations involved in the conjugate Gradient Method on a parallel, non-uniform memory access (NUMA) aware system. In order to fully take advantage of the NUMA memory system, various attempts of segmenting the data are explored. This idea of segmenting becomes complicated when we perform matrix vector computations. Because our data is evenly divided among the various regions of memory, the multiplicative vector must be carefully constructed so as to minimize foreign memory accesses for any given thread. Because accessing the multiplicative vector is the most expensive part of the computation, several designs to mitigate this expense are examined.


Approved by: Michael Heroux, Robert Hesse, Lynn R. Ziegler, James Schnepf, Anthony Cunningham