Integrating task and data parallelism with taskHPF