This course is intended to
Ph.D. level students whose main theme of research is related to
parallel and distributed systems in a broad context. As such, the
course is structured in 3 main parts. The first part is dedicated to
basic concepts of parallel and distributed computing focusing on
parallel programming models, parallel architectures, including modern
multi-cores and multi-processors, performance metrics, performance
analysis, parallel benchmarks, and state-of-the-art in parallel and
distributed computing. The second part shifts to what is currently
considered the main stream in distributed computing worldwide: cluster
computing. In this part of the course, the student will have the
opportunity to understand what is a cluster, how to develop
applications for a cluster, how to configure a cluster, which is not
merely to join off-the-shelf computers in a room or shelf or buying an
expensive ready solution, and limitations imposed by applications that
demand more resources than those available in a local network. In the
third part of the course, we will concentrate on today's hot topics,
which are grid computing and data grid, where the student will have
the opportunity to understand what is a grid, its functioning, and
will be able to appreciate current developments in grid computing and
data grid, as well as to identify limitations of the algorithms and
techniques used to implement grid-aware systems.