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.
Similar content being viewed by others
References
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
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
Nadungodage CH et al (2013) GPU accelerated item-based collaborative filtering for big-data applications. In: Proceedings of IEEE International Conference on Big Data
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
Leverich J, Kozyrakis C (2010) On the energy (in)efficiency of Hadoop clusters. SIGOPS Oper Syst Rev 44(1):61–65
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
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
Belkin NJ, Croft WB (1992) Information filtering and information retrieval: two sides of the same coin. Commun ACM 35(12):29–38
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
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
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
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
Linden G, Smith B, York J (2003) Amazon.com recommendations: item-to-item collaborative filtering. IEEE Internet Comput 7(1):76–80
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
CUDA C Programming Guide version 4.1, NVIDIA Corp, 2012
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
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
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
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
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
Corresponding author
Rights and permissions
About this article
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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-014-1333-4