Strumenti Utente

Strumenti Sito


magistraleinformaticanetworking:spm:detailedprogram0910

SPM 2009-2010

This is the list of arguments actually presented during the course in the A.A. 2009-2010.

  • Evolution of computer architectures (multi/many core, clusters, grids, clouds) and urgency of effective parallel/distributed programming models and tools
  • Problems in classical parallel/distributed programming
    • Distinction between distributed and parallel based on computational grain
    • Definition of mapping and scheduling problems
    • Communications and synchronization
    • Computation grain
    • Load balancing, reliability, security and autonomic management
  • Definition of structured parallel/distributed programming model
    • Patterns/Skeletons
    • Key features of a pattern
    • User programmers and system programmer views
    • Layered implementation
    • Pros and cons
  • Skeleton/patterns for parallel/distributed programming
    • Techniques for discovering patterns
    • Classification of patterns (data, stream, control parallel)
    • Typical patterns
    • Cole's manifesto principles (with extensions)
  • Skeleton frameworks
    • Definition of algorithmic skeleton
    • Language based vs. library based skeleton frameworks
  • Implementation of skeleton frameworks
    • Implementation template technology
    • Macro data flow technology
  • Fixed vs. variable skeleton set frameworks: how to handle expandability of the skeleton set using macro data flow implementation
  • Advanced features
    • Portability (virtual machine based vs. compiler based)
    • Adaptivity
      • General principles
      • Behavioural skeletons with autonomic management of non functional features
      • Hierarchical management
      • Multiconcern management
  • Performance modelling of structured parallel/distributed computations
    • Measures of interest
      • Service and completion time
      • Speedup and scalability
      • Efficiency, isoefficiency
    • Performance models for farm, pipeline and data parallel skeletons
    • Performance models using queue theory results
    • How to derive a performance model for a generic skeleton.
  • Design patterns
    • Concept of design pattern
    • Parallel design patterns
    • Sample parallel patterns
    • Perspectives and differences with algorithmic skeletons
  • Software components
    • Definition
    • Component composition (use/provide ports, other kind of ports)
    • Usage, usage in a structured framework
    • Sample component frameworks (Java Beans, Fractal, SCA). Sample SCA code
    • Perspectives and differences with algorithmic skeletons and design patterns.
  • Workflows
    • Definition
    • Typical usage
    • Scheduling and fault tolerance
    • Perspectives and differences with algorithmic skeletons and design patterns.
  • Low level frameworks to support structured parallel/distributed programming
    • POSIX-TCP/IP (targets clusters and network of workstations
      • Client server sample implementation
      • Tools and command line utilities (ssh, scp, rsync)
      • Implementation of collective operations with UDP
      • Sample code in C/C++ and Java
    • OpenMP (targets multicores)
      • Directives and run time primitives
      • Sample code
      • Sample implementation of structured code
    • RPC/RMI (targeting clusters and networks of workstations)
      • Concepts
      • Sample code in C (SUN rpcgen), Java (RMI) and ProActive)
    • Measuring and modelling POSIX/TCP platform
      • Mechanisms used to measure time (wall clock, clock, per process)
      • Simple modelling of TCP communications (approximating communication costs at the steady state)
  • Wireless networks
    • Concept
    • Infrastructure and ad hoc modes
    • Channel access protocols
    • 802.11
    • Usage in structured context
  • Peer-to-peer techniques
    • Concept
    • Centralized, distributed and hierarchical approaches
    • Typical algorithms and applications
    • Usage in structured contexts
  • Client server model vs. peer to peer: perspectives
  • Concepts and perspectives on parallel programming from the Berkeley paper “A View of the Parallel Computing Landscape”
  • Tools and frameworks:
    • Sample skeleton framework: Muesli. Skeletons provided, installation, sample code.
    • Sample skeleton framework: Calcium/ProActive. Skeletons provided, installation, sample code.
    • Sample component framework: ProActiveGCM
    • Sample message passing framework: MPI. Point to point primitives, collective primitives, compilation and run on clusters.
    • Sample thread framework: OpenMPI.
magistraleinformaticanetworking/spm/detailedprogram0910.txt · Ultima modifica: 20/01/2010 alle 13:43 (8 anni fa) da Marco Danelutto