Argon2 Parallelism Calculator
Choose the Argon2 lane count for your CPU, and check the minimum memory and per-lane allocation it forces.
Inputs
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
Values used
Physical CPU cores = 8 cores; Threads per core = 2 threads; Threads reserved for other work = 4 threads; Memory cost = 64 MiB
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.
Recommended Lanes (p)
= 12
Threads Available for Hashing
= 12
Memory per Lane
= 5.33 MiB
Minimum Legal Memory
= 96 KiB
Blocks per Segment
= 1,365
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.