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 12:43 (15 anni fa) da Marco Danelutto