Abstract
Volunteer computing systems leverage idle resources on voluntarily enabled desktops to execute CPU-intensive jobs. When these systems execute simultaneously to tasks performed by the end-user (i.e., the person who runs applications on the shared desktop), a slowdown can be generated and the end-user may perceive it. Since slowdown is a key factor to either encourage or discourage end-users to donate their computing resources, volunteer computing systems often aim at reducing it by limiting CPU consumption. This introduces a trade-off in using the available processing resources. On the one hand, if the processor is fully idle then resources are underutilized. On the other hand, significant slowdown still can be generated in presence of other CPU-intensive end-user tasks. In contrast to fixing CPU consumption, we tackle this problem by modifying the Linux Scheduler to implement scheduling policies that determine whether a volunteer computing system can execute a job by dynamically considering the potential slowdown that it may introduce. By implementing our policies, we found the utilization of idle resources is improved and the slowdown the end-user experiences is effectively limited. Our evaluation results show that our approach overcomes state-of-the-art CPU limiting techniques such as the CPUlimit and cgroups.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
- 2.
- 3.
- 4.
- 5.
Some documentation and user-space tools refer to SCHED_NORMAL as SCHED_OTHER.
- 6.
References
Aas, J.: Understanding the Linux 2.6.8.1 CPU Scheduler. Technical report, SGI (2005)
Anderson, D.: Local scheduling for volunteer computing. In: Parallel and Distributed Processing Symposium, IPDPS 2007, pp. 1–8. IEEE (2007)
Anderson, D.P., Christensen, C., Allen, B.: Designing a runtime system for volunteer computing. In: SC 2006 Conference, p. 33 (2006)
Bryant, R., Hawkes, J.: Linux scalability for large NUMA systems. In: Linux Symposium, vol. 76 (2003)
Durrani, M.N., Shamsi, J.A.: Volunteer computing: requirements, challenges, and solutions. J. Netw. Comput. Appl. 39, 369–380 (2014)
Faggioli, D., Checconi, F., Trimarchi, M., Scordino, C.: An EDF scheduling class for the Linux kernel. In: the Real-Time Linux Workshop (2009)
Intel Turbo Boost Technology in Intel Core Microarchitecture (Nehalem) Based Processors (2008). https://goo.gl/kvA1YZ
Intel Core i7–4770 Processor Specifications (2013). https://goo.gl/jjH5yT
Jiang, W., et al.: CFS optimizations to KVM threads on multi-core environment. In: Parallel and distributed systems, ICPADS 2009, pp. 348–354 (2009)
Jones, M.T.: Inside the Linux 2.6 completely fair scheduler. IBM Developer Works Technical Report 2009 (2009)
Kravetz, M., Franke, H., Nagar, S., Ravindran, R.: Enhancing Linux scheduler scalability. In: Proceedings of the Ottawa Linux Symposium (2001)
La’adan, O., Barak, A.: Inter process communication optimization in a scalable computing cluster (chap. 4). In: Annual Review of Scalable Computing, pp. 121–180. World Scientific Publishing (1999)
Lelli, J., Lipari, G., Faggioli, D., Cucinotta, T.: An efficient and scalable implementation of global EDF in Linux. In: Workshop on Operating Systems Platforms for Embedded Real-Time Applications, OSPERT 2011, pp. 6–15 (2011)
Lozi, J.P., Lepers, B., Funston, J., Gaud, F., Quéma, V., Fedorova, A.: The Linux scheduler: a decade of wasted cores. In: 11th European Conference on Computer Systems, p. 1. ACM (2016)
Menage, P.: CGroups, Linux Kernel Documentation (2006). https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt
Molloy, S.P., Honeyman, P.: Scalable Linux scheduling. In: USENIX Technical Conference, Boston (2001)
Rosales, E., Sotelo, G., de la Vega, A., Diaz, C.O., Gómez, C.E., Castro, H.E.: Harvesting idle CPU resources for desktop grid Computing while limiting the slowdown generated to end-users. Cluster Comput. 18(4), 1331–1350 (2015). https://doi.org/10.1007/s10586-015-0482-4
Rubab, S., Hassan, M.F., Mahmood, A.K., Shah, N.M.: Bin packing multi-constraints job scheduling heuristic for heterogeneous volunteer grid resources. In: Fourth International Conference on Computer Science & Computational Mathematics, ICCSCM 2015 (2015)
Vyas, D., Subhlok, J.: Volunteer computing on clusters. In: Frachtenberg, E., Schwiegelshohn, U. (eds.) JSSPP 2006. LNCS, vol. 4376, pp. 161–175. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-71035-6_8
Wong, C.S., Tan, I., Kumari, R.D., Wey, F.: Towards achieving fairness in the Linux scheduler. ACM SIGOPS Oper. Syst. Rev. 42(5), 34–43 (2008)
Yu, K., Han, D., Youn, C., Hwang, S., Lee, J.: Power-aware task scheduling for big. Little mobile processor. In: 2013 International SoC Design Conference (ISOCC), pp. 208–212. IEEE (2013)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Chavarriaga, J., de-la-Vega, A., Rosales, E., Castro, H. (2020). A Linux Scheduler to Limit the Slowdown Generated by Volunteer Computing Systems. In: Florez, H., Misra, S. (eds) Applied Informatics. ICAI 2020. Communications in Computer and Information Science, vol 1277. Springer, Cham. https://doi.org/10.1007/978-3-030-61702-8_11
Download citation
DOI: https://doi.org/10.1007/978-3-030-61702-8_11
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-61701-1
Online ISBN: 978-3-030-61702-8
eBook Packages: Computer ScienceComputer Science (R0)