Parallel Programming in the Cloud Courses
The courses in this section are concerned with parallel programming in the cloud, not only MapReduce but also the use of GPU devices and CUDA as well as parallel programming frameworks such as OpenCL and MPI and how they can be exploited in the cloud. From the perspective of the cloud as large network of computing machines both physical and virtual that provide various kinds of services the concept of parallel computing services and services for implementing parallel processing oriented applications parallel programming is a critical element of skill and knowledge. These parallel programming courses are designed to lay the conceptual and practical foundations for technologies , engineers and programmers needing to tackle problems requiring substantial computer resources to solve them in a practicable amount of time and with manageable costs.
Already cloud service providers are beginning to make servers equiped with powerful GPU processing systems available to subscribers. The virtualisation of GPU based systems is still in its infancy, however clusters of standalone servers can be used with a variety of parallel programming paradigms including MPI and OpenMP as well as OpenCl. Map Reduce techniques have been applied to clusters of GPU enabled servers with some success.
The MapReduce courses in this section are not the usual variety of how to implement MapReduce on top of Hadoop. Rather the emphasis is on the kinds of problems and algorithms that can be successfully scaled using MapReduce and related techniques, and the process of designing applications and understanding parallel programming implementation patterns.