204 | | [https://github.com/icecc/icecream Icecream] was created by SUSE based on distcc. Like distcc, Icecream takes compile jobs from a build and distributes it among remote machines allowing a parallel build. But unlike distcc, Icecream uses a central server that dynamically schedules the compile jobs to the fastest free server. This advantage pays off mostly for shared computers, if you're the only user on x machines, you have full control over them. |
205 | | |
206 | | === icecc scheduler === |
207 | | |
208 | | * Install it: |
209 | | {{{ |
210 | | #!sh |
211 | | $ sudo apt-get install icecc |
212 | | }}} |
213 | | |
214 | | * Configure scheduler to start by default (see `/usr/share/doc/icecc/README.Debian`): |
215 | | {{{ |
216 | | #!sh |
217 | | $ sudo update-rc.d icecc-scheduler enable |
218 | | }}} |
219 | | |
220 | | Some considerations: |
| 204 | [https://github.com/icecc/icecream Icecream] was created by SUSE based on distcc. Like distcc, Icecream takes compile jobs from a build and distributes it among remote machines allowing a parallel build. But unlike distcc, Icecream uses a single central server called scheduler that dynamically assigns the compile jobs to multiple distributed daemons, choosing the fastest free one. This advantage pays off mostly for shared computers, if you're the only user on x machines, you have full control over them. |
| 208 | === Installing === |
| 209 | |
| 210 | * Execute: |
| 211 | {{{ |
| 212 | #!sh |
| 213 | $ sudo apt-get install icecc |
| 214 | }}} |
| 215 | |
| 216 | * You can install icecc monitor too: |
| 217 | {{{ |
| 218 | #!sh |
| 219 | $ sudo apt-get install icecc-monitor |
| 220 | }}} |
| 221 | |
| 222 | |
| 223 | === icecc scheduler === |
| 224 | |
| 225 | * Configure scheduler to start by default (see `/usr/share/doc/icecc/README.Debian`): |
| 226 | {{{ |
| 227 | #!sh |
| 228 | $ sudo update-rc.d icecc-scheduler enable |
| 229 | }}} |
| 230 | |
| 231 | * After configuring the scheduler to start, it will do so on next reboot, but not sooner. You can start it manually: |
| 232 | * Ubuntu |
| 233 | {{{ |
| 234 | #!sh |
| 235 | $ sudo service icecc restart |
| 236 | }}} |
| 237 | * Debian |
| 238 | {{{ |
| 239 | #!sh |
| 240 | $ sudo service icecc-scheduler start |
| 241 | }}} |
| 242 | |
| 243 | |
226 | | * Install it: |
227 | | {{{ |
228 | | #!sh |
229 | | $ sudo apt-get install icecc |
230 | | }}} |
231 | | |
232 | | * You can install icecc monitor too: |
233 | | {{{ |
234 | | #!sh |
235 | | $ sudo apt-get install icecc-monitor |
| 246 | * iceccd (daemon) has to be able to find the scheduler in the network. By default, it makes so by sending a broadcast message. This may not work depending on your network topology (routers, firewalls, etc.). You can specify the actual address of the icecc-scheduler by stating it in the icecc config file: |
| 247 | {{{ |
| 248 | #!sh |
| 249 | $ cat /etc/icecc/icecc.config |
| 250 | ... |
| 251 | # |
| 252 | # If the daemon can't find the scheduler by broadcast (e.g. because |
| 253 | # of a firewall) you can specify it. |
| 254 | # |
| 255 | # ICECC_SCHEDULER_HOST="" |
| 256 | ICECC_SCHEDULER_HOST="<icecc-scheduler IP or host name>" |
| 257 | ... |
| 258 | }}} |
| 259 | |
| 260 | * Also, you may not want your local icecc daemon to run works from other hosts. For example, I want my laptop to be helped by my tower but I don't want my laptop to take works from my tower: |
| 261 | {{{ |
| 262 | #!sh |
| 263 | $ cat /etc/icecc/icecc.config |
| 264 | ... |
| 265 | # |
| 266 | # Specifies whether jobs submitted by other nodes are allowed to run on |
| 267 | # this one. |
| 268 | # |
| 269 | # ICECC_ALLOW_REMOTE="yes" |
| 270 | ICECC_ALLOW_REMOTE="no" |
| 271 | ... |