An 11-Step Sorting Network for 18 Elements. Sherenaz W. Al-Haj Baddar, Kenneth E. Batcher

Similar documents
A 12-STEP SORTING NETWORK FOR 22 ELEMENTS

arxiv: v1 [cs.ds] 10 Oct 2014

Encoding/Decoding, Counting graphs

Efficient Bitonic Communication for the Parallel Data Exchange

Hill Cipher with Parallel Processing Involving Column, Row Shuffling, Permutation and Iteration on Plaintext and Key

A Connection between Network Coding and. Convolutional Codes

A Reduction of Conway s Thrackle Conjecture

Multiway Blockwise In-place Merging

Lecture 5: Graphs. Rajat Mittal. IIT Kanpur

Maximum number of edges in claw-free graphs whose maximum degree and matching number are bounded

Discrete Structures for Computer Science. Feodor F. Dragan Spring 2012

MATH 682 Notes Combinatorics and Graph Theory II

arxiv: v3 [cs.ds] 18 Apr 2011

International Journal of Scientific & Engineering Research, Volume 4, Issue 7, July ISSN

Theoretical Computer Science

Using Templates to Introduce Time Efficiency Analysis in an Algorithms Course

1 Matchings in Graphs

An Algorithmic Approach to Graph Theory Neetu Rawat

Optimum Alphabetic Binary Trees T. C. Hu and J. D. Morgenthaler Department of Computer Science and Engineering, School of Engineering, University of C

Run Times. Efficiency Issues. Run Times cont d. More on O( ) notation

Unlabeled equivalence for matroids representable over finite fields

On the Relationships between Zero Forcing Numbers and Certain Graph Coverings

Smart Sort and its Analysis

Grey Codes in Black and White

Non-extendible finite polycycles

Utilizing Symmetry and Evolutionary Search to Minimize Sorting Networks

On the packing chromatic number of some lattices

Using Genetic Programming to Evolve a General Purpose Sorting Network for Comparable Data Sets

2.2 Set Operations. Introduction DEFINITION 1. EXAMPLE 1 The union of the sets {1, 3, 5} and {1, 2, 3} is the set {1, 2, 3, 5}; that is, EXAMPLE 2

Lecture 15 : Review DRAFT

Module 2: Classical Algorithm Design Techniques

GRAPHS, GRAPH MODELS, GRAPH TERMINOLOGY, AND SPECIAL TYPES OF GRAPHS

ADAPTIVE SORTING WITH AVL TREES

Computational Complexities of the External Sorting Algorithms with No Additional Disk Space

Comparison Sorts. Chapter 9.4, 12.1, 12.2

Sorting Merging

A step towards the Bermond-Thomassen conjecture about disjoint cycles in digraphs

Computational Geometry

Minimum-Spanning-Tree problem. Minimum Spanning Trees (Forests) Minimum-Spanning-Tree problem

TWO CONTRIBUTIONS OF EULER

Graph Theory for Modelling a Survey Questionnaire Pierpaolo Massoli, ISTAT via Adolfo Ravà 150, Roma, Italy

Online algorithms for clustering problems

22 Elementary Graph Algorithms. There are two standard ways to represent a

An Eternal Domination Problem in Grids

Theorem 2.9: nearest addition algorithm

THREE DESCRIPTIONS OF SCALAR QUANTIZATION SYSTEM FOR EFFICIENT DATA TRANSMISSION

Generating edge covers of path graphs

Tweaking for Better Algorithmic Implementation

O(n): printing a list of n items to the screen, looking at each item once.

A Simplified Correctness Proof for a Well-Known Algorithm Computing Strongly Connected Components

CS2223: Algorithms Sorting Algorithms, Heap Sort, Linear-time sort, Median and Order Statistics

Unit-2 Divide and conquer 2016

COMP3121/3821/9101/ s1 Assignment 1

Measuring algorithm efficiency

Advanced Algorithms Class Notes for Monday, October 23, 2012 Min Ye, Mingfu Shao, and Bernard Moret

An algorithm for Performance Analysis of Single-Source Acyclic graphs

a 0, a 1,..., a n 1 a' 0, a' 1,..., a' n 1 a' 0 a' 1 a' n 1.

THE EFFECT OF JOIN SELECTIVITIES ON OPTIMAL NESTING ORDER

PACKING DIGRAPHS WITH DIRECTED CLOSED TRAILS

Integrated Scheduling for Gasoline Blending Considering Storage Tanks and Pipe Network

Parallel Combinatorial Search on Computer Cluster: Sam Loyd s Puzzle

COLORING EDGES AND VERTICES OF GRAPHS WITHOUT SHORT OR LONG CYCLES

Decreasing a key FIB-HEAP-DECREASE-KEY(,, ) 3.. NIL. 2. error new key is greater than current key 6. CASCADING-CUT(, )

Ordering and Ranking Multivariate Data

Efficient Second-Order Iterative Methods for IR Drop Analysis in Power Grid

Analysis of Algorithms

Fundamental Properties of Graphs

ON SWELL COLORED COMPLETE GRAPHS

A New Optimal State Assignment Technique for Partial Scan Designs

Texture Image Segmentation using FCM

Storage Coding for Wear Leveling in Flash Memories

Freeze Sorting Algorithm Based on Even-Odd Elements

Independence and Cycles in Super Line Graphs

S O R T I N G Sorting a list of elements implemented as an array. In all algorithms of this handout the sorting of elements is in ascending order

4. Non-Adaptive Sorting: Batcher's Algorithm

K 4,4 e Has No Finite Planar Cover

Lecture 2: Sorting and the Big O. Wednesday, 16 September 2009

Tutorial for Algorithm s Theory Problem Set 5. January 17, 2013

SAMPLE OF THE STUDY MATERIAL PART OF CHAPTER 6. Sorting Algorithms

Deduction and Logic Implementation of the Fractal Scan Algorithm

Algorithms for Grid Graphs in the MapReduce Model

DIVIDE AND CONQUER ALGORITHMS ANALYSIS WITH RECURRENCE EQUATIONS

Eulerian disjoint paths problem in grid graphs is NP-complete

Coloring edges and vertices of graphs without short or long cycles

Individualized Error Estimation for Classification and Regression Models

Vertex 3-colorability of claw-free graphs

1 Linear programming relaxation

CHAPTER 4 VORONOI DIAGRAM BASED CLUSTERING ALGORITHMS

(d) If the moon shares nothing and the sun does not share our works, then the earth is alive with creeping men.

Texture Segmentation by Windowed Projection

CS 441 Discrete Mathematics for CS Lecture 24. Relations IV. CS 441 Discrete mathematics for CS. Equivalence relation

A Performance Study of Hashing Functions for. M. V. Ramakrishna, E. Fu and E. Bahcekapili. Michigan State University. East Lansing, MI

Slide Set 5. for ENEL 353 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary

An NC Algorithm for Sorting Real Numbers

Analysis of Algorithms. Unit 4 - Analysis of well known Algorithms

Graph Theory Questions from Past Papers

Minimum Cost Edge Disjoint Paths

Optimal Subcube Fault Tolerance in a Circuit-Switched Hypercube

TAGUCHI TECHNIQUES FOR 2 k FRACTIONAL FACTORIAL EXPERIMENTS

REDUCING GRAPH COLORING TO CLIQUE SEARCH

Transcription:

An -Step Sorting Network for 8 Elements Sherenaz W. Al-Haj Baddar, Kenneth E. Batcher Kent State University Department of Computer Science Kent, Ohio 444 salhajba@cs.kent.edu batcher@cs.kent.edu Abstract Sorting Networks are cost-effective multistage interconnection networks with sorting capabilities. These networks theoretically consume Θ(NlogN) comparisons. However, the fastest implementable sorting networks built so far consume Θ(Nlog N) comparisons, and generally, use the Merge-sorting strategy to sort the input. An 8-element network using the Merge-sorting strategy needs at least steps-here we show a network that sorts 8 elements in only steps. Index Terms Sorting Networks, Partial Ordering, / cases. output set must be a permutation of the input set {I,I,,I N }. Moreover, for every two elements of the output set O j and O k, O j must be less than or equal to O k whenever j k. Sorting networks are constructed using stages (steps) of basic cells called Comparator Exchange(CE) modules. A CE is a -element sorting circuit. It accepts two inputs via two input lines, compares them and outputs the larger element on its high output line, whereas the smaller is output on its low output line. It is assumed that two comparators with disjoint inputs can operate in parallel. A typical CE is depicted in Figure []. I. INTRODUCTION Parallel processors are fast and powerful computing systems that have been developed to help undertake computationally challenging problems. Deploying parallelism for solving a given problem implies splitting the problem into subtasks. Each subtask is assigned to one of the numerous computing components constituting a parallel system. These components usually communicate in order to accomplish their designated subtasks, which introduces the problem of connecting them efficiently. Several interconnection networks schemes have been built to help solve this problem, among which are multistage interconnection networks. These widely used networks deploy a significantly smaller number of switching elements to achieve a relatively more efficient inter-processor communication. Many multistage interconnection networks were developed including sorting networks. Van Voorhis [] defines a sorting network as a circuit with N inputs and N outputs such that for any set of inputs {I,I,,I N }, the resulting output is the set {O,O,,O N }. The Figure. A comparator exchange module[] An optimal N-element sorting network requires θ(nlogn) comparisons to sort N elements[]. However, no practical solution for building such networks has been developed so far. On the other hand, several practical θ(nlog N) techniques for building sorting networks exist among which is the Mergesorting developed by Batcher[]. This technique has been generally deployed for building the best performing sorting networks known so far. Accordingly, the best known network for sorting 8 elements uses the Merge-sorting and consumes steps. Nevertheless, an -step network for the same input size has been discovered and is illustrated here. This discovered network shows that further investigation can result in developing implementable networks that are closer to the optimal complexity of θ(nlogn). Section reviews some basic mathematical concepts necessary for discussing the -step network illustrated here. Section depicts the steps constituting the developed network using Sortnet, a software tool developed by Batcher to

help build better sorting networks[4]. Finally, Section 4 concludes the technical report and highlights future work.. MATHEMATICAL BACKGROUND This section illustrates some basic mathematical concepts necessary for discussing the developed sorting network. These concepts include: Knuth diagrams, /-principle, partial ordering, Haase diagrams, and Shmoo charts.. Knuth diagrams Knuth diagrams are pictorial representations of sorting networks that help distinguish the several steps constituting the investigated network[5]. In a typical Knuth diagram, each input element is represented by a horizontal line and each CE is represented by a vertical line connecting the two elements being compared. The elements being sorted are assumed to have numeric labels. Thus, an N-element network will have its input elements labeled from through (N-). Moreover, the network s top most element is assigned the highest label and the bottom most element is assigned the smallest. It is also assumed that the elements are fed into the left most end of the network and received sorted at the other end, with the maximum element being the top most element. Figure illustrates a typical Knuth diagram for sorting 4 elements[5]. of N elements, and is said to be a valid N-element sorting network... Partial ordering and Haase diagrams A total order relation is imposed on the set of elements sorted by a valid sorting network. This total ordering is achieved by the end of the sorting process. However, only a partial order relation exists on this set at any arbitrary step in the sorting process prior to the last step, and such a set is called a partial order set (poset)[6]. Having a partial ordering relation, denoted by R, on a set of elements implies that there may exist a pair of elements x and y, such that there is at least one / case where x= and y=, and at least another / case, where x = and y =. Haase diagrams are used in order to visualize the progress of a sorting network [6]. In a conventional Haase diagram, elements are represented by vertices and relations among them are represented by edges. An edge running from vertex x to vertex y exists iff there does not exist a / case in which x= and y=. It is noticed that the relative positioning of an edge s two endpoints implies its direction. More preciously, if vertex x appears above vertex y, then the direction of the edge running between both is assumed to be from x to y. Figure depicts the progress of the sorting network illustrated in Figure using Haase diagrams. In the first step, two partial ordering relations are formed and such diagram is called a multi-segment poset. In the second step, the two segments are combined into a one-segment poset, or simply a poset. Finally, step transforms this poset into a totally ordered chain of elements. Figure. A Knuth diagram for a 4-element sorting network.. The / principle The / principle plays a vital role in building and verifying sorting networks. It states that a given N-element sorting network sorts N inputs correctly if it sorts all the N binary strings of length N [5]. A / case is a sequence of length N where the value of each entry in the sequence is either or. If a given / case, A, of length N, has j zeros then it has N-j ones. When a comparator element compares two entries in A, it might swap the values of the compared entries. However, the number of zero and one entries in A remains the same. Hence, a series of comparator elements sorts case A iff it rearranges A s entries such that the first j locations hold zeros and the next N-j locations hold ones. The number of zeros(ones) in a given binary sequence of N bits ranges between and N which implies that there are N+ / sorted cases. Hence, an N-element sorting network, that rearranges any of the N input permutations into one of the N+ possible sorted / cases, can sort any arbitrary sequence.5. Shmoo Charts Figure. Haase diagrams tracking the sorting of 4 elements A Shmoo chart is a two-dimensional diagram where each column shows all / cases with the same number of zeros and each row shows an element[4]. Figure 4 illustrates the Shmoo Figure 4. The Shmoo chart of the 4-element network after step

Figure 5. The Knuth diagram of the developed solution chart generated after step of the 4-element network depicted in Figure. The columns of a typical Shmoo chart are ordered according to the number of zeros in the set of / cases with the case of all zeros at the left of the chart and the one with all ones at the right of it. The elements in the rows are ordered according to the number of the / cases in which that particular element is. The entry in the chart for a given row and a given column can be either: : if the value of the element is for all / cases in a given column. : if the value of the element is for all / cases in a given column. -: if the value of the element is equal to at least for one / case and equal to at least for another / case in a given column. A shmoo chart becomes dash-free when all elements get sorted, i.e. all entries in the Shmoo chart are either zeroes or ones. Shmoo charts are generated by Sortnet, the software package developed by Batcher, in order to help monitor the progress of a typical sorting network[4].. AN -STEP SOLUTION FOR SORTING 8 ELEMENTS This section describes an -step solution for sorting 8 elements that outperforms the merge-based, -step solution which used to be the best known solution for this problem. Figure 5 illustrates the developed network... The first three steps The first two steps construct a four-segment poset. Three out of the four segments contain 4 elements each and the last contains 6 elements. The third step connects two 4-element segments to get a segment of 8 elements and connects the two remaining segments to form a segment of elements. Hence, step results in a two-segment poset with one segment containing 8 elements and the other containing elements. Figure 6 describes this two-segment poset... The fourth step In this step, a one-segment poset will be formed by doing nine comparisons. Four of these comparisons connect elements that belong to the two different segments, while the rest of them connect elements that belong to the same segment. The comparisons conducted in this step are described in Figure 5. Due to the fact that the poset becomes messy at this point, Shmoo charts will be used starting from this step to illustrate the effect of deploying additional CEs to the network. Hence, Figure 7 illustrates the Shmoo chart obtained after applying the CEs in step 4... The fifth, sixth, and seventh steps Figure 6. The two-segment poset obtained after applying step. Figure 7. The Shmoo chart of the first 4 steps

The strategy used for comparing elements in these steps is to compare each two adjacent elements in the Shmoo chart. Thus, each of these steps uses the Shmoo chart generated by the step before in order to pick the pairs of elements to be compared. Figure 8 depicts the Shmoo chart that is generated from applying the CEs of steps 5,6, and 7, as described in Figure 5..6. The tenth step Figure. The Shmoo chart after step 9 Figure 8. The Shmoo chart after step 7 It is quite obvious that the Shmoo chart illustrated in Figure has 6 groups each of which has elements. Consequently, step compares each group's two elements. The CEs used in step are depicted in Figure 5 and the resulting Shmoo chart is described in Figure..4. The eighth step Several different ways do exist for picking the pairs of elements to form step 8. However, experimentation showed that doing step 8 the way depicted in Figure 5 helped reduce the overall number of steps required to complete the sorting task. Figure 9 illustrates the Shmoo chart obtained by applying the CEs in step 8 as depicted in Figure 5. Figure. The Shmoo chart after step.7. The last step Figure 9. The Shmoo chart after step 8 The Shmoo chart that results from applying step has 5 groups, and again, each of these groups has two elements. Obviously, step compares each two elements within a group resulting in the last 5 pairs of comparisons described in Figure 5 and the resulting, dash-free Shmoo chart is illustrated in Figure..5. The ninth step In this step, the same pattern used for steps 5, 6, and 7 is used again, i.e., each two adjacent elements in the Shmoo chart generated by step 8 are going to be compared in this step. This implies that only seven pairs of comparisons are needed, since the two smallest as well as the two largest elements were found by the steps before. Applying the seven CEs of step 9 as described in Figure 5 results in the chart depicted in Figure. Figure. The Shmoo chart after step

4. CONCLUSION AND FUTURE WORK Sorting networks are cost-effective multistage interconnection networks with sorting capabilities. The fastest practical sorting networks built so far generally deploy the Merge-sorting developed by Batcher and consume θ(nlog N) comparisons. Here we describe an 8-element sorting network that is one step less than the fastest known network for the same input size. This network was developed using Sortnet, a software package developed by Batcher to help build better sorting networks. The 8-element sorting network illustarted here proves that networks that are faster that the best known solutions can be developed. Furthermore, the developed network enables improving the best known networks with input sizes that are multiples of 8. Nevertheless, such a network requires further analysis so that it can be generalized for larger input values that are not multiples of 8 including 4 and. 5. REFERENCES [] Van Voorhis, D. C., Efficient Sorting Networks, Stanford University, CA, USA, Doctoral Thesis, 97. [] K. E.Batcher, Sorting Networks and their Applications, Spring Joint Computer Conference, AFIPS Proc., vol., 968, pp. 7-4. [] M. Ajtai, J. Komlos, and E. Szemerdi, Sorting in nlogn Steps, Combinatorica, Vol., 98, pp. -9. [4] Batcher, K. E., Course Notes on Sorting Networks, Special Topics: Sorting Networks, Department of Computer Science, Kent State University, 5. [5] Knuth, D. E., The Art of Computer Programming: Volume : Sorting and Searching, Addison-Wesley Longman, USA, nd Edition, 998, Chapter 5, pp. 5-8. [6] Rosen, K. H., Discrete Mathematics and its Applications, McGraw-Hill Companies, USA, 5 th Edition,, Chapter 7, pp. 5-55.