Başaran, Mehmet2016-01-082016-01-082014http://hdl.handle.net/11693/16868Ankara : The Department of Computer Engineering and the Graduate School of Engineering and Science of Bilkent University, 2014.Thesis (Master's) -- Bilkent University, 2014.Includes bibliographical references leaves 97-99.SpMxV (Sparse matrix vector multiplication) is a kernel operation in linear solvers in which a sparse matrix is multiplied with a dense vector repeatedly. Due to random memory access patterns exhibited by SpMxV operation, hardware components such as prefetchers, CPU caches, and built in SIMD units are under-utilized. Consequently, limiting parallelization efficieny. In this study we developed; • an adaptive runtime scheduling and load balancing algorithms for shared memory systems, • a hybrid storage format to help effectively vectorize sub-matrices, • an algorithm to extract proposed hybrid sub-matrix storage format. Implemented techniques are designed to be used by both hypergraph partitioning powered and spontaneous SpMxV operations. Tests are carried out on Knights Corner (KNC) coprocessor which is an x86 based many-core architecture employing NoC (network on chip) communication subsystem. However, proposed techniques can also be implemented for GPUs (graphical processing units).xvi, 99 leaves, graphicsEnglishinfo:eu-repo/semantics/openAccessSpMxVParallelizationKNCIntel Xeon PhiMany-coreGPUVectorizationSIMDAdaptive scheduling and load balancingWork stealingDistributed SystemsData LocalityQA188 .B37 2014Sparse matrices.Sparse matrices--Data processing.Parallel sparse matrix vector multiplication techniques for shared memory architecturesThesisB148387