The art of parallel programming