An Overview of Heterogeneous High Performance and Grid Computing