Università degli Studi di Siena
Dipartimento di Ingegneria dell'Informazione e Scienze Matematiche (DIISM)
Insegnamento di
Architettura dei Calcolatori ad Alte Prestazioni 2023-2024
 
 
 ultime notizie (home)
 registrazione matricola
 lezioni
(accesso riservato)
 errata-corrige slides
 tools per esercitazioni
 programma
 orario ricevimento
 compitini/compiti
 progetti
 registrazione gruppo
(accesso riservato)
 modalita' esame
 feedback
 RELATED LINKS
 PROGETTI VARI
bgcolor="#FFFFFF" width="840" height="3900" border="0" cellpadding="0" cellspacing="0" valign="top" align="left">
 PRIMA PARTE DELLE SLIDE (TEORIA) IN UN UNICO FILE
 SECONDA PARTE DELLE SLIDE (TEORIA) IN UN UNICO FILE
 THIRD PARTE DELLE SLIDE (TEORIA) IN UN UNICO FILE
 BIBLIOGRAFIA DEL CORSO IN UN UNICO FILE

PIANO DEL CORSO (TENTATIVO): LE DATE SONO PURAMENTE INDICATIVE E RELATIVE ALL'IPOTETICO SVOLGIMENTO REGOLARE DELLE LEZIONI. NOTA: (MI E' STATO CHIESTO...) LA NUMERAZIONE DELLE LEZIONI SI RIFERISCE SOLO ALL'ARGOMENTO, NON IMPLICA IN ALCUN MODO LO SVOLGIMENTO IN UN CERTO ORDINE.

NOTA: lo svolgimento effettivo verra' aggiornato settimanalmente.

RIFERIMENTI BIBLIOGRAFICI:

 LEZIONE #01 del 02-Ott-2023 (14:30-16:00)
Introduzione, Valutazione di un Calcolatore
(PART A)
PRESENTAZIONE/SLIDES/VIDEO:
  • c224lez01-intro_pipe.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • Dubois: Chap. 1,3.3
  • (Hennessy-Patterson-4: 2.1,2.2)
  • (Hennessy-Patterson-5: 3.1,3.2)
  •  04-Ott-2023: Nessuna Lezione
    NO LESSON (Welcome Day)
     LEZIONE #01 del 06-Ott-2023 (08:30-10:00)
    Introduzione, Valutazione di un Calcolatore
    (PART B)
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224lez01-intro_pipe.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • Dubois: Chap. 1,3.3
  • (Hennessy-Patterson-4: 2.1,2.2)
  • (Hennessy-Patterson-5: 3.1,3.2)
  •  LEZIONE #02 del 06-Ott-2023 (12:00-12:45)
    Scheduling dinamico delle istruzioni (introduzione)
    RIFERIMENTI BIBLIOGRAFICI:
  • 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
  •  ESERCITAZIONE/LAB #01 del 06-Ott-2023 (12:45-13:30)
    Esercizio sullo scheduling dinamico.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224es01-tomasulo.pdf
  •  LEZIONE #03 del 09-Ott-2023 (14:30-16:00)
    Branch Prediction: speculazione sulla condizione e sul target del salto, BPRED, BTB. Tipologie di predittori: Bimodale, 2-bit saturating counter, BHSR, BHT, PHT, 2-level adaptive. Altri predittori (gshare, gselect).
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224lez03-branch_prediction.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • 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]
  • Optional reading: [McFarling - 1993]
  •  ESERCITAZIONE/LAB #90 del 11-Ott-2023 (08:30-10:00)
    Introduzione a Linux (PARTE A)
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224es90-linux_intro.pdf
  •  ESERCITAZIONE/LAB #90 del 11-Ott-2023 (10:15-11:45)
    Introduzione a Linux (PARTE B)
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224es90-linux_intro.pdf
  •  LEZIONE #05 del 16-Ott-2023 (14:30-15:15)
    Introduzione ai Processori Superscalari: schema generale e Renaming.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224lez05-superscalar1.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • Dubois 3.3.3,3.4.6
  • (Hennessy-Patterson-4 - 2.6-2.9)
  • (Hennessy-Patterson-5 - 3.6-3.10)
  •  LEZIONE #06 del 16-Ott-2023 (15:15-16:00)
    Esempio di esecuzione superscalare: Re-Order Buffer e Instruction Window. Studio di casi: MIPS, Alpha, AMD, Intel, ARM.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224lez06-superscalar2.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • Dubois 3.4.4,3.4.5,3.4.7,3.4.8,3.4.9
  • output dettagliata dell'esempio analizzato durante la lezione.
  •  LEZIONE #08 del 18-Ott-2023 (08:30-10:00)
    Metodi software per estrarre il parallelismo al livello di istruzioni.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224lez08-software_ilp.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • Slide animata dell'esempio di software pipelining.
  •  ESERCITAZIONE/LAB #03 del 18-Ott-2023 (10:15-11:45)
    Esercizi sui processori Superscalari e VLIW.
    PRESENTAZIONE/SLIDES/VIDEO:
  • IN PREPARAZIONE
  • RISORSE:
  • Esercizio n.1 dal compito del 23-06-2005.
  • Esercizio n.1 dal compito del 07-07-2009.
  • Esercizio n.2 dal compito del 07-07-2009.
  • Esercizio n.1 dal compito del 30-06-2008.
  •  ESERCITAZIONE/LAB #04 del 23-Ott-2023 (14:30-16:00)
    Esercizi vari.
    PRESENTAZIONE/SLIDES/VIDEO:
  • IN PREPARAZIONE
  • RISORSE:
  • Esercizio n.1 dal compito del 20-01-2010.
  • Esercizio n.1 dal compito del 04-02-2013.
  •  ESERCITAZIONE/LAB #05 del 25-Ott-2023 (08:30-10:00)
    Esercizi vari.
    PRESENTAZIONE/SLIDES/VIDEO:
  • IN PREPARAZIONE
  • RISORSE:
  • Esercizio n.1 dal compito del 05-07-2006.
  • Esercizio n.1 dal compito del 07-11-2014.
  •  ESERCITAZIONE/LAB #02 del 25-Ott-2023 (10:15-11:00)
    Uso del simulatore di processore superscalare FREESS
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224es02-freess.pdf
  • RISORSE:
  • Simulatore didattico FreeSs
  • Esercizio n.1 dal compito del 31-10-2018.
  •  ESERCITAZIONE/LAB #06 del 25-Ott-2023 (11:00-11:45)
    Esercizi vari.
    PRESENTAZIONE/SLIDES/VIDEO:
  • IN PREPARAZIONE
  • RISORSE:
  • Esercizio n.1 dal compito del 31-10-2017.
  • Esercizio n.1 dal compito del 30-10-2019.
  •  30-Ott-2023 - COMPITINO INTERMEDIO (13:45-14:30)

     30-Ott-2023 - COMPITINO INTERMEDIO (14:30-16:00)

     01-Nov-2023: Nessuna Lezione
    Tutti i Santi
     LEZIONE #11 del 06-Nov-2023 (14:30-15:15)
    Introduzione ai sistemi multiprocessore, classificazione di Flynn, sistemi UMA, NUMA, COMA, modelli di programmazione.
    RIFERIMENTI BIBLIOGRAFICI:
  • Dubois 5.1,5.4
  • (see also Culler-Singh, Cap.1)
  •  LEZIONE #12 del 06-Nov-2023 (15:15-16:00)
    Protocolli di coerenza: Write Update, Write Invalidate, Ibridi. Protocolli snoopy based. I protocolli MESI e Dragon. Protocolly directory based e macchine a parallelismo massiccio. (PARTE A)
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224lez12-multiprocessor_coherency.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • Dubois 5.4,5.5,7.3
  • (see also Culler-Singh, Cap.5)
  •  LEZIONE #12 del 08-Nov-2023 (08:30-10:00)
    Protocolli di coerenza: Write Update, Write Invalidate, Ibridi. Protocolli snoopy based. I protocolli MESI e Dragon. Protocolly directory based e macchine a parallelismo massiccio. (PARTE B)
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224lez12-multiprocessor_coherency.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • Dubois 5.4,5.5,7.3
  • (see also Culler-Singh, Cap.5)
  •  ESERCITAZIONE/LAB #09 del 08-Nov-2023 (10:15-11:45)
    Esercizi sulla coerenza da precedenti esami.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224es09-coherency_exercize1.pdf
  • RISORSE:
  • Esercizio n.3 dal compito del 07-07-2009 - (Coherence: Dragon vs. MESI).
  • Esercizio n.1 dal compito del 20-01-2010 - (MSI protocol).
  • spreadsheet for this excercize (20-01-2010)
  • Esercizio n.1 dal compito del 16-01-2015 - (Competitive Protocol).
  •  LEZIONE #14 del 13-Nov-2023 (14:30-15:15)
    Modelli di Consistenza della Memoria: Sequential Consistency e rilascimento dei vincoli.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224lez14-multiprocessor_consistency.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • 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
  •  LEZIONE #60 del 13-Nov-2023 (15:15-16:00)
    Introduzione alle FPGA
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224lez60-fpga1.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • Optional reference: 1364-2001 - IEEE Standard Verilog Hardware Description Language
  • Optional reference: 1076-2019 - IEEE Standard for VHDL Language Reference Manual
  • Free book: L.H. Crockett et al. "The Zynq book"
  •  LEZIONE #63 del 15-Nov-2023 (08:30-10:00)
    Programmazione ad alto livello delle FPGA
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224lez63-fpga4.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • https://www.khronos.org/sycl
  •  ESERCITAZIONE/LAB #61 del 15-Nov-2023 (10:15-11:45)
    Accelerazione di applicazioni usando Vitis
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224es61-handson_vitis.pdf
  •  ESERCITAZIONE/LAB #19 del 20-Nov-2023 (14:30-16:00)
    Esercizi vari da precedenti esami.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224es19-multiprocessor_exercize3.pdf
  • RISORSE:
  • Esercizio n.2 dal compito del 18-12-2015 - (Coherence and Interleaving - Jacobi).
  • Esercizio n.3 dal compito del 10-02-2016 - (Consistency and use of FENCE).
  • Esercizio n.1 dal compito del 31-01-2011 - (Coherence - Bit-Vector vs. Single-Sharer).
  •  ESERCITAZIONE/LAB #20 del 22-Nov-2023 (08:30-10:00)
    Esercizi vari da precedenti esami.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224es20-coherency_exercize2.pdf
  • RISORSE:
  • Esercizio n.1 dal compito del 21-12-2016 - (Coherence - Dragon patterns).
  • Esercizio n.2 dal compito del 10-02-2016 - (Coherence - MSI vs MESI, 3 streams).
  •  ESERCITAZIONE/LAB #21 del 22-Nov-2023 (10:15-11:45)
    Esercizi vari da precedenti esami.
    PRESENTAZIONE/SLIDES/VIDEO:
  • IN PREPARAZIONE
  • RISORSE:
  • Esercizio n.1 dal compito del 18-12-2019 - (Coherence - MSI, TAS best/worst).
  • Esercizio n.1 dal compito del 23-12-2020 - (Coherence - Competitive, TAS best/worst).
  • Esercizio n.1 dal compito del 23-11-2022 - (Coherence - MESIF, TAS best/worst).
  •  27-Nov-2023 - FINAL TEST (13:45-14:30)

     27-Nov-2023 - FINAL TEST (14:30-16:00)

     LEZIONE #21 del 29-Nov-2023 (08:30-10:00)
    Introduzione alla programmazione parallela
    RIFERIMENTI BIBLIOGRAFICI:
  • OpenCilk @ MIT
  • Programming in Cilk
  •  LEZIONE #22 del 29-Nov-2023 (10:15-11:00)
    Parallelismo e Prestazioni
    RIFERIMENTI BIBLIOGRAFICI:
  • Reading: He et al., The Cilkview Scalability Analyzer
  • Optional reading: Frigo et al., The implementation of the Cilk-5 multithreaded language
  •  ESERCITAZIONE/LAB #11A del 29-Nov-2023 (11:00-11:45)
    Experimenting several programming models: Pthreads, OpenMP, TBB, Cilk
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224es11A-cilk_lab1.pdf
  •  ESERCITAZIONE/LAB #11B del 04-Dic-2023 (14:30-15:15)
    Metodologia per effettuare misurazioni di prestazioni; discussione sui progetti; visita al laboratorio di Architettura dei Calcolatori
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224es11B-methodology.pdf
  •  ESERCITAZIONE/LAB #11C del 04-Dic-2023 (15:15-16:00)
    Experimenting Cilk Tools.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224es11C-cilk_lab2.pdf
  •  LEZIONE #23 del 05-Dic-2023 (08:30-10:00)
    Introduzione al modello di programmazione CUDA. (PARTE A)
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224lez23-cuda1.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • D. B. Kirk, W. W. Hwu, Programming Massively Parallel Processors 3rd Edition, Morgan kaugfman, 2017: CAP.1, CAP.2.
  •  LEZIONE #23 del 06-Dic-2023 (08:30-09:15)
    Introduzione al modello di programmazione CUDA. (PARTE B)
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224lez23-cuda1.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • D. B. Kirk, W. W. Hwu, Programming Massively Parallel Processors 3rd Edition, Morgan kaugfman, 2017: CAP.1, CAP.2.
  •  LEZIONE #24 del 06-Dic-2023 (09:15-10:00)
    CUDA Threads, Atomics and Memory (PARTE A)
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224lez24-cuda2.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • D. B. Kirk, W. W. Hwu, Programming Massively Parallel Processors 3rd Edition, Morgan kaugfman, 2017: CAP.4, CAP.5.
  •  LEZIONE #24 del 06-Dic-2023 (10:15-11:45)
    CUDA Threads, Atomics and Memory (PARTE B)
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224lez24-cuda2.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • D. B. Kirk, W. W. Hwu, Programming Massively Parallel Processors 3rd Edition, Morgan kaugfman, 2017: CAP.4, CAP.5.
  •  ESERCITAZIONE/LAB #13 del 11-Dic-2023 (14:30-16:00)
    Overview of CUDA environment and simple examples.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224es13-cuda_lab0.pdf
  • RISORSE:
  • In the lab, download: PPF-LAB-V07.tgz initial examples
  • At home (you MUST have an NVIDIA card in your computer): docker pull robgiorgi/ppf-cuda-v07
  • CUDA CheatSheet
  • MATRIX-MULTIPLY CODE
  • (optional reference) CUDA Programming Guide
  • (optional reference) CUDA Runtime API
  •  LEZIONE #31 del 13-Dic-2023 (08:30-09:15)
    Clusters
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224lez31-clusters.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • Dubois 5.2.2, 5.3
  •  LEZIONE #32 del 13-Dic-2023 (09:15-10:00)
    Introduzione a MPI
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224lez32-mpi_introduction.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • Reference site for OpenMPI:https://www.open-mpi.org/doc/
  • Reference tutorial: A. Lumsdaine et al., OpenMPI Tutorial
  •  ESERCITAZIONE/LAB #16 del 13-Dic-2023 (10:15-11:45)
    Usare MPI
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224es16-mpi_lab.pdf
  • RISORSE:
  • hello.c HELLOWORLD MPI CODE
  • testmpi.c TESTMPI CODE
  • mmxmpi2.c MATRIX-MULTIPLICATION MPI CODE
  •  ESERCITAZIONE/LAB #17 del 18-Dic-2023 (14:30-16:00)
    Studio di specifici pattern paralleli in CUDA
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224es17-histogram_on_CUDA.pdf
  • RISORSE:
  • Esercizio n.2 dal compito del 19-12-2017 - (CUDA - Histogram).
  • CUDA - - Histogram Example Code
  •  ESERCITAZIONE/LAB #18 del 20-Dic-2023 (08:30-10:00)
    Studio di specifici pattern paralleli in Cilk/OpenMP/MPI
    RISORSE:
  • Esercizio n.2 dal compito del 18-12-2019 - (Cilk/Histogram).
  • Esercizio n.2 dal compito del 19-12-2018 - (OpenMP/Histogram).
  • Esercizio n.2 dal compito del 23-12-2020 - (MPI/Histogram).
  • CILK - Histogram Example Code
  • OPENMP - Histogram Example Code
  • MPI - Histogram Example Code
  •  ESERCITAZIONE/LAB #29 del 20-Dic-2023 (10:15-11:45)
    Revisione dei progetti del corso
    PRESENTAZIONE/SLIDES/VIDEO:
  • c224es29-ProjectReview.pdf
  • RISORSE:
    See also the dedicated project page and list of themes.
     dal 25-Dic-2023 al 03-Gen-2024: Nessuna Lezione
    VACANZA/PONTE
     08-Gen-2024: Nessuna Lezione
    NO LESSON





    Per visualizzare il contenuto delle presentazioni in formato Acrobat (.pdf) e' possibile utilizzare Acrobat Reader, rilasciato gratuitamente dalla Adobe (Download Acrobat Reader)