The exploitation of volunteer computing resources has become a popular practice in the HEP (High Energy Physics) computing community as the huge amount of potential computing power it provides. ATLAS@home, as a pioneer project in this practice, uses the BOINC middleware to harness thousands of worldwide volunteer computers, has been harvesting a very considerable number of computing resources since its official launch in 2013. With more and more resource diverse volunteer computers participating in this project, it is very necessary to explore ways to optimize the usage of volunteer computing resources in terms of memory, storage and CPU to qualify more computers of running ATLAS@home jobs. The ATLAS software Athena has already supported multi-core processing, and been running stably and efficiently on its Grid sites for over 1 year. Statistics from Grid sties show that using multi-core processing can significantly reduce the total memory usage upon utilizing the same amount of CPU cores. Based on this practice, we explore the usage of multi-core virtualization on the ATLAS@home project, which is to spawn one virtual machine with all the available CPU cores from the volunteer computer, and then a multi-core Athena job is launched inside this virtual machine. This Athena job uses all the available CPU cores from the virtual machine. The ATLAS@home multi-core application was officially launched in July 2016 and the statistics from a few months’ full load running confirmed the reduction of total memory usage, however the performance of this practice is different from the Grid sites due to the virtualization. Through the historical statistics and testing, we find out that factors including the allocation of CPU cores, different versions of hypervisors and the scheduling policies of the BOINC middleware can significantly impact the performance of the multi-core application.
In this paper, we will cover the following aspects of this practice: 1) the implementation of the multi-core virtualization; 2) experiences gained through a few months’ full load running; 3) tuning and optimization of its performance.