Πολυπύρηνος και Κβαντικός Προγραμματισμός

Multicore and Quantum Programming – MQP

Υπεύθυνος Μαθήματος: Η. Σάββας,   Μονάδες ECTS: 7.5,   Εξάμηνο: Α (Γ)

Περιεχόμενο

Στo πλαίσιo του μαθήματος θα αναπτυχθούν οι θεματικές ενότητες: εισαγωγή στον παράλληλο προγραμματισμό, σχεδίαση παράλληλων αλγορίθμων. κατευθυνόμενοι μη-κυκλικοί γράφοι (DAGs) και Gantt charts, ανάλυση-σχεδίαση-υλοποίηση παράλληλων προγραμμάτων, παράλληλος προγραμματισμός σε επίπεδο CPU με χρήση της OpenMP, πολυπύρηνος προγραμματισμός σε κάρτες γραφικών με χρήση CUDA και OpenACC, υβριδικός προγραμματισμός με χρήση όλων ταυτόχρονα των προαναφερθέντων τεχνικών/εργαλείων, εισαγωγή στον κβαντικό προγραμματισμό με qiskit, κβαντικές πύλες, κατασκευή και εκτέλεση κβαντικών κυκλωμάτων, υλοποίηση βασικών κβαντικών αλγορίθμων (Deutsch – Josza, Bernstein–Vazirani, Grover), αλγόριθμοι μηχανικής μάθησης σε κβαντικούς υπολογιστές.

Προτεινόμενη Βιβλιογραφία

  • Berman, and J. L. Paul. Algorithms: Sequential, Parallel, and Distributed, Thomson, 2005
  • Michael J. Quinn. Parallel Programming in C with MPI and OpenMP, McGraw Hill Higher Education, 2003
  • Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar. Introduction to Parallel Computing, Pearson/Addison Wesley, 2003
  • Jason Sanders, and Edward Kandrot. “CUDA by Example: An Introduction to General-Purpose GPU Programming”, Addison-Wesley
  • John Cheng, and Max Grossman. “Professional CUDA C Programming”, John Viky and Sons, Inc.
  • Chang, Weng-Long, Vasilakos, Athanasios V. “Fundamentals of Quantum Programming in IBM’s Quantum Computers”, Springer, 2021
  • Eleanor Rieffel and Wolfgang Polak. “Quantum Computing – A Gentle Introduction”, The MIT Press, 2011
  • Michael A. Nielsen and Isaac L. Chuang. “Quantum Computation and Quantum Information”, Cambridge University Press, 2010
  • Qiskit documentation, url: https://qiskit.org/documentation/