Optimizing ELARS Algorithms Using NVIDIA CUDA Heterogeneous Parallel Programming Platform

Conference paper
Part of the Advances in Intelligent Systems and Computing book series (AISC, volume 311)


Scalability is an important property of every large-scale recommender system. In order to ensure smooth user experience, recommendation algorithms should be optimized to work with large amounts of user data. This paper presents the optimization approach used in the development of the E-learning activities recommender system (ELARS). The recommendations for students and groups in ELARS include four different types of items: Web 2.0 tools, collaborators (colleague students), optional e-learning activities, and advice. Since implemented recommendation algorithms depend on prediction of students’ preferences, algorithm that computes predictions was offloaded to graphics processing unit using NVIDIA CUDA heterogeneous parallel programming platform. This offload increases performance significantly, especially with large number of students using the system.


e-learning recommender system ELARS algorithm optimization heterogeneous paralell programming NVIDIA CUDA 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Adomavicius, G., Tuzhilin, A.: Toward the next generation of recommender systems: A survey of the state-of-the-art and possible extensions. IEEE Transactions on Knowledge and Data Engineering 17(6), 734–749 (2005)CrossRefGoogle Scholar
  2. 2.
    Bell, N., Hoberock, J.: Thrust: A productivity-oriented library for cuda. GPU Computing Gems 7 (2011)Google Scholar
  3. 3.
    Dlab, M.H., Hoić-Božić, N.: An approach to adaptivity and collaboration support in a web-based learning environment. International Journal of Emerging Technologies in Learning (2009)Google Scholar
  4. 4.
    Drachsler, H., Hummel, H., Koper, R.: Identifying the goal, user model and conditions of recommender systems for formal and informal learning. Social Information Retrieval for Technology Enhanced Learning 10(2), 4–24 (2009)Google Scholar
  5. 5.
    Du, P., Weber, R., Luszczek, P., Tomov, S., Peterson, G., Dongarra, J.: From cuda to opencl: Towards a performance-portable solution for multi-platform gpu programming. Parallel Computing 38(8), 391–407 (2012)CrossRefGoogle Scholar
  6. 6.
    Fleming, N.D.: I’m different; not dumb. modes of presentation (vark) in the tertiary classroom. In: Research and Development in Higher Education, Proceedings of the 1995 Annual Conference of the Higher Education and Research Development Society of Australasia (HERDSA), vol. 18, pp. 308–313 (1995)Google Scholar
  7. 7.
    Garcia, V., Debreuve, E., Barlaud, M.: Fast k nearest neighbor search using gpu. In: IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops, CVPRW 2008, pp. 1–6. IEEE (2008)Google Scholar
  8. 8.
    Garland, M., Grand, S., Nickolls, J., Anderson, J., Hardwick, J., Morton, S., Phillips, E., Zhang, Y., Volkov, V.: Parallel computing experiences with cuda. IEEE Micro Magazine 28(4), 13–27 (2008)CrossRefGoogle Scholar
  9. 9.
    Gregg, C., Hazelwood, K.: Where is the data? why you cannot debate cpu vs. gpu performance without the answer. In: 2011 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), pp. 134–144. IEEE (2011)Google Scholar
  10. 10.
    Holenko Dlab, M., Hoić-Božić, N.: Recommender system for web 2.0 supported elearning. In: 2014 IEEE Global Engineering Education Conference (EDUCON) Proceedings (2014)Google Scholar
  11. 11.
    Holenko Dlab, M., Hoić-Božić, N., Mezak, J.: Personalizing e-learning 2.0 using recommendations. In: The Proceedings of MIS4TEL Conference (2014)Google Scholar
  12. 12.
    Keckler, S.W., Dally, W.J., Khailany, B., Garland, M., Glasco, D.: Gpus and the future of parallel computing. IEEE Micro 31(5), 7–17 (2011)CrossRefGoogle Scholar
  13. 13.
    Kirk, D.: Nvidia cuda software and gpu parallel computing architecture. In: ISMM, vol. 7, pp. 103–104 (2007)Google Scholar
  14. 14.
    Klöckner, A., Pinto, N., Lee, Y., Catanzaro, B., Ivanov, P., Fasih, A.: Pycuda and pyopencl: A scripting-based approach to gpu run-time code generation. Parallel Computing 38(3), 157–174 (2012)CrossRefGoogle Scholar
  15. 15.
    Lee, L.: Measures of distributional similarity. In: Proceedings of the 37th Annual Meeting of the Association for Computational Linguistics on Computational Linguistics, pp. 25–32. Association for Computational Linguistics (1999)Google Scholar
  16. 16.
    Manouselis, N., Drachsler, H., Vuorikari, R., Hummel, H., Koper, R.: Recommender systems in technology enhanced learning. In: Recommender Systems Handbook, pp. 387–415. Springer (2011)Google Scholar
  17. 17.
    Michael, M., Moreira, J.E., Shiloach, D., Wisniewski, R.W.: Scale-up x scale-out: A case study using nutch/lucene. In: IEEE International Parallel and Distributed Processing Symposium, IPDPS 2007, pp. 1–8. IEEE (2007)Google Scholar
  18. 18.
    Shani, G., Gunawardana, A.: Evaluating recommendation systems. In: Recommender Systems Handbook, pp. 257–297. Springer (2011)Google Scholar
  19. 19.
    Van Der Walt, S., Colbert, S.C., Varoquaux, G.: The numpy array: a structure for efficient numerical computation. Computing in Science & Engineering 13(2), 22–30 (2011)CrossRefGoogle Scholar
  20. 20.
    Wu, E., Liu, Y.: Emerging technology about gpgpu. In: IEEE Asia Pacific Conference on Circuits and Systems, APCCAS 2008, pp. 618–622. IEEE (2008)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  1. 1.Department of InformaticsUniversity of RijekaRijekaCroatia

Personalised recommendations