Skip to main content
Log in

An efficient parallel collaborative filtering algorithm on multi-GPU platform

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

Collaborative filtering (CF) is one of the essential algorithms in recommendation system. As the size of the data in real applications is huge, usually at the magnitude of Petabytes, parallel computing technique is required to accelerate the computation. Due to GPU’s tremendous computing capability, it has emerged as the co-processor of the CPU to achieve a high overall throughput. In this paper, we identify the computation kernel, similarity matrix calculation. Then, we present a CUDA multithread model, where the data elements are processed in a data-parallel fashion. A workload partitioning scheme is proposed to balance the workload distributed to different GPUs. In the experiments, our CUDA-enabled CF algorithm significantly outperforms the serial CF workstation, achieving up to 3,691\(\times \) speedup using four Tesla K10 graphics cards. It also shows good scalability when varying the number of users, the number of items and the number of GPUs.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7

Similar content being viewed by others

References

  1. Das AS, Datar M, Garg A, Rajaram S (2007) Google news personanlization: scalable online collaborative filtering. In: WWW‘07: Proceedings of the 16th international conference on World Wide Web, Banff, Alberta, Canada, pp 271–280

  2. Kato K, Hosino T (2010) Singular value decomposition for collaborative filtering on a GPU. IOP conference series: materials science and engineering, vol 10, no 1. IOP Publishing

  3. Nadungodage CH et al (2013) GPU accelerated item-based collaborative filtering for big-data applications. In: Proceedings of IEEE International Conference on Big Data

  4. Zhao Z-D, Shang MS (2010) User-based collaborative-filtering recommendation algorithms on Hadoop. International Workshop on Knowledge Discovery and Data Mining, pp 478–481

  5. Leverich J, Kozyrakis C (2010) On the energy (in)efficiency of Hadoop clusters. SIGOPS Oper Syst Rev 44(1):61–65

  6. Borkar V, Carey M et al (2011) Hyracks: a flexible and extensible foundation for data-intensive computing. In: Proceedings of IEEE 27th International Conference on Data Engineering (ICDE), Hanover, Germany, pp 1151–1162

  7. Karydi E, Margaritis KG (2012) Parallel implementation of the slope one algorithm for collaborative filtering. In: Proceedings of 16th Panhellenic Conference on Informatics, pp 174–179

  8. Belkin NJ, Croft WB (1992) Information filtering and information retrieval: two sides of the same coin. Commun ACM 35(12):29–38

    Article  Google Scholar 

  9. Konstan JA, Miller BN, Maltz D, Herlocker JL, Gordon LR, Riedl J (1997) GroupLens: applying collaborative filtering to Usenet news. Commun ACM 40(3):77–87

    Article  Google Scholar 

  10. Shardanand U, Maes P (1995) Social information filtering: algorithms for automation “World of Mouth”. In: Proceedings of ACM CHI‘95, Denver, CO., pp 210–217

  11. Hill W, Stead L, Rosenstein M, Furnas GW (1995) Recommending and evaluating choices in a virtual community of use. In: Proceeding of ACM CHI‘95 Conference on human factors in computing systems, Denver, CO., pp 194–201

  12. Dahlem BJ, Lonstan JA, Herlocker JL, Good N, Borchers A, Riedl J (1998) Jump-starting movielens: user benefits of starting a collaborative filtering system with “dead data”. University of Minnesota, TR 98–017

  13. Linden G, Smith B, York J (2003) Amazon.com recommendations: item-to-item collaborative filtering. IEEE Internet Comput 7(1):76–80

    Article  Google Scholar 

  14. Piao C-H, Zhao J, Zheng L-J (2009) Research on entropy-based collabrative filtering algorithmn and personalized recommendation in e-commerce. Serv Oriented Comput Appl 3(1):147–157

    Article  Google Scholar 

  15. CUDA C Programming Guide version 4.1, NVIDIA Corp, 2012

  16. Jian L, Wang C, Liang S, Liu Y, Yi W, Shi Y (2013) Parallel data mining on graphics processing unit with compute unified device architecture (CUDA). J Supercomput 64(3):942–967

    Article  Google Scholar 

  17. Liang S, Liu Y, Wang C, Jian L (2010) Design and evaluation of a parallel K-nearest neighbor algorithm on CUDA-enabled GPU. In: Proceedings of IEEE 2nd Symposium on Web Society, pp 53–60

  18. Gao Z, Liang Y (2012) Improving the collaborative filtering recommender system by using GPU. Cyber-enabled distributed computing and knowledge discovery (CyberC), International Conference on, IEEE

  19. Herlocker J, Konstan JA, Borchers A et al (1999) An algorithmic framework for performing collaborative filtering. In: Proceedings of the 22nd Annual international ACM SIGIR conference on research and Development in information retrieve. ACM Press, New York pp 230–237

Download references

Acknowledgments

This project is partially supported by grants from Natural Science Foundation of China #61202312/70621001/70921061. It is partially supported by DNSLAB at China Internet Network Information Center.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ying Liu.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Wang, Z., Liu, Y. & Chiu, S. An efficient parallel collaborative filtering algorithm on multi-GPU platform. J Supercomput 72, 2080–2094 (2016). https://doi.org/10.1007/s11227-014-1333-4

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-014-1333-4

Keywords

Navigation