The controller process communicates with the client, passes instructions to the worker processes and then gathers results from the workers to send back to the client. The client only ever connects to the controller and all communication between the worker processes and the client is accomplished through the controller. The controller process does execute the commands it relays from the client to the worker processes, but the load on the controller process is restricted by allocating a zero sized dataset to it. The controller is therefore a "lightweight" process.