DMUCS – a Distributed Multi-User Compilation System                              

(for use with distcc)

 

 

DMUCS is a system that allows a group of users to share a compilation farm.  Each compilation request from each user will be sent to the fastest available machine, every time.  The system has these fine qualities:

 

 

DMUCS consists of these (main) programs:

 

dmucs maintains the database of hosts in the compilation farm, and assigns hosts to compilation tasks, giving out the best host/cpu available when the compilation task asks.

gethost distcc gcc ...

gethost contacts the server to get a host, which it puts into the environment variable DISTCC_HOSTS.  gethost then calls the program given to it.  After that program ends, gethost releases the assigned host back to the dmucs server.

  Installing DMUCS

# Format: machine number-of-cpus power-index

linux-comp-1       4         10

solaris-comp-1     2         5

solaris-comp-2     2         5

old-linux-comp-1   1         4

old-solaris-comp-3 1         2

169.144.80.25      1         2

As you can see, the format is simple: each line is a host's name, then the number of cpus on that machine, and then the "power index" of that machine.  If you know that some machines are much more powerful than others, then give them higher power indices.  The value must be >= 1. If you don't want to bother with a hosts-info file, the system will still work, but all machines will be treated equally, and the code will assume each machine has only 1 cpu.  (More information on how to choose power indices is given below.)

gethost distcc gcc ...

 

  Tips and Tricks

 

  Details on How DMUCS Selects Hosts

 

Author: Victor Norman