Message Passing And Bulk Transport On Heterogenous Multiprocessors