The goal in cloud / cluster / distributed computing is to split the workload into smaller chunks and then to distribute these chunks to the single nodes where they are computed. A server marks chunks as reserved and keeps track of the current position in they keyspace. When a node is finished it informs the server and requests a new chunk.
This goes on and on till the whole keyspace is scanned.
oclHashcat-lite, starting with v0.7, comes with two parameters that control how to pin and size such a specific chunk from the keyspace.
These parameters are:
The keyspace is the result of the combination of charset ^ length (simplified), it is mandantory that this keyspace never changes across all nodes.
See the bottom of the page how to calculate the keyspace.
NOTE
We have the following sitation:
OK, this is an very uncommon example, but its perfect because it is easy to explain how to work with chunks.
This results in the following command sets:
Easy, isnt it?
In a real-life situation its much more complex. For example, we have Node 1 used by the user playing some FPS game which uses the GPU a lot and Node 4 has only budget GPUs. In other words we just dont know how fast each node is, especially not over time. A good strategy is to choose a bit smaller chunks.
This results in the following command sets:
Example 2 shows that it is not that important to know how fast each node is.
But one important question still remains. How do you know how big the keyspace is? There are two ways: