Program

The course covers the programming models and the paradigms used with distributed and parallel systems, for both the application and support tool software. Taking into account structured programming models (algorithmical skeletons, parallel design patterns) as well as those models based on components and services, all the problems related to the functional (expressive power, modularity and reuse) and non functional (performance, fault tolerance, adaptivity) concerns will be considered. The lab module will be used to experiment different approaches and solutions on the most common distributed architectures, such as workstation networks, grids and clouds.

The course will be logically split into several distinct parts: