Table of Contents

Distributing workload in oclHashcat-lite

Using pw-skip and pw-limit to distribute the workload

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

Example 1

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.

  1. Since all nodes have the same speed, all we need to do is to divide the number of combinations by the number of nodes: 1000 / 4 = 250.
  2. Each node has to process 250 combinations. This means:
    • The offset (--pw-skip) for each node is 250 added to the offset of the previous node
    • The size (--pw-limit) is added 250 from the offset.

This results in the following command sets:

Easy, isnt it?

Example 2

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: