Abo
  • Services:
Anzeige
Versuchsaufbau im Quantenlabor in Innsbruck
Versuchsaufbau im Quantenlabor in Innsbruck (Bild: Werner Pluta)

Simulatoren: Quantencomputer werden heute schon programmiert

Versuchsaufbau im Quantenlabor in Innsbruck
Versuchsaufbau im Quantenlabor in Innsbruck (Bild: Werner Pluta)

Es gibt noch keinen praktisch verwendbaren Quantencomputer, aber Programmiersprachen dafür wurden längst entwickelt. Sie füllen ganze Datenbanken und Firmen hoffen, damit bereit für die Zukunft zu sein.
Von Frank Wunderlich-Pfeiffer

Jede Firma, die heute Quantencomputer entwickelt, bietet gleichzeitig Computersysteme mit Simulatoren mit eigenen Software Development Kits und APIs an. Denn Quantencomputer können nur verkauft werden, wenn es genügend erfahrene Programmierer gibt, die mit ihnen umgehen können. So verkauft die Firma Atos Simulatoren für Quantencomputer mit 30 bis 40 Qubits und setzt für deren Programmierung auf die eigene Programmiersprache aQasm (Atos Quantum Assembly Language). IBM stellt für die Quantum Experience dagegen neben SDK und API auch eine einfache grafische Benutzeroberfläche zur Verfügung.

Die theoretischen Grundlagen für die Programmierung sind längst gelegt. Im Jahr 1985 stellte David Deutsch fest, dass es möglich ist, mit Quantencomputern ein Analog zu einer Turingmaschine zu bauen. Damit eröffneten sich die gleichen Möglichkeiten zur Durchführung von Rechnungen wie bei herkömmlichen Computern, aber auch die gleichen Probleme bei der Programmierung - zumindest sobald ein funktionierender und ausreichend komplexer Quantencomputer zur Verfügung steht.

Anzeige

Zur Lösung eines Problems mit einem Quantencomputer müssen eine Reihe von Rechenoperationen durchgeführt werden. Für jede werden Quantengatter angewendet, um Qubits in einen bestimmten Zustand zu versetzen, ihren Zustand zu manipulieren, sie mit anderen Qubits zu verschränken oder sie auszulesen. Genauso wie in einem herkömmlichen Computer werden alle Rechnungen durch Anwendung von Logikgattern durchgeführt. Es muss nur in einem Programm beschrieben werden, nach welcher Logik die Gatter angewendet werden.

Turingmaschinen sind umständlich

Um ein Programm zu beschreiben, wäre es möglich, zurück zum Modell der Turingmaschine zu gehen. Programmiersprachen wie Brainfuck tun genau das. Ein Zeiger kann durch das Programm im Adressraum eines Speichers verschoben werden, an dessen Adresse der Speichereintrag um 1 erhöht oder vermindert werden kann. Zwei weitere Befehle dienen zur Eingabe und Ausgabe von Werten. Die letzten beiden sind eine Sprungmarke, an die das Programm zurückkehrt, wenn das Programm eine Kontrollmarke erreicht und der aktuelle Eintrag im Speicher nicht 0 ist.

Die Sprache besitzt damit alle nötigen Eigenschaften, um einen Computer mit jedem beliebigen Algorithmus zu programmieren. Wie der Name schon sagt, ist Brainfuck in der Praxis aber irrelevant. Es ist für Menschen kaum möglich, die Funktion eines Programms nachzuvollziehen, das in Brainfuck geschrieben wurde. Die Algorithmen in Programmen von Quantencomputern wurden aber zunächst auf genau dieser Ebene beschrieben.

Nachdem immer mehr Algorithmen für Quantencomputer gefunden wurden, stieg in den 1990er Jahren das Interesse an der Entwicklung formaler Programmiersprachen, die Rechenschritte besser abstrahieren können. Entsprechend gibt es schon seit 1998 Vorschläge für die Entwicklung einer Quanten-Assembler-Sprache und Ableitungen höherer Sprachen wie Fortran oder C. Danach wurden so viele Konzepte und Vorschläge eingereicht, dass der Computerwissenschaftler Simon Gay schon vor zehn Jahren eine Datenbank von Programmiersprachen für Quantencomputer angelegt hat. Darunter sind beispielsweise Sprachen wie QCL und QPL, die sich im Syntax und der Funktionalität an den etablierten Sprachen C und C++ orientieren.

Compiler müssen an die Hardware angepasst werden

2013 stellten US-Forscher die auf Haskall basierende Sprache Quipper vor, mit einigen sehr anschaulichen Beispielen. Quipper ermöglicht nicht nur die Manipulation von Qubits, sondern auch alle herkömmlichen Rechenaufgaben für klassische Computer, kann also beides miteinander verbinden. Solche Programmiersprachen dienen heute hauptsächlich zu Simulationszwecken und zur Suche nach neuen Algorithmen für Quantencomputer, obwohl es noch keine praxistauglichen Quantencomputer gibt. Das mag für theoretische Untersuchungen unerheblich sein. Aber bisher weiß niemand, welche physikalische Form ein Quantencomputer annehmen wird. Es stellt sich deshalb in der Praxis ein Problem für die Entwicklung von Compilern.

