Overordnede kursusmål
Klassiske computere bruger compilere til at oversætte højniveau
programmeringssprog til specifikke operationer af computerens
hardwarearkitektur. Denne afkobling af programmeringssproget fra
den underliggende hardwarearkitektur har gjort det muligt for os at
bevæge os væk fra Assembly programmering på lavt niveau og udvikle
komplekse programmer, der fungerer på tværs af forskellige
computerarkitekturer, hvilket effektivt muliggør den digitale
transformation.
Efterhånden som kvantecomputere bliver en realitet, vil
kvantekompilere være nødvendige for at hæve abstraktionsniveauet
for kvanteprogrammering. Mens der observeres imponerende resultater
i den fysiske realisering af kvantecomputere, mangler udviklingen
af kvantekompilere stadig. I dag udtrykkes kvanteprogrammer som
kvantekredsløb, der arbejder på enkelte qubits.
Baseret på klassisk compilerteori og kvanteinformation vil dette
kursus dække de komponenter, der er nødvendige for at udvikle en
kvantekompiler, som kan oversætte et højniveau programmeringssprog
til mulige kvantekredsløb og kortlægge disse kredsløb på qubits af
målkvantecomputerarkitekturen.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
- forklare strukturen for optimerende compilere og
funktionaliteten af de forskellige faser
- forklare forholdet mellem højt niveau sprog,
mellemrepræsentation, analyser og optimeringer
- forklare processen af kodegenerering for kvantecomputere og
forskellen på at genererer kode for forskellige kvantecomputere i
NISQ-æraen
- implementere vigtige optimeringsfaser
- forklare og udlede analytiske modeller for ydeevne
- evaluere ydeevnen af kvantecomputere
- forklare forholdet mellem supercomputere og
kvantecomputere
- identificere ydeevne-flaskehalse i
kvantecomputersystemer
Kursusindhold
Kompiler teori: Kompileringsprocessen; Mellemrepræsentationer;
Optimering af kvantekredsløb: Kredsløbskomprimering; Dekomponere;
Optimal routing;
Afhjælpning af fejl.
Målretning mod kvantecomputere i NISQ-æraen
Integration af QC med klassisk databehandling
Sidst opdateret
02. maj, 2024