PARALLEL AND DISTRIBUITED COMPUTING A
Learning outcomes of the course unit
The objective of the course is to give the students the ability to operate on complex distributed computer systems. First the main technological and architectural evolutions in the field of high performance computing systems are discussed. Some instruments and methodology for parallel and distributed programming (such as MPI) are then introduced and discussed. Finally middleware infrastructure (such as GRID) are presented giving the ability to operate and construct simple solutions in a distributed environment.
Course contents summary
1. Message passing models
· Introduction to parallel programming
· Programming in a message passing environment.
· Message Passing Interface (MPI): point to point communications, non-blocking operations, parallel data types, virtual topologies, collective communications.
2. Grid
· Introduction to Grid Computing.
· State of the art of Grid technology: OGSA e OGSI, Globus Toolkit.
· Grid Service: concept of Web Service, tools for Web Service development (XML, WSDL, SOAP), Grid Service definition.
· Globus Toolkit: development and installation of a Grid Service (interface definition, development and deploy of the service)
· GSI: Grid and security.
3. Peer-to-Peer architectures
· Introduction to peer-to-peer systems (P2P): comparison between P2P and Client/Server paradigms, P2P applications , P2P architectures, message routing algorithms for P2P systems, P2P protocols.
· JXTA: introduction: ID, advertisement, service e PIPE, peergroup, implementation of a JXTA system, peer discovery mechanism, peergroup creation, peergroup discovery.
Lab activities on MPI parallel programming and GRID technologies
Recommended readings
Slides used during lectures. Scientific publications.