Different Approaches to Distributed Compilation
暂无分享,去创建一个
Source code compiling is a non-trivial task that requires many computing resources. As a software project grows, its build time increases and debugging on a single computer becomes more and more time consuming task. An obvious solution would be a dedicated cluster acting as a build farm, where developers can send their requests. But in most cases, this solution has a very low utilization of available computing resources which makes it very ineffective. Therefore, we have focused on non-dedicated clusters to perform distributed compilation, where we could use users' computers as nodes of a build farm. We compare two different approaches: distcc, which is an open-source program to distribute compilation of C/C++ code between several computers on a network and Clondike, which is a universal peer-to-peer cluster that is being developed at the Czech Technical University in Prague. A very complex task able to test deeply both systems is a compilation of a Linux Kernel with many config options. We have run this task on a cluster with up to 20 computers and have measured computing times and CPU loads. In this paper, we will present the results of this experiment that indicate the scalability and utilization of given resources in both systems. We also discuss the penalty of a generic solution over a task-specific one.
[1] Pavel Tvrdík,et al. Clondike: Linux cluster of non-dedicated workstations , 2005, CCGrid 2005. IEEE International Symposium on Cluster Computing and the Grid, 2005..
[2] distcc, a fast free distributed compiler , 2004 .
[3] Martin Štava,et al. Overlapping Non-dedicated Clusters Architecture , 2009, 2009 International Conference on Computer Engineering and Technology.