filmeu

Class Parallel Programming

  • Presentation

    Presentation

    The Parallel Programming Curricular Unit presents an approach to teaching parallel programming in
    heterogeneous environments. This approach allows a smooth transition from the sequential programming
    paradigm to parallel programming in heterogeneous environments, enabling students to extract better
    performance from current architectures. The programming language used allows portability, as well as
    being a free programming language standard, and enabling the use of all the resources of a
    heterogeneous architecture. The teaching approach is divided into two components, where the
    introductory component addresses the main features of the OpenCL programming language, the
    identification of hardware that supports OpenCL in a heterogeneous environment and the configuration of
    the development environment. The transition process supports applications with an increasing level of
    complexity, allowing the practical teaching of parallel programming in heterogeneous environments.

  • Code

    Code

    ULP452-22528
  • Syllabus

    Syllabus

    Description of contents

    • Introduction to parallel programming.
    • Reasons that influenced the development of parallel computing.
    • Division of parallel computing areas.
    • Areas of coverage of parallel processing.
    • Basic Parallel Programming Primitives: task control, communication and synchronization.
    • Parallel architecture models.
    • Division in relation to data flow.
    • Division regarding the flow of instructions.
    • Division in relation to the control mechanism.
    • Commercial parallel machines.
    • Parallel machines performance rating.
    • Processor interconnection networks.
    • Performance measures of parallel applications.
    • Obtaining results from parallel applications.
    • Computational cost.
    • Speedup.
    • Efficiency.
    • Scalability.
    • Exploitation of parallelism in programs.
    • Parallel algorithm models.
    • Implicit exploration.
    • Explicit exploration.
    • Parallel programming paradigms.
  • Objectives

    Objectives

    Study the parallel programming model to realize that it consists of a set of software technologies to
    express parallel algorithms and create applications compatible with systems that support parallel
    programming. In this context, the areas of applications, programming languages, compilers, library
    (computing), communication systems and parallel I/O are included. To overcome the difficulties of
    automatic parallelization, an appropriate parallel programming model is identified to develop applications
    on a parallel platform.
    Develop parallel programming models to be implemented in different ways: as libraries invoked from
    sequential programming languages, extended languages, or new execution models. Also, they can be
    categorized into two types of systems: shared memory and distributed memory systems.

  • Teaching methodologies and assessment

    Teaching methodologies and assessment

    Assessment methodology:

    Curricular Assessment:

    - A global assessment test to be carried out at the end of the semester.

    Final Grade = Assessment test grade, with a weight of 70% in the final grade, and a minimum grade of 8 values.

    Practical work to be carried out in the classroom, with a weight of 20% in the final grade.

    Attendance and participation in classes with a 10% increase. Minimum 70% of attendance in classes.

    Final Assessment: All students will be entitled to a final exam.

  • References

    References

    Czarnul, C. (2018). Parallel Programming for Modern High Performance Computing Systems. Taylor & Francis. ISBN: 9781138305953.
    Balaji, P. (2016). Programming Models for Parallel Computing. MIT Press. ISBN: 9780262528818.
    Grama, A. (2003). Introduction to parallel computing. 2. ed. Harlow, England: Addison Wesley.
    Dongarra, J.J. (2003). Sourcebook of parallel computing. 1. ed. Amsterdam: Morgan Kaufmann.
    Herlihy, M., Shavit, N. (2008). The art of multiprocessor programming. 1. ed. Burlington: Elsevier Morgan Kaufmann.

     

SINGLE REGISTRATION
Lisboa 2020 Portugal 2020 Small Logo EU small Logo PRR republica 150x50 Logo UE Financed Provedor do Estudante Livro de reclamaões Elogios