Data and functional parallelism