A Spiking Neural P System Simulator Based on CUDA

  • Francis George C. Cabarle
  • Henry Adorna
  • Miguel A. Martínez
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7184)


In this paper we present a Spiking Neural P system (SNP system) simulator based on graphics processing units (GPUs). In particular we implement the simulator using NVIDIA CUDA enabled GPUs. The massively parallel architecture of current GPUs is very suitable for the maximally parallel computations of SNP systems. We simulate a wider variety of SNP systems, after presenting a previous work on SNP system matrix representation which led to their simulation in GPUs, and the simulation algorithm included here. Finally, we compare and present the performance speedups of the CPU-GPU based simulator over the CPU only simulator.


Membrane Computing Spiking Neural P systems Parallel Computing GPU Computing CUDA 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Cabarle, F., Adorna, H., Martínez-del-Amor, M.A.: Simulating Spiking Neural P systems without delays using GPUs. In: Proceedings of the 9th Brainstorming Week on Membrane Computing, Sevilla, Spain (February 2011)Google Scholar
  2. 2.
    Cabarle, F., Adorna, H., Martínez-del-Amor, M.A.: An Improved GPU Simulator For Spiking Neural P Systems. In: IEEE Sixth International Conference on Bio-Inspired Computing: Theories and Applications, Penang, Malaysia (September 2011), doi:10.1109/BIC-TA.2011.37Google Scholar
  3. 3.
    Cecilia, J.M., García, J.M., Guerrero, G.D., Martínez-del-Amor, M.A., Pérez-Hurtado, I., Pérez-Jiménez, M.J.: Simulation of P systems with active membranes on CUDA. Briefings in Bioinformatics 11(3), 313–322 (2010)CrossRefGoogle Scholar
  4. 4.
    Cecilia, J.M., García, J.M., Guerrero, G.D., Martínez-del-Amor, M.A., Pérez-Hurtado, I., Pérez-Jiménez, M.J.: Simulating a P system based efficient solution to SAT by using GPUs. Journal of Logic and Algebraic Programming 79(6), 317–325 (2010)MathSciNetCrossRefzbMATHGoogle Scholar
  5. 5.
    Chen, H., Ionescu, M., Ishdorj, T.-O., Păun, A., Păun, G., Pérez-Jiménez, M.: Spiking neural P systems with extended rules: universality and languages. Natural Computing: an International Journal 7(2), 147–166 (2008)MathSciNetCrossRefzbMATHGoogle Scholar
  6. 6.
    Ciobanu, G., Wenyuan, G.: P Systems Running on a Cluster of Computers. In: Martín-Vide, C., Mauri, G., Păun, G., Rozenberg, G., Salomaa, A. (eds.) WMC 2003. LNCS, vol. 2933, pp. 123–139. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  7. 7.
    Díaz, D., Graciani, C., Gutiérrez, M.A., Pérez-Hurtado, I., Pérez-Jiménez, M.J.: Software for P systems. In: Păun, G., Rozenberg, G., Salomaa, A. (eds.) The Oxford Handbook of Membrane Computing, ch. 17, pp. 437–454. Oxford University Press, Oxford (2009)Google Scholar
  8. 8.
    Fatahalian, K., Sugerman, J., Hanrahan, P.: Understanding the efficiency of GPU algorithms for matrix-matrix multiplication. In: Proceedings of the ACM SIGGRAPH/EUROGRAPHICS Conference on Graphics Hardware (HWWS 2004), pp. 133–137. ACM, NY (2004)CrossRefGoogle Scholar
  9. 9.
    Garland, M., Kirk, D.B.: Understanding throughput-oriented architectures. Communications of the ACM 53(11), 58–66 (2010)CrossRefGoogle Scholar
  10. 10.
    Harris, M.: Mapping computational concepts to GPUs. In: ACM SIGGRAPH 2005 Courses, NY, USA (2005)Google Scholar
  11. 11.
    Ionescu, M., Păun, G., Yokomori, T.: Spiking Neural P Systems. Journal Fundamenta Informaticae 71(2,3), 279–308 (2006)MathSciNetzbMATHGoogle Scholar
  12. 12.
    Kirk, D., Hwu, W.: Programming Massively Parallel Processors: A Hands on Approach, 1st edn. Morgan Kaufmann, MA, USA (2010)Google Scholar
  13. 13.
    Klöckner, A., Pinto, N., Lee, Y., Catanzaro, B., Ivanov, P., Fasih, A.: PyCUDA: GPU Run-Time Code Generation for High-Performance Computing, no. 2009-40. Scientific Computing Group, Brown University, RI, USA (2009)Google Scholar
  14. 14.
    Păun, G., Ciobanu, G., Pérez-Jiménez, M. (eds.): Applications of Membrane Computing. Natural Computing Series. Springer, Heidelberg (2006)zbMATHGoogle Scholar
  15. 15.
    Nguyen, V., Kearney, D., Gioiosa, G.: A Region-Oriented Hardware Implementation for Membrane Computing Applications. In: Păun, G., Pérez-Jiménez, M.J., Riscos-Núñez, A., Rozenberg, G., Salomaa, A. (eds.) WMC 2009. LNCS, vol. 5957, pp. 385–409. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  16. 16.
    Zeng, X., Adorna, H., Martínez-del-Amor, M.Á., Pan, L., Pérez-Jiménez, M.J.: Matrix Representation of Spiking Neural P Systems. In: Gheorghe, M., Hinze, T., Păun, G., Rozenberg, G., Salomaa, A. (eds.) CMC 2010. LNCS, vol. 6501, pp. 377–391. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  17. 17.
    NVIDIA corporation, NVIDIA CUDA C programming guide, version 3.0. NVIDIA, CA, USA (2010)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Francis George C. Cabarle
    • 1
  • Henry Adorna
    • 1
  • Miguel A. Martínez
    • 2
  1. 1.Algorithms & Complexity Lab, Department of Computer ScienceUniversity of the Philippines DilimanQuezon CityPhilippines
  2. 2.Research Group on Natural Computing, Department of Computer Science and Artificial IntelligenceUniversity of SevilleSevillaSpain

Personalised recommendations