JUMPING JACK - A Parallel Algorithm for Non-Monotonic Stream Compaction

Pedro Miguel Moreira, Luís Paulo Reis, A. Augusto de Sousa

Abstract

Stream Compaction is an important task to perform in the context of data parallel computing, useful for many applications in Computer Graphics as well as for general purpose computation on graphics hardware. Given a data stream containing irrelevant elements, stream compaction outputs a stream comprised by the relevant elements, discarding the rest. The compaction mechanism has the potential to enable savings on further processing, memory storage and communication bandwidth. Traditionally, stream compaction is defined as a monotonic (or stable) operation in the sense that it preserves the relative order of the data. This is not a full requirement for many applications, therefore we distinguish between monotonic and non-monotonic algorithms. The latter motivated us to introduce the Jumping Jack algorithm as a new algorithm for nonmonotonic compaction. In this paper, experimental results are presented and discussed showing that, although simple, the algorithm has interesting properties that enable it to perform faster than existent state-of-the-art algorithms, in many circumstances.

References

  1. Blelloch, G. (1990). Prefix sums and their applications. Technical Report CMU-CS-90-190, Carnegie Mellon University - CMU - School of Computer Science, Pittsburgh, PA 15213.
  2. GPGPU (2008). GPGPU.org. http://www.gpgpu.org.
  3. Greß, A., Guthe, M., and Klein, R. (2006). GPU-based collision detection for deformable parameterized surfaces. Computer Graphics Forum, 25(3):497-506.
  4. Harris, M. (2005). GPU Gems 2, chapter Mapping Computational Concepts to GPUs, pages 493-508. AddisonWesley.
  5. Hensley, J., Scheuermann, T., Coombe, G., Singh, M., and Lastra, A. (2005). Fast summed-area table generation and its applications. Computer Graphics Forum, 24(3):547-555.
  6. Hillis, W. D. and Steele JR, G. (1986). Data parallel algorithms. Communications of the ACM, 29(12):1170- 1183.
  7. Horn, D. (2005). GPU Gems 2, chapter Stream reduction operations for GPGPU applications, pages 573-589. Addison-Wesley.
  8. Lefohn, A. E., Sengupta, S., and Owens, J. D. (2007). Resolution matched shadow maps. ACM Transactions on Graphics, 26(4):20:1-20:17.
  9. Moreira, P. M., Reis, L. P., and de Sousa, A. A. (2006). Best multiple-view selection: Application to the visualization of urban rescue simulations. IJSIMM - Int. Journal of Simulation Modelling, 5(4):167-173.
  10. Nickolls, J., Buck, I., Garland, M., and Skadron, K. (2008). Scalable parallel programming with CUDA. Queue, 6(2):40-53.
  11. Owens, J. D., Luebke, D., Govindaraju, N., Harris, M., Kruger, J., Lefohn, A. E., and Purcell, T. J. (2007). A survey of general-purpose computation on graphics hardware. Computer Graphics Forum, 26(1):80-113.
  12. Roger, D., Assarsson, U., and Holzschuch, N. (2007). Whitted ray-tracing for dynamic scenes using a ray-space hierarchy on the GPU. In Proceedings of the Eurographics Symposium on Rendering'07, pages 99-110.
  13. Sengupta, S., Harris, M., Zhang, Y., and Owens, J. D. (2007). Scan primitives for GPU computing. In GH 7807: Proceedings of the 22nd Symposium on Graphics Hardware, pages 97-106.
  14. Sengupta, S., Lefohn, A. E., and Owens, J. D. (2006). A work-efficient step-efficient prefix sum algorithm. In Proceedings of the Workshop on Edge Computing Using New Commodity Architectures, pages D:26-27.
  15. Ziegler, G., Tevs, A., Theobalt, C., and Seidel, H. (2006). GPU point list generation through histogram pyramids. In 11th Int. Fall Workshop on Vision, Modeling, and Visualization - VMV'06, pages 137-144.
Download


Paper Citation


in Harvard Style

Moreira P., Reis L. and de Sousa A. (2009). JUMPING JACK - A Parallel Algorithm for Non-Monotonic Stream Compaction . In Proceedings of the Fourth International Conference on Computer Graphics Theory and Applications - Volume 1: GRAPP, (VISIGRAPP 2009) ISBN 978-989-8111-67-8, pages 137-146. DOI: 10.5220/0001785001370146


in Bibtex Style

@conference{grapp09,
author={Pedro Miguel Moreira and Luís Paulo Reis and A. Augusto de Sousa},
title={JUMPING JACK - A Parallel Algorithm for Non-Monotonic Stream Compaction},
booktitle={Proceedings of the Fourth International Conference on Computer Graphics Theory and Applications - Volume 1: GRAPP, (VISIGRAPP 2009)},
year={2009},
pages={137-146},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0001785001370146},
isbn={978-989-8111-67-8},
}


in EndNote Style

TY - CONF
JO - Proceedings of the Fourth International Conference on Computer Graphics Theory and Applications - Volume 1: GRAPP, (VISIGRAPP 2009)
TI - JUMPING JACK - A Parallel Algorithm for Non-Monotonic Stream Compaction
SN - 978-989-8111-67-8
AU - Moreira P.
AU - Reis L.
AU - de Sousa A.
PY - 2009
SP - 137
EP - 146
DO - 10.5220/0001785001370146