For SHA3, if I were to hash large files (> 1GB), would that operation be CPU or I/O bound?
Suppose I were to exploit parallelism and either use multicore/SIMD execution or generate a hash tree, would that also be constrained by the same resource?
Clearly this depends a lot on your setup.
Looking at some numbers:
According to Wikipedia SHA-3 requires 12.5 cbp (cycles per byte) on a Core 2. Let's also assume this Core 2 has 2.4 GHz. So we get 2.4 GHz / 12.5 cbp = 192 MB/s for the hash calculation.
Let's say you have an SSD with 500 MB/s access speed which is plausible according to the Wikipedia article on SSD and this benchmarking website.
That means the SSD is faster and hashing is CPU constrained.
Additionally, there are faster SSDs and benchmarks usually don't consider only consecutive reads so that could widen the gap.