Der Compiler muss die Befehle im Programm in physikalische Manipulationen der Qubits umsetzen und sie optimieren. Aber je nach Architektur stecken hinter der Ausführung der Befehle völlig unterschiedliche Vorgänge. Eine Ionenfalle hat andere Eigenschaften als ein supraleitender Schwingkreis oder ein mit Magnetfeldern und Lasern angeregtes Rydberg-Atom in einem Kristalldefekt. Die Programmiersprachen werden deshalb entweder möglichst universell gehalten oder von den Entwicklern der Quantencomputer mit definiert.

Entsprechend abstrakt sind Programmiersprachen wie Quipper gehalten. Die vollständige Beschreibung der Teleportation eines Qubits benötigt in Quipper statt drei Seiten Text nur noch 33 Zeilen Code, inklusive der Definition grundlegender Funktionen, die normalerweise in einer Standardbibliothek vorhanden wären. Es ist ein gutes Beispiel, um zu zeigen, wie die Programmierung von Quantencomputern funktioniert.

Ein Programmierbeispiel mit Quipper 

eye home zur Startseite
jnv 08. Aug 2017

wtf. So eine blöde Einstellung...

Themenstart

divStar 08. Aug 2017

Ich würde dir gerne glauben, denn ich traue das allen genannten Akteuren absolut zu...

Themenstart

NitroX007 07. Aug 2017

@Tollversteher +1

Themenstart

Kommentieren



Anzeige

Stellenmarkt
  1. Bosch Software Innovations GmbH, Waiblingen, Immenstaad
  2. Deutsches Krebsforschungszentrum Abt. Personal- und Sozialwesen (M210), Heidelberg
  3. ADWEKO Consulting GmbH, Stuttgart
  4. Dagema eG, Willich


Anzeige
Hardware-Angebote
  1. 6,99€

Folgen Sie uns
       


  1. Linksys WRT32X

    Gaming-Router soll Ping um bis zu 77 Prozent reduzieren

  2. Mainframe-Prozessor

    IBMs Z14 mit 5,2 GHz und absurd viel Cache

  3. Android-App für Raspberry programmieren

    werGoogelnKann (kann auch Java)

  4. Aldebaran Robotics

    Roboter Pepper soll bei Beerdigungen in Japan auftreten

  5. Google Express

    Google und Walmart gehen Shopping-Kooperation ein

  6. Firmen-Shuttle

    Apple baut autonomes Auto - aber nicht für jeden

  7. Estcoin

    Estland könnte eigene Kryptowährung erschaffen

  8. Chrome Enterprise

    Neues Abomodell soll Googles Chrome OS in Firmen etablieren

  9. Blue Byte

    Anno 1800 mit Straßenschlachten und dicker Luft

  10. aCar

    Elektrolaster für Afrika entsteht in München



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Schifffahrt: Yara Birkeland wird der erste autonome E-Frachter
Schifffahrt
Yara Birkeland wird der erste autonome E-Frachter
  1. Sea Bubbles Tragflächen-Elektroboote kommen nach Paris
  2. Honolulu Strafe für Handynutzung auf der Straße
  3. Yara Birkeland Autonomes Containerschiff soll elektrisch fahren

Nach Anschlag in Charlottesville: Nazis raus - aber nur aus PR-Gründen
Nach Anschlag in Charlottesville
Nazis raus - aber nur aus PR-Gründen
  1. Bundesinnenministerium Neues Online-Bürgerportal kostet 500 Millionen Euro
  2. EU-Transparenz EuGH bekräftigt nachträglichen Zugang zu Gerichtsakten
  3. Rücknahmepflicht Elektronikschrott wird kaum zurückgegeben

Radeon RX Vega 64 im Test: Schnell und durstig mit Potenzial
Radeon RX Vega 64 im Test
Schnell und durstig mit Potenzial
  1. Vega 64 Strix ausprobiert Asus' Radeon macht fast alles besser
  2. Radeon RX Vega Mining-Treiber steigert MH/s deutlich
  3. Radeon RX Vega 56 im Test AMD positioniert sich in der Mitte

  1. Re: Die Matratze machts!

    bazoom | 13:57

  2. Re: Warum nicht Anno 1863 ?

    _j_b_ | 13:56

  3. Re: Wenn man denn Laden könnte...

    dEEkAy | 13:54

  4. Re: Bei 0:27 sieht man viele through hole components

    Arsenal | 13:52

  5. Re: das teil kann afrika nur helfen...

    _2xs | 13:52


  1. 12:45

  2. 12:30

  3. 12:05

  4. 12:00

  5. 11:52

  6. 11:27

  7. 11:03

  8. 10:48


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel