A Comparison of Parallel Sorting Algorithms on Different
Download
Report
Transcript A Comparison of Parallel Sorting Algorithms on Different
A Comparison of Parallel Sorting Algorithms on
Different Architectures
Nancy M. Amato, Ravishankar Iyer, Sharad Sundaresan and Yan Wu
Texas A&M University
Hoang Bui
CMPS 5443
Overview
Introduction
Machine Descriptions
Parallel Sorting Algorithms
Experimental Results
Comparisons and Recommendations
Introduction
Sorting is one of the fundamental problems.
Sequential sorting and Parallel sorting.
Variety of parallel architectures.
Experimental study of three algorithms:
Bitonic sort, sample sort & parallel radix sort.
Apply to three different machines.
Machine Descriptions
The MasPar MP1201.
The nCUBE 2.
The Sequent Balance.
The MasPar MP1201
SIMD machine.
2,048 processors, 1.8 MIPS, 16Kbytes RAM.
Mesh based architecture.
X-Net and Global Router for communication.
Programming languages: C-Like and Fortran.
The nCUBE 2
MIMD machine.
64 processors, 7.5 MIPS 1Mbyte RAM.
Hypercube architecture.
Broadcasting.
Language: C.
The Sequent Balance
MIMD.
Shared Memory
10 processors, 8 Kbytes RAM.
Communicate through shared memory.
Running Unix, language: C.
Parallel Sorting Algorithms
Bitonic Sort.
Sample Sort.
Parallel Radix Sort.
Bitonic Sort
Bitonic Sequence:
Is the concatenation of an ascending and
descending sequence of numbers.
Example: 2,4,6,8,9,24,6,3,2,0.
Algorithm:
Convert n numbers into a bitonic sequence with
n/2 numbers in an increasing subsequence.
Merge into an ordered sequence (increasing or
decreasing.)
Sample sort
Algorithm:
Select p-1 splitters p buckets.
Each number is put into the appropriate bucket.
Sort each buckets.
Parallel Radix Sort
Example list:
170, 45, 75, 90, 2, 24, 802, 66
Algorithm:
sorting by least significant digit (1s place) gives:
170, 90, 2, 802, 24, 45, 75, 66.
sorting by next digit (10s place) gives:
2, 802, 24, 45, 66, 170, 75, 90 .
sorting by most significant digit (100s place) gives:
2, 24, 45, 66, 75, 90, 170, 802
Experimental Results
Make modifications to each machine.
Code was written in C.
Keys are randomly generated 32 bit integers.
Repeat 25 times and calculate the average.
The MasPar MP1202 – Bitonic sort
Good speed-ups for all input size.
The MasPar MP1202 – Sample sort
Also good speed-ups.
The MasPar MP1202 – Radix sort
Shortest time for the MasPar MP1202.
The MasPar MP1202
Comparisons:
The nCUBE 2 – Bitonic Sort
The nCUBE 2 – Sample Sort
The nCUBE 2 – Radix Sort
The nCUBE 2
The Sequent Balance – Bitonic sort
The Sequent Balance – Sample sort
The Sequent Balance – Radix sort
The Sequent Balance
Comparisons and Recommendations
MasPar MP1202:
nCUBBE 2:
Bitonic Sort for smaller input size.
Parallel Radix Sort for larger input size.
Sample Sort is the best.
Sequent Balance:
Sample Sort for smaller input size.
Parallel Radix Sort for larger input size.
Question