Università degli Studi di Siena
Facoltà di Ingegneria
Course of
High Performance Computer Architecture
 
 
 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">
 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 06-Oct-2020 (12:00-13:30)
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 07-Oct-2020 (14:30-16:00)
    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 07-Oct-2020 (16:15-17:00)
    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 07-Oct-2020 (17:00-17:45)
    Dynamic Scheduling exercize.
    RESOURCES:
  • Exercize #1 of the exam of 23-06-2005.
  •  LESSON #03 of 13-Oct-2020 (12:00-12:45)
    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 13-Oct-2020 (12:45-13:30)
    Predictor types, Bimodal, BHSR, BHT, PHT, 2-level adaptive, GAg, PAg, PAs. Other predictors (gshare, gselect, tournament). (PART A)
    BIBLIOGRAPHIC REFERENCES:
  • Optional reading: [McFarling - 1993]
  •  LESSON #04 of 14-Oct-2020 (14:30-15:15)
    Predictor types, Bimodal, BHSR, BHT, PHT, 2-level adaptive, GAg, PAg, PAs. Other predictors (gshare, gselect, tournament). (PART B)
    BIBLIOGRAPHIC REFERENCES:
  • Optional reading: [McFarling - 1993]
  •  PRACTICING/LAB #90 of 14-Oct-2020 (15:15-16:00)
    Introduction to Linux (PART A)
     PRACTICING/LAB #90 of 14-Oct-2020 (16:15-17:45)
    Introduction to Linux (PART B)
     LESSON #05 of 20-Oct-2020 (12:00-12: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 20-Oct-2020 (12:45-13:30)
    Superscalar execution example: Re-Order Buffer and Instruction Window. Case studies: MIPS, Alpha, AMD, Intel, ARM. (PART A)
    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.
  •  LESSON #06 of 21-Oct-2020 (14:30-16:00)
    Superscalar execution example: Re-Order Buffer and Instruction Window. Case studies: MIPS, Alpha, AMD, Intel, ARM. (PART B)
    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 21-Oct-2020 (16:15-17:00)
    Using the Superscalar simulator FREESS
    PRESENTATION/SLIDES/VIDEO:
  • c221es02-freess.pdf
  • HPCA21-VIDEOES02.mp4
  • RESOURCES:
  • Educational Simulator FreeSs
  • Exercize #1 of the exam of the 22-06-2015 and detailed output.
  • .
  • Exercize #1 of the exam of the 31-10-2018.
  •  LESSON #08 of 21-Oct-2020 (17:00-17:45)
    Software methods to extract Instruction Level Parallelsim. (PART A)
  • 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)
  •  LESSON #08 of 27-Oct-2020 (12:00-12:45)
    Software methods to extract Instruction Level Parallelsim. (PART B)
    BIBLIOGRAPHIC REFERENCES:
  • Dubois 3.3.5,3.5,3.5.1-5
  • (Hennessy-Patterson-4 2.7-2.8)
  •  PRACTICING/LAB #03 of 27-Oct-2020 (12:45-13:30)
    Exercizes on VLIW processors.
    PRESENTATION/SLIDES/VIDEO:
  • c221es03-vliw.pdf
  • HPCA21-VIDEOES03.mp4
  • RESOURCES:
  • Exercize #1 of the exam of the 30-06-2008.
  • Exercize #1 of the exam of the 07-07-2009.
  •  PRACTICING/LAB #05 of 28-Oct-2020 (14:30-16:00)
    Exercizes on Dynamic Scheduling and various excersizes.
    PRESENTATION/SLIDES/VIDEO:
  • c221es05-toma2.pdf
  • HPCA21-VIDEOES05.mp4
  • RESOURCES:
  • Exercize #1 of the exam of the 07-11-2014.
  • Exercize #1 of the exam of the 31-10-2017.
  •  PRACTICING/LAB #06 of 28-Oct-2020 (16:15-17:45)
    Various exercizes.
    RESOURCES:
  • Exercize #1 of the exam of the 16-01-2012.
  • Exercize #2 of the exam of the 07-07-2009.
  •  03-Nov-2020 - MIDTERM TEST (12:00-14:15)

     LESSON #11 of 04-Nov-2020 (14:30-16: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 04-Nov-2020 (16:15-17: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 10-Nov-2020 (12:00-12:45)
    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)
  •  LESSON #14 of 10-Nov-2020 (12:45-13:30)
    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
  •  PRACTICING/LAB #09 of 11-Nov-2020 (14:30-16:00)
    Exercizes on Coherency from past exams.
    RESOURCES:
  • Exercize on cache coherence 20/01/2010;
  • spreadsheet for this excercize
  •  LESSON #15 of 11-Nov-2020 (16:15-17:00)
    Introduction to Parallel Programming
    BIBLIOGRAPHIC REFERENCES:
  • OpenCilk @ MIT
  • Programming in Cilk
  •  LESSON #16 of 11-Nov-2020 (17:00-17:45)
    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
  •  LESSON #21A of 17-Nov-2020 (12:00-13:30)
    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.
  •  PRACTICING/LAB #11A of 18-Nov-2020 (14:30-16:00)
    Experimenting several programming models: Pthreads, OpenMP, TBB, Cilk
     PRACTICING/LAB #11B of 18-Nov-2020 (16:15-17:45)
    Experimenting Cilk Tools. Overview of CUDA environment and simple examples.
     LESSON #21B of 24-Nov-2020 (12:00-12:45)
    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 24-Nov-2020 (12:45-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.
  •  LESSON #22B of 25-Nov-2020 (14:30-16:00)
    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 #12 of 25-Nov-2020 (16:15-17:45)
    CUDA Excersizes
     LESSON #60 of 01-Dec-2020 (12:00-12:45)
    Introduction to FPGAs
    PRESENTATION/SLIDES/VIDEO:
  • c221lez60-fpga.pdf
  • HPCA21-VIDEOLE60.mp4
  •  PRACTICING/LAB #07A of 01-Dec-2020 (12:45-13:30)
    Acceleration using PYNQ Environment
    (PART A)
    RESOURCES:
  • Reference, XILINX, PYNQ Python Productivity
  •  PRACTICING/LAB #07B of 02-Dec-2020 (14:30-16:00)
    Introduction to FPGA programming with Xilinx Vivado HLS
    (PART B)
    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 #07C of 02-Dec-2020 (16:15-17:45)
    Introduction to FPGA programming with Xilinx Vivado HLS
    (PART C)
    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
  •  08-Dec-2020: No Lesson
    Immacolata Concezione
     LESSON #30 of 09-Dec-2020 (14:30-15:15)
    Clusters
    BIBLIOGRAPHIC REFERENCES:
  • Dubois 5.2.2, 5.3
  •  LESSON #40 of 09-Dec-2020 (15:15-16:00)
    Introduction to MPI
    PRESENTATION/SLIDES/VIDEO:
  • c221lez40-mpi1.pdf
  • HPCA21-VIDEOLE40.mp4
  • BIBLIOGRAPHIC REFERENCES:
  • Reference site for OpenMPI:https://www.open-mpi.org/doc/
  • Reference tutorial: A. Lumsdaine et al., OpenMPI Tutorial
  •  PRACTICING/LAB #16 of 09-Dec-2020 (16:15-17:45)
    Using MPI
     PRACTICING/LAB #17 of 15-Dec-2020 (12:00-13:30)
    Various exercizes from previous exams.
    RESOURCES:
  • Exercize #2 of the exam of the 19-12-2017 - (CUDA - Histogram).
  •  PRACTICING/LAB #18 of 16-Dec-2020 (14:30-16:00)
    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 20-01-2010 - (Cilk/Fib5).
  • Exercize #3 of the exam of the 07-07-2009 - (coherence: Dragon vs. MESI).
  •  PRACTICING/LAB #19 of 16-Dec-2020 (16:15-17:45)
    Various exercizes from previous exams.
    RESOURCES:
  • Exercize #1 of the exam of the 16-01-2015 - (Competitive Protocol).
  • Exercize #2 of the exam of the 18-12-2015 - (Coherence and Interleavingi - Jacobi).
  • Exercize #3 of the exam of the 10-02-2016 - (Consistency and use of FENCE).
  •  PRACTICING/LAB #20 of 22-Dec-2020 (12:00-14:15)
    Various exercizes from previous exams.
    RESOURCES:
  • Exercize #2 of the exam of the 19-12-2018 - (OpenMP/Histogram).
  • Exercize #1 of the exam of the 31-01-2011 - (Coherence - Bit-Vector vs. Single-Sharer).
  • Exercize #1 of the exam of the 21-12-2016 - (Coherence - Dragon patterns).
  • OPENMP - Histogram Example Code
  •  23-Dec-2020 - COMPITINO (14:30-17:30)






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