(untitled) (International Journal of Engineering and Computer Science, 2017)
Parallel programming has evolved due to the availability of fast and inexpensive processors. This technique allows us to determine which portions of an algorithm may be executed simultaneously by exploiting different processors. Recently, the focus has shifted to implementing parallel algorithms on multicore systems in order to increase performance. One of the most common operations performed by computers is sorting, which is a permutation on elements. Merge sort is an effective divide-and conquer sorting algorithm that is easy to understand relative to other sorting strategies. The aim of this paper is to describe and evaluate the performance of the parallel merge sort algorithm over its sequential version using the Java threading application program interface (API) environment, which allows programmers to directly manipulate threads in Java programs. The main idea of the proposed algorithm is to distribute the input data elements into several sub arrays according to the number of threads in each level. The experiments were conducted on a multi-core processor and examined the running time, speedup, efficiency, and scalability. The experiments also tested against different array sizes and different numbers of processors. The experimental results on a multi-core processor show that the proposed parallel algorithm achieves a good performance compared to the sequential algorithm.