Gülcan, Selçuk2020-09-212020-09-212020-092020-092020-09-18http://hdl.handle.net/11693/54056Cataloged from PDF version of article.Thesis (M.S.): Bilkent University, Department of Computer Engineering, İhsan Doğramacı Bilkent University, 2020.Includes bibliographical references (leaves 65-68).The focus of the thesis is efficient parallelization of the Stochastic Gradient Descent (SGD) algorithm for matrix completion problems on multicore architectures. Asynchronous methods and block-based methods utilizing 2D grid partitioning for task-to-thread assignment are commonly used approaches for sharedmemory parallelization. However, asynchronous methods can have performance issues due to their memory access patterns, whereas grid-based methods can suffer from load imbalance especially when data sets are skewed and sparse. In this thesis, we first analyze parallel performance bottlenecks of the existing SGD algorithms in detail. Then, we propose new algorithms to alleviate these performance bottlenecks. Specifically, we propose bin-packing-based algorithms to balance thread loads under 2D partitioning. We also propose a grid-based asynchronous parallel SGD algorithm that improves cache utilization by changing the entry update order without affecting the factor update order and rearranging the memory layouts of the latent factor matrices. Our experiments show that the proposed methods perform significantly better than the existing approaches on shared-memory multi-core systems.x, 68 leaves : charts (some color) ; 30 cm.Englishinfo:eu-repo/semantics/openAccessStochastic gradient descentParallel shared memory systemMatrix completionPerformance analysisLoad balancingParallel stochastic gradient descent on multicore architecturesÇok çekirdekli sistemlerde paralel olasılıksal gradyan alçalmaThesisB160499