GPU-based Parallel Implementation of a Growing Self-organizing Network

Giacomo Parigi, Angelo Stramieri, Danilo Pau, Marco Piastra


Self-organizing systems are characterized by an inherently local behavior, as their configuration is almost exclusively determined by the union of the states of each of the units composing the system. Moreover, all state changes are mutually independent and governed by the same laws. In this work we study the parallel implementation of a specific subset of this broader family, namely that of growing self-organizing networks, in relation to parallel computing hardware devices based on Graphic Processing Units (GPUs), which are increasingly gaining popularity due to their favourable cost/performance ratio. In order to do so, we first define a new version of the standard, sequential algorithm, where the intrinsic parallelism of the execution is made more explicit and then we perform comparative experiments with the standard algorithm, together with an optimized variant of the latter, where an hash index is used for speed. Our experiments demonstrates that the parallel version outperforms both variants of the sequential algorithm but also reveals a few interesting differences in the overall behavior of the system, that might be relevant for further investigations.


  1. Amenta, N. and Bern, M. (1999). Surface reconstruction by voronoi filtering. Discrete & Computational Geometry, 22(4):481-504.
  2. Buck, I., Foley, T., Horn, D., Sugerman, J., Fatahalian, K., Houston, M., and Hanrahan, P. (2004). Brook for gpus: stream computing on graphics hardware. ACM Transactions on Graphics (TOG), 23(3):777-786.
  3. Campbell, A., Berglund, E., and Streit, A. (2005). Graphics hardware implementation of the parameter-less selforganising map. Intelligent Data Engineering and Automated Learning-IDEAL 2005, pages 5-14.
  4. Edelsbrunner, H. (2006). Geometry and Topology for Mesh Generation. Cambridge University Press.
  5. Fritzke, B. (1995). A growing neural gas network learns topologies. In Advances in Neural Information Processing Systems 7. MIT Press.
  6. Garcia, V., Debreuve, E., and Barlaud, M. (2008). Fast k nearest neighbor search using gpu. In Computer Vision and Pattern Recognition Workshops, 2008. CVPRW'08. IEEE Computer Society Conference on, pages 1-6. Ieee.
  7. García-Rodríguez, J., Angelopoulou, A., Morell, V., Orts, S., Psarrou, A., and García-Chamizo, J. (2011). Fast image representation with gpu-based growing neural gas. Advances in Computational Intelligence, pages 58-65.
  8. Harris, M. (2007). Optimizing parallel reduction in cuda. CUDA SDK Whitepaper.
  9. Hensley, J. (2007). Amd ctm overview. In ACM SIGGRAPH 2007 courses, page 7. ACM.
  10. Hockney, R. W. and Eastwood, J. W. (1988). Computer simulation using particles. Taylor & Francis, Inc., Bristol, PA, USA.
  11. Kohonen, T. (1990). The self-organizing map. Proceedings of the IEEE, 78(9):1464-1480.
  12. Liu, S., Flach, P., and Cristianini, N. (2011). Generic multiplicative methods for implementing machine learning algorithms on mapreduce. Arxiv preprint arXiv:1111.2111.
  13. Marsland, S., Shapiro, J., and Nehmzow, U. (2002). A selforganising network that grows when required. Neural Networks, 15(8-9):1041-1058.
  14. Martinetz, T. and Schulten, K. (1994). Topology representing networks. Neural Networks, 7(3):507-522.
  15. McCool, M. (2006). Data-parallel programming on the cell be and the gpu using the rapidmind development platform. In GSPx Multicore Applications Conference, volume 9.
  16. Nvidia, C. (2011). Nvidia cuda c programming guide. NVIDIA Corporation.
  17. Owens, J., Houston, M., Luebke, D., Green, S., Stone, J., and Phillips, J. (2008). Gpu computing. Proceedings of the IEEE, 96(5):879-899.
  18. Papakipos, M. (2007). The peakstream platform: Highproductivity software development for multi-core processors. PeakStream Inc., Redwood City, CA, USA, April.
  19. Piastra, M. (2009). A growing self-organizing network for reconstructing curves and surfaces. In Neural Networks, 2009. IJCNN 2009. International Joint Conference on, pages 2533-2540. IEEE.
  20. Stone, J., Gohara, D., and Shi, G. (2010). Opencl: A parallel programming standard for heterogeneous computing systems. Computing in science & engineering, 12(3):66.
  21. Zhang, C., Li, F., and Jestes, J. (2012). Efficient parallel knn joins for large data in mapreduce. In Proceedings of 15th International Conference on Extending Database Technology (EDBT 2012).

Paper Citation

in Harvard Style

Parigi G., Stramieri A., Pau D. and Piastra M. (2012). GPU-based Parallel Implementation of a Growing Self-organizing Network . In Proceedings of the 9th International Conference on Informatics in Control, Automation and Robotics - Volume 1: ANNIIP, (ICINCO 2012) ISBN 978-989-8565-21-1, pages 633-643. DOI: 10.5220/0004133806330643

in Bibtex Style

author={Giacomo Parigi and Angelo Stramieri and Danilo Pau and Marco Piastra},
title={GPU-based Parallel Implementation of a Growing Self-organizing Network},
booktitle={Proceedings of the 9th International Conference on Informatics in Control, Automation and Robotics - Volume 1: ANNIIP, (ICINCO 2012)},

in EndNote Style

JO - Proceedings of the 9th International Conference on Informatics in Control, Automation and Robotics - Volume 1: ANNIIP, (ICINCO 2012)
TI - GPU-based Parallel Implementation of a Growing Self-organizing Network
SN - 978-989-8565-21-1
AU - Parigi G.
AU - Stramieri A.
AU - Pau D.
AU - Piastra M.
PY - 2012
SP - 633
EP - 643
DO - 10.5220/0004133806330643