Issue No. 03 - June (1995 vol. 15)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/40.387690
Sorting is a fundamental operation that has important implications in a vast number of areas. For instance, sorting is heavily utilized in applications such as database machines, where hashing techniques are used to accelerate data processing algorithms. It is also the basis for interprocessor message routing and has strong implications in video telecommunications. However, high- speed electronic sorting networks are difficult to implement with VLSI technology because of the dense, global connectivity required. Optics eliminates this bottleneck by offering global interconnects, massive parallelism, and noninterfering communications. We present a parallel sorting algorithm and its efficient optical implementation using currently available optical hardware. The algorithm sorts n data elements in few steps, independent of the number of elements to be sorted. Thus, it is a constant-time sorting algorithm (i.e. O(1) time). This is a significant performance improvement over state-of-the-art electronic sorting systems where the fastest sorting algorithm for n elements takes O(log n) but requires O(n2) processors. We provide the detailed description of an optical system for generating the rank of a data set and physically reordering it. This is evidence that problems considered "solved" using conventional approaches need to be reconsidered so that the benefits of optics can be properly utilized to obtain new, faster solutions to old problems.
Sorting, parallel sorting, optical computing, parallel processing
James A. Hatch Jr., Ahmed Louri, Jongwhoa Na, "A Constant-Time Parallel Sorting Algorithm and Its Optical Implementation", IEEE Micro, vol. 15, no. , pp. 60-71, June 1995, doi:10.1109/40.387690