Hi Matteo, > If not using an HW crypto engine, the code doesn't have locks, but I > tried it anyway on a quad core machine: > > $ time ./sha1sum 2g.bin > 752ef2367f479e79e4f0cded9c270c2890506ab0 2g.bin > > real 0m2.198s > user 0m0.000s > sys 0m2.198s > $ for i in {1..4}; do time ./sha1sum 2g.bin & done > [1] 27893 > [2] 27894 > [3] 27896 > [4] 27897 > 752ef2367f479e79e4f0cded9c270c2890506ab0 2g.bin > > real 0m2.367s > user 0m0.001s > sys 0m2.367s > 752ef2367f479e79e4f0cded9c270c2890506ab0 2g.bin > > real 0m2.374s > user 0m0.000s > sys 0m2.365s > 752ef2367f479e79e4f0cded9c270c2890506ab0 2g.bin > > real 0m2.383s > user 0m0.001s > sys 0m2.383s > 752ef2367f479e79e4f0cded9c270c2890506ab0 2g.bin > > real 0m2.383s > user 0m0.001s > sys 0m2.382s > > [1] Done time ./sha1sum 2g.bin > [2] Done time ./sha1sum 2g.bin > [3]- Done time ./sha1sum 2g.bin > [4]+ Done time ./sha1sum 2g.bin
So there is no bottleneck here. Perfect. > If you're using an HW crypto engine, locking can happen depending on > how the hardware works, but such chips can be 100x faster than CPUs so > it's not an issue. This is understandable. Should be a win anyway, even with a small number of processes or threads operating in parallel. Thanks for the clarifications! Bruno