Disclaimer studiegids 2023-2024

Aan de inhoud van de online studiegids van de Universiteit van Amsterdam voor het academische jaar 2023-2024 is de grootst mogelijke zorg besteed. Tussentijds kunnen echter wijzigingen optreden, als gevolg van bijvoorbeeld wijzigingen in de wet, wijzigingen in UvA-regelingen, kabinetsmaatregelen samenhangend met de bestrijding van het coronavirus e.d. Deze wijzigingen prevaleren dan boven de teksten uit deze online studiegids. Wanneer dit het geval is, zal dit op passende wijze bekend worden gemaakt via Canvas.

Multi-Core Processor Systems

Course catalogue number

5284MCPS6Y

Credits

6 EC

Language of instruction

English

Time period(s)

Sem. 1Sem. 2

See also

College/graduate

Graduate School of Informatics

Lecturer(s)

Contact

Education Desk FNWI
Science Park 904
B1
020 5257100

servicedesk-esc-science@uva.nl

Is part of

    Add to course registration

Objectives

  • To understand the principles and design of modern multi-core microprocessors and and their microarchitectures.
  • To understand how such processors can be deployed in systems targeted for different application fields, such a as embedded / edge systems-on-a-chip or parallel/distributed computing systems.
  • Building a simulation model of a cache-coherent multi-core system, with which cache behavior in such systems can be analyzed and evaluated.
  • To develop an understanding of how such multi-core processors can be programmed.

Contents

This course builds on a basic knowledge of microprocessor architecture. It develops this with and emphasis on instruction-level and thread-level concurrency in (multi-core) microprocessor design as well as concurrency in memory systems. The topics that are covered include superscalar and VLIW processor architectures, instruction- and thread-level parallelism, memory hierarchy, distributed- and shared-memory parallel computers.

The course also provides an introduction into programming models and techniques for multi-core processors found in everyday laptops to large-scale server systems. Here, the focus will be on multithreaded programming models for shared address space systems, where we discuss both OpenMP compiler directives and Posix threads.

Recommended prior knowledge

The course requires a solid background in system-oriented programming using the C or C++ programming language, and basic knowledge on computer organization.

Registration

More information about procedures and registration periods can be found at https://student.uva.nl/en/topics/course-registration

Teaching method and contact hours

  • Lecture
  • Self-study
  • Computer lab session/practical training

Study materials

  • Literature:
    • John Hennessy and David Patterson, Computer Architecture: a Quantitative Approach, Morgan Kaufmann, 3rd ed. or later.
  • Practical training material:
    • Study material for the part on parallel programming will be provided during the course.

Assessment

Practical assignments, theory tests/assignments, review of a scientific paper.