Multicore and GPU programming: an integrated approach
Morgan Kaufmann