Indexing and Ranking MICROPROCESSOR SYSTEMS – MAXELER PROJECT AUTHOR: NIKOLA MAKSIMOVIC 545/12
Indexing Sort without sorting? The concept of the key Indexing as an alternative sort Quicksort
Indexing – algorithm Additional array (one or more) The key Quicksort
Indexing – algorithm Initialization of an array with index values Additional array The key on which is the sort performed Execution of quicksort algorithm Quicksort An index array sorted in a certain order based on some other key value in relation to the original array Result
Ranking Indexing for indexing? Not exactly… Positions of elements of the original array in the index array Mostly created after the index array
Indexing and Ranking
Maxeler optimization
Indexing Quicksort as the only thing to optimize O(n log(n)) Quicksort must be inline implemented The size of the array does matter
Indexing Alternative sort algorithm? "Batcher's parallel method“ (Chapter 3 of “The Art of Computer Programming“ - Donald Knuth) More compatible to hardware than Quicksort Very suitable for indexing
Ranking With index array Without index array Single for-loop
Overall impression “What - to” or “What not - to”? The size of the array The number of operations irrelevant Hard to get any noticeable optimizations
Reference MILUTINOVIC, V., SALOM, J., TRIFUNOVIC, N., GIORGI, R., “GUIDE TO DATAFLOW SUPERCOMPUTING,” SPRINGER, MILUTINOVIC, V., EDITOR, “ADVANCES IN COMPUTERS: DATAFLOW,” ELSEVIER, HURSON, A., MILUTINOVIC, V., EDITORS, "DATAFLOW PROCESSING," ELSEVIER, KNUTH, D., “THE ART OF COMPUTER PROGRAMMING,” ADDISON-WESLEY, MILUTINOVIC, V. ET AL, “ PARADIGM SHIFT IN SUPERCOMPUTING: DATAFLOW VS CONTROLFLOW, ” JOURNAL OF BIG DATA, 2015.