SISTEMI DISTRIBUITI 1 E LABORATORIO

Academic Year 2016/2017 - 1° Year - Curriculum Sistemi di Rete e Sicurezza
Teaching Staff Credit Value: 9
Scientific field: INF/01 - Informatics
Taught classes: 36 hours
Term / Semester:

Learning Objectives

  • LABORATORIO

    Nowadays a modern approach to scientific problem solving should be based on dedicated computing systems in order to devise scientific modes, simulate phenomena, verify hipotesyst that would be difficult to recreate in a physical laboratory context. Moreover an growing number of home consumer applications are requiring a contantly increasing amount of computing resources and to use high performance computing platforms.
    This course will give a short introductionto the mostly diffused high performance architectures and the related paradigms: MPI, OpenMP e GPGPU, hadoop, openstack. Eventually, during this course the student will develope the basic tools to understand and begin to apply the cited paradigms and to used the connected tecnologies, with particular interest about the modern hybrid programming techniques for parallel and high performance computing, as well as regarding the most important paradigms used for big data collection and analysis, such as hadoop and mapreduce, and the related cloud-oriented computing infrastructures and their management (Openstack).


Detailed Course Content

  • LABORATORIO

    I. Elements of distributed computing
    II. Flynn's taxonomy, memory paradigms, threads, scheduling, messages
    III. Message passing paradigms and Message Passing Interface
    IV. Shared Memory paradigms and Open MultiProcessing
    V. GPGPU Programming and Common Unified Device Architecture (CUDA)
    VI. High performance programming for hybrid computing architectures
    VII. Distributed Big Data Analysis and shared nothing computing paradigms
    VIII. Map­Reduce, distributed file systems, Hadoop e MrJob (python)
    IX. Cloud­ oriented solutions for distributed computing
    XI. OpenStack


Textbook Information

  • LABORATORIO

    Reference textbooks:
    1. G. Hager, G. Wellein: Introduction to High Performance Computing for Scientists
    and Engineers, CRC Press (2010)
    1. G. Coulouris et al.: Distributed Systems, Pearson (2013)
    2. Gropp et al.: Using MPI, MIT press (2014)
    3. B. Chapman, G. Jost: Using OpenMP, MIT press (2007)
    4. J. Sanders: CUDA by Example, Addison-­Wesley (2010)
    5. T. White: Hadoop: the definitive guide, O’Reilly (2015)
    6. T. Fifield et al.: OpenStack Operations Guide, O’Reilly (2016)

    Other usefull references:
    - D. Culler et al.: Parallel Computer Architecture, Kaufmann (1998)
    - M.J. Quinn: Parallel Programming in C with Mpi and Openmp, McGraw­Hill (2008)
    - G. Barlas: Multicore and GPU Programming, Kaufmann (2014)
    - N. Wilt: CUDA Handbook, Addison-­Wesley (2013)
    - E. Sammer: Hadoop Operations, O’Reilly (2012)
    - M. GRoover, T. Malaska: Hadoop Applications Architectures, O’Reilly (2015)
    - K. Basil et al.: OpenStack Security Guide, O’Reilly (2015)