Sorting using BItonic netwoRk wIth CUDA Ranieri Baraglia Gabriele Capannini ISTI - CNR ISTI - CNR Via G. Moruzzi, 1 Via G. Moruzzi, 1 56124 Pisa, Italy 56124 Pisa, Italy
[email protected] [email protected] Franco Maria Nardini Fabrizio Silvestri ISTI - CNR ISTI - CNR Via G. Moruzzi, 1 Via G. Moruzzi, 1 56124 Pisa, Italy 56124 Pisa, Italy
[email protected] [email protected] ABSTRACT keep them up to date. Storage space must be used efficiently Novel \manycore" architectures, such as graphics processors, to store indexes, and documents. The indexing system must are high-parallel and high-performance shared-memory ar- process hundreds of gigabytes of data efficiently. Queries chitectures [7] born to solve specific problems such as the must be handled quickly, at a rate of hundreds to thousands graphical ones. Those architectures can be exploited to per second. All these services run on clusters of homoge- solve a wider range of problems by designing the related neous PCs. PCs in these clusters depends upon price, CPU algorithm for such architectures. We present a fast sorting speed, memory and disk size, heat output, and physical size algorithm implementing an efficient bitonic sorting network. [3]. Nowadays these characteristics can be find also in other This algorithm is highly suitable for information retrieval commodity hardware originally designed for specific graph- applications. Sorting is a fundamental and universal prob- ics computations. Many special processor architectures have lem in computer science. Even if sort has been extensively been proposed to exploit data parallelism for data intensive addressed by many research works, it still remains an inter- computations and graphics processors (GPUs) are one of esting challenge to make it faster by exploiting novel tech- those.