Università degli Studi di Siena
Department of Information Engineering and Mathematics (DIISM)
Course of
High Performance Computer Architecture 2021-2022
 
 
 Latest News (home)
 Registration
 Lessons
(restricted access)
 Errata slides
 Tools for lab
 Syllabus
 Office Hours
 previus exams
 Projects
 Group registration
(restricted access)
 Exam Rules
 Feedback
 RELATED LINKS
 BEST PROJECTS
bgcolor="#FFFFFF" width="840" height="3900" border="0" cellpadding="0" cellspacing="0" valign="top" align="left">
 FIRST PART SLIDES (THEORY) IN A SINGLE FILE
 SECOND PART SLIDES (THEORY) IN A SINGLE FILE
 BIBLIOGRAPHY OF THE COURSE IN A SINGLE FILE

COURSE SCHEDULE (TENTATIVE): THE FOLLOWING DATES ARE INDICATIVE AND RELATED TO THE HYPOTHETIC REGULAR PROGRESS OF THE LESSONS. NOTE (THIS HAS BEEN ASKED TO ME ...) THE NUMBERING OF LESSON REFERS ONLY TO THE TOPIC, IT DOES NOT IMPLY BY ANY MEANS THAT THE LESSONS WILL BE GIVEN IN A CERTAIN ORDER.

NOTE: the actual schedule will be updated weekly.

BIBLIOGRAPHIC REFERENCES:

 LESSON #01 of 05-Oct-2021 (10:15-11:45)
Introduction, Evaluating Computers, Pipelining
(PART A)
BIBLIOGRAPHIC REFERENCES:
  • Dubois: Chap. 1,3.3
  • (Hennessy-Patterson-4: 2.1,2.2)
  • (Hennessy-Patterson-5: 3.1,3.2)
  •  LESSON #01 of 05-Oct-2021 (12:00-13:30)
    Introduction, Evaluating Computers, Pipelining
    (PART B)
    BIBLIOGRAPHIC REFERENCES:
  • Dubois: Chap. 1,3.3
  • (Hennessy-Patterson-4: 2.1,2.2)
  • (Hennessy-Patterson-5: 3.1,3.2)
  •  LESSON #02 of 08-Oct-2021 (08:30-09:15)
    Dynamic Instruction Scheduling
    BIBLIOGRAPHIC REFERENCES:
  • Dubois: Chap. 3.4,3.4.1
  • (Hennessy-Patterson-4 - 2.4,2.5)
  • (Hennessy-Patterson-5 - 3.4,3.5)
  • An Efficient Algorithm for Exploiting Multiple Arithmetic Units
  • tomasulo.c
  •  PRACTICING/LAB #01 of 08-Oct-2021 (09:15-10:00)
    Dynamic Scheduling exercize.
    RESOURCES:
  • Exercize #1 of the exam of 23-06-2005.
  •  LESSON #03 of 12-Oct-2021 (10:15-11:00)
    Branch Prediction: speculation of branch condition and branch target, BPRED, BTB.
    BIBLIOGRAPHIC REFERENCES:
  • Dubois - 3.3.4,3.4.3
  • (Hennessy-Patterson-4 - 2.3)
  • (Hennessy-Patterson-5 - 3.3)
  • Optional reading: [Yeh, Patt - 1992]
  • Optional reading: [Nair - 1995]
  • Optional reading: [Young - 1995]
  •  LESSON #04 of 12-Oct-2021 (11:00-11:45)
    Predictor types, Bimodal, BHSR, BHT, PHT, 2-level adaptive, GAg, PAg, PAs. Other predictors (gshare, gselect, tournament).
    BIBLIOGRAPHIC REFERENCES:
  • Optional reading: [McFarling - 1993]
  •  PRACTICING/LAB #90 of 12-Oct-2021 (12:00-13:30)
    Introduction to Linux
     PRACTICING/LAB #90 of 15-Oct-2021 (08:30-10:00)
    Introduction to Linux
     LESSON #05 of 19-Oct-2021 (10:15-11:45)
    Introduction to Superscalar Processors: general scheme and Renaming.
    BIBLIOGRAPHIC REFERENCES:
  • Dubois 3.3.3,3.4.6
  • (Hennessy-Patterson-4 - 2.6-2.9)
  • (Hennessy-Patterson-5 - 3.6-3.10)
  •  LESSON #06 of 19-Oct-2021 (12:00-13:30)
    Superscalar execution example: Re-Order Buffer and Instruction Window. Case studies: MIPS, Alpha, AMD, Intel, ARM.
    BIBLIOGRAPHIC REFERENCES:
  • Dubois 3.4.4,3.4.5,3.4.7,3.4.8,3.4.9
  • detailed output of the example analyzed during the lesson.
  •  PRACTICING/LAB #02 of 22-Oct-2021 (08:30-09:15)
    Using the Superscalar simulator FREESS
    PRESENTATION/SLIDES/VIDEO:
  • c222es02-freess.pdf
  • HPCA22-VIDEOES02.mp4
  • RESOURCES:
  • Educational Simulator FreeSs
  • Exercize #1 of the exam of the 31-10-2018.
  •  LESSON #08 of 22-Oct-2021 (09:15-10:00)
    Software methods to extract Instruction Level Parallelsim.
  • Animated slide for the software pipelining example.
  • BIBLIOGRAPHIC REFERENCES:
  • Dubois 3.3.5,3.5,3.5.1-5
  • (Hennessy-Patterson-4 2.7-2.8)
  •  PRACTICING/LAB #03 of 26-Oct-2021 (10:15-11:45)
    Exercizes on VLIW processors.
    RESOURCES:
  • Exercize #1 of the exam of the 07-07-2009.
  •  PRACTICING/LAB #05 of 26-Oct-2021 (12:00-13:30)
    Various excersizes.
    PRESENTATION/SLIDES/VIDEO:
  • c222es05-superscalar_exercize2.pdf
  • RESOURCES:
  • Exercize #1 of the exam of the 22-06-2015 .
  •  29-Oct-2021 - MIDTERM TEST (07:45-08:30)

     29-Oct-2021 - MIDTERM TEST (08:30-10:00)

     LESSON #11 of 02-Nov-2021 (10:15-11:00)
    Introduction to multiprocessor systems, Flynn's taxonomy, UMA, NUMA, COMA systems, programming models
    BIBLIOGRAPHIC REFERENCES:
  • Dubois 5.1,5.4
  • (see also Culler-Singh, Cap.1)
  •  LESSON #12A of 02-Nov-2021 (11:00-11:45)
    Coherence Protocols: Write Update, Write Invalidate, Hybrid. Snoopy based protocols: the MESI and DRAGON protocols
    (PART A)
    BIBLIOGRAPHIC REFERENCES:
  • Dubois 5.4,5.5,7.3
  • (see also Culler-Singh, Cap.5)
  •  LESSON #12B of 02-Nov-2021 (12:00-13:30)
    Coherence Protocols: Write Update, Write Invalidate, Hybrid. Snoopy based protocols: the MESI and DRAGON protocols
    (PART B)
    BIBLIOGRAPHIC REFERENCES:
  • Dubois 5.4,5.5,7.3
  • (see also Culler-Singh, Cap.5)
  •  PRACTICING/LAB #09 of 05-Nov-2021 (08:30-10:00)
    Exercizes on Coherency from past exams.
    RESOURCES:
  • Exercize #1 of the exam of the 20-01-2010 - (MSI protocol).
  • spreadsheet for this excercize (20-01-2010)
  • Exercize #1 of the exam of the 16-01-2015 - (Competitive Protocol).
  •  LESSON #14 of 09-Nov-2021 (10:15-11:00)
    Memory Consistency Models: Sequential Consistency and Relaxed Consistency
    BIBLIOGRAPHIC REFERENCES:
  • Dubois 7.4,7.5,7.6,7.7
  • (v. Culler-Singh, cap. 5.2, 5.5)
  • Optional reading (open-access): A Primer on Memory Consistency and Cache Coherence, Second Edition
  • Optional reading: Litmus Tests for checking Memory Models
  •  LESSON #60 of 09-Nov-2021 (11:00-11:45)
    Introduction to FPGAs
    PRESENTATION/SLIDES/VIDEO:
  • c222lez60-fpga1.pdf
  • HPCA22-VIDEOLE60.mp4
  •  LESSON #61 of 09-Nov-2021 (12:00-13:30)
    FPGA Archiecture
    PRESENTATION/SLIDES/VIDEO:
  • c222lez61-fpga2.pdf
  • HPCA22-VIDEOLE61.mp4
  • BIBLIOGRAPHIC REFERENCES:
  • Free book: L.H. Crockett et al. "The Zynq book"
  •  LESSON #62 of 12-Nov-2021 (08:30-10:00)
    FPGA System on Chip
    PRESENTATION/SLIDES/VIDEO:
  • c222lez62-fpga3.pdf
  • HPCA22-VIDEOLE62.mp4
  • BIBLIOGRAPHIC REFERENCES:
  • Free book: L.H. Crockett et al. "The Zynq book"
  •  PRACTICING/LAB #07 of 16-Nov-2021 (10:15-11:45)
    Introduction to FPGA programming with Xilinx Vivado HLS
    RESOURCES:
    #
  • Reference: XILINX, #A Zynq Accelerator for Floating Point Matrix Multiplication Designed with Vivado HLS
  • #
  • Optional reference (Open-Access): L. H. Crocket et al., The Zynq Book
  • #
     PRACTICING/LAB #19 of 16-Nov-2021 (12:00-13:30)
    Various exercizes from previous exams.
    RESOURCES:
  • Exercize #3 of the exam of the 07-07-2009 - (Coherence: Dragon vs. MESI).
  • Exercize #2 of the exam of the 18-12-2015 - (Coherence and Interleaving - Jacobi).
  • Exercize #3 of the exam of the 10-02-2016 - (Consistency and use of FENCE).
  • Exercize #1 of the exam of the 31-01-2011 - (Coherence - Bit-Vector vs. Single-Sharer).
  •  PRACTICING/LAB #20 of 19-Nov-2021 (08:00-10:15)
    Various exercizes from previous exams.
    PRESENTATION/SLIDES/VIDEO:
  • c222es20-coherency_exercize2.pdf
  • RESOURCES:
  • Exercize #1 of the exam of the 21-12-2016 - (Coherence - Dragon patterns).
  • Exercize #2 of the exam of the 10-02-2016 - (Coherence - MSI vs MESI, 3 streams).
  • Exercize #1 of the exam of the 18-12-2019 - (Coherence - MSI, TAS best/worst).
  • Exercize #1 of the exam of the 23-12-2020 - (Coherence - Competitive, TAS best/worst).
  • Exercize #1 of the exam of the 19-12-2018 - (Coherence - Dragon, TAS best/worst).
  •  23-Nov-2021 - FINAL TEST (10:15-11:45)

     23-Nov-2021 - FINAL TEST (12:00-13:30)

     LESSON #15 of 26-Nov-2021 (08:30-10:00)
    Introduction to Parallel Programming
    BIBLIOGRAPHIC REFERENCES:
  • OpenCilk @ MIT
  • Programming in Cilk
  •  LESSON #16 of 30-Nov-2021 (10:15-11:00)
    Parallelsim and Performance
    BIBLIOGRAPHIC REFERENCES:
  • Reading: He et al., The Cilkview Scalability Analyzer
  • Optional reading: Frigo et al., The implementation of the Cilk-5 multithreaded language
  •  PRACTICING/LAB #11A of 30-Nov-2021 (11:00-11:45)
    Experimenting several programming models: Pthreads, OpenMP, TBB, Cilk
     PRACTICING/LAB #11B of 30-Nov-2021 (12:00-13:30)
    Experimenting Cilk Tools.
     LESSON #21A of 03-Dec-2021 (08:30-09:15)
    Introduction to CUDA parallel programming model
    (PART A)
    BIBLIOGRAPHIC REFERENCES:
  • D. B. Kirk, W. W. Hwu, Programming Massively Parallel Processors 3rd Edition, Morgan kaugfman, 2017: CAP.1, CAP.2.
  •  LESSON #21B of 03-Dec-2021 (09:15-10:00)
    Introduction to CUDA parallel programming model
    (PART B)
    BIBLIOGRAPHIC REFERENCES:
  • D. B. Kirk, W. W. Hwu, Programming Massively Parallel Processors 3rd Edition, Morgan kaugfman, 2017: CAP.1, CAP.2.
  •  LESSON #22A of 07-Dec-2021 (10:15-11:45)
    CUDA Threads, Atomics, and Memory
    BIBLIOGRAPHIC REFERENCES:
  • D. B. Kirk, W. W. Hwu, Programming Massively Parallel Processors 3rd Edition, Morgan kaugfman, 2017: CAP.4, CAP.5.
  •  LESSON #22B of 07-Dec-2021 (12:00-13:30)
    CUDA Threads, Atomics, and Memory
    BIBLIOGRAPHIC REFERENCES:
  • D. B. Kirk, W. W. Hwu, Programming Massively Parallel Processors 3rd Edition, Morgan kaugfman, 2017: CAP.4, CAP.5.
  •  PRACTICING/LAB #13 of 10-Dec-2021 (08:30-09:15)
    Overview of CUDA environment and simple examples.
     PRACTICING/LAB #12 of 10-Dec-2021 (09:15-10:00)
    Matrix multiplication in CUDA
    PRESENTATION/SLIDES/VIDEO:
  • c222es12-cuda_lab1.pdf
  •  LESSON #30 of 14-Dec-2021 (10:15-11:00)
    Clusters
    BIBLIOGRAPHIC REFERENCES:
  • Dubois 5.2.2, 5.3
  •  LESSON #40 of 14-Dec-2021 (11:00-11:45)
    Introduction to MPI
    BIBLIOGRAPHIC REFERENCES:
  • Reference site for OpenMPI:https://www.open-mpi.org/doc/
  • Reference tutorial: A. Lumsdaine et al., OpenMPI Tutorial
  •  PRACTICING/LAB #16 of 14-Dec-2021 (12:00-13:30)
    Using MPI
     PRACTICING/LAB #15 of 17-Dec-2021 (08:30-10:00)
    Methodology for carrying out performance measurements; discussion on projects; visit to Computer Architecture Lab
     PRACTICING/LAB #17 of 21-Dec-2021 (10:15-11:45)
    Various exercizes from previous exams.
    RESOURCES:
  • Exercize #2 of the exam of the 19-12-2017 - (CUDA - Histogram).
  • histo256.zip CUDA CODE
  •  PRACTICING/LAB #18 of 21-Dec-2021 (12:00-13:30)
    Various exercizes from previous exams.
    RESOURCES:
  • Exercize #2 of the exam of the 18-12-2019 - (Cilk/Histogram).
  • Exercize #2 of the exam of the 19-12-2018 - (OpenMP/Histogram).
  • Exercize #2 of the exam of the 23-12-2020 - (MPI/Histogram).
  • OPENMP - Histogram Example Code
  • MPI - Histogram Example Code
  •  from 24-Dec-2021 to 21-Jan-2022: No Lesson
    VACANZA/PONTE





    To visualize the content of the above presentations in Acrobat format (.pdf) you can use Acrobat Reader, freely realesed by Adobe (Download Acrobat Reader)