Benchmarks seeing a 19.4x improvement going to 20 threads, an almost linear speedup. That's pretty amazing, in Java I feel I never manage to achieve linear speedup past a few threads. How are they managing the overhead?
Amdahl's law? It depends on the code. If you throw 100 cores at half of your code, that part may get 100x faster. But if the other half is single threaded you'll only see overall performance double.
In other words, you probably never saw improvement past few threads, because your sequential code was slow.