Skip to content
Calcrivo

Argon2 Parallelism Calculator

Choose the Argon2 lane count for your CPU, and check the minimum memory and per-lane allocation it forces.

Inputs

cores
threads
threads
MiB

Recommended Lanes (p)

12

Threads Available for Hashing

12

Memory per Lane

5.33MiB

Minimum Legal Memory

96KiB

Blocks per Segment

1,365

Assessment

Use p=12 with m ≥ 96 KiB

Step by step

  1. Values used

    Physical CPU cores = 8 cores; Threads per core = 2 threads; Threads reserved for other work = 4 threads; Memory cost = 64 MiB

  2. Argon2 Parallelism

    p = available hardware threads, capped at 16; each lane gets m ÷ p KiB split into 4 segments, and m must be ≥ 8 × p.

  3. Recommended Lanes (p)

    = 12

  4. Threads Available for Hashing

    = 12

  5. Memory per Lane

    = 5.33 MiB

  6. Minimum Legal Memory

    = 96 KiB

  7. Blocks per Segment

    = 1,365

  8. Assessment

    = Use p=12 with m ≥ 96 KiB

How it works

Argon2 divides its memory matrix into p lanes and each lane into four segments, letting p threads work a segment at a time. Lanes above the thread count you can actually schedule add synchronisation overhead without adding cost for the attacker. Setting p higher than the cores you own slows your own logins while leaving attacker cost unchanged, and choosing p without checking the 8 × p memory minimum produces a configuration the library will simply reject.

Formula

Argon2 Parallelism

p = available hardware threads, capped at 16; each lane gets m ÷ p KiB split into 4 segments, and m must be ≥ 8 × p.

p
Argon2 parallelism (lane count)
m
Memory cost in KiB
segment
A quarter of a lane — the unit Argon2 threads synchronise on

Frequently Asked Questions

How is Argon2 Parallelism calculated?

p = available hardware threads, capped at 16; each lane gets m ÷ p KiB split into 4 segments, and m must be ≥ 8 × p. Argon2 divides its memory matrix into p lanes and each lane into four segments, letting p threads work a segment at a time. Lanes above the thread count you can actually schedule add synchronisation overhead without adding cost for the attacker.

Why does Argon2 Parallelism matter?

Setting p higher than the cores you own slows your own logins while leaving attacker cost unchanged, and choosing p without checking the 8 × p memory minimum produces a configuration the library will simply reject.

What values do I need to enter?

This calculator takes 4 inputs: Physical CPU cores, Threads per core, Threads reserved for other work, Memory cost. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.

Does higher parallelism make Argon2 weaker?

Not directly — total memory × passes is unchanged. But because p is recorded in the hash string, a verifier must be able to spawn p threads. Server deployments hashing many passwords at once usually set p=1 and rely on concurrency across requests instead.

You might also need