Abstract
With the spread of multi-core systems, parallel programming increased in popularity. However, parallelizing algorithms in some cases yield negative results due to overhead. Additionally, implementing parallel algorithms is not always an easy or achievable task. Therefore, finding out to what extent a multi-core architecture can aid in the enhancement of the algorithm's speedup could become extremely beneficial. This paper studies and calculates the execution time and speedup of three of the most popular divide and conquer algorithms (Merge sort, quick sort, and matrix multiplication), the conducted experiments tested against various array sizes. The experiments take place on three different multi-core machines ranging from a dual-core CPU to a hexa-core CPU. The obtained results conclude that speedup is directly proportional to the number of CPU cores, such that using a hexa-core CPU in lieu of a dual-core CPU can achieve a speedup up to twice as fast. Thus, utilizing powerful multi-core CPU's could rival the use of parallelism on a standard CPU.