23/02/2010 Introduction to the course — Aim and purpose, program, structure, rules and kind of final tests.
24/02/2010 Grid computing, (I) — Large-scale problems in research and prodution environments. How to approach these problems. Preliminary definitions: resources, protocols, services, APIs and SDKs. A simple example: web services and their protocols.
26/02/2010 Grid Computing, (II) — Virtual Organizations. The Grid vision and its requirements. The Grid architecture: fabric, connectivity, resource, collective and application layers. Using the Grid: scenarios and examples. Open Grid Service Architecture and its capabilities. The eight fallacies of Grid computing.
02/03/2010 Message Passing Interface, Part 1 — The MPI standard, brief history and purpose. Message Passing programming and portability, functional and performance portability. The library approach of MPI. MPI basic concepts: communicators, point to point primitives, collective primitives, datatypes; communication semantics in MPI: envelopes, local/global completion, (non)blocking operations, communication modes. Opaque Objects. Primitive datatypes.
03/03/2010 MPI, Part 2
05/03/2010 MPI, Part 3
09/03/2010 Grid Computing (III) — The Globus Project; Public Key Infrastructure (concepts). Grid Security Infrastructure. Certificates. Single Sign On and Delegation.
10/03/2010 Grid Computing (IV) — Grid Information Services. Lightweight Directory Access Protocol (concepts). Monitoring and Discovery Service. IP, GRIS and GIIS. Grid Information Models: MDS-2 and GLUE schemata
12/03/2010 MPI, Part 4
16/03/2010 Virtualization technology (I) — Basics of virtualization at the program language, operating system and machine level. Quick survey of Pascal P-code, Java bytecode and .Net CLI. Hardware virtualization by emulation. Read papers by J.E.Smith listed in the course bibliography
17/03/2010 Virtualization technology (II), MPI lab — Quick tour of full-system virtualization: hosted and bare-metal hypervisors; protection rings in the x86 architecture; virtualization and paravirtualization, hardware-assisted virtualization; containers and hosted virtualization. Elementary programs in MPI.
19/03/2010 Grid Computing (V) — HPC Resource Management; Grid Resource Management; Gatekeeper and Job Manager; Data Management; GASS and GridFTP; Replica Catalog and Replica Management Services
23/03/2010 Map & reduce: the programming model — Problem characterization; Map Fold in LISP; Programming model: mappers and reducers; Programming model: partitioners and combiners; Example and data flow
24/03/2010 Distributed File Systems: GFS and HDFS — Problem characterization; Blocks, Name nodes and Data Nodes; Master/server architecture; Master Server (namenode), Chunk Servers (datanode) protocols and responsabilities; Anatomy of a read; Anatomy of a write; Benchmarks
26/03/2010 Hadoop Lab — Hadoop installation and setup; Single mode and pseudodistributed mode configuration; Grep application
Electoral break, Easter break
21/04/2010 K-means + MPI Lab
23/04/2010 MPI Lab
27/04/2010 XtreemOS part I
28/04/2010
30/04/2010
04/05/2010 (see the CPA course page)
05/05/2010 (see the CPA course page)
07/05/2010 (see the CPA course page)
11/05/2010 (see the CPA course page)
12/05/2010 (see the CPA course page)
14/05/2010 The ASSIST environment, part I — relationship with other skeleton-based parallel programming tools; basic concepts, flexible-skeletons, multi-language support and heterogeneous platforms; sequential code encapsulation, stream-oriented communication, generic graphs, the parmod as an abstract “wildcard” skeleton
18/05/2010 The ASSIST environment, part II — parmod semantics and usage rationale; structure and semantic options available to the programmer: input and output section, virtual processes, distribution, collection; mapping of VPs over concrete architectures.
19/05/2010 The ASSIST environment, part III — support of heterogeneity and dynamic adaptivity at run-time; structure and performance contract directed deployment.
21/05/2010 Presentation of project proposals