Implicit heterogeneous and parallel programming

Programmers are often required to develop parallel programs using new parallel languages or parallel extensions to existing languages that are different from the languages they used previously on sequential machines. As a consequence, programmers are faced with unfamiliar programming models and are often compelled to program at a low level with specific target machines. In this paper, we are going to introduce an implicit parallel programming method that allows programmers to use their favorite sequential programming languages for heterogeneous and parallel programming. Implicit parallelism relieves programmers since they do not have to worry about the details of parallel execution.