4.
Harnessing parallelism