Thank you for the responses.
@mratsim Argon2, 90% done implementing Argon2 just trying to get the threading working. And you are right, the threads access the "memory" in parallel but they are all assigned different regions which simplifies things. For better or worse I seem to be getting away with using a pointer to the memory so I guess I will stick with that.