© Iurii Motov/shutterstock.com
.NET für Quantenrechner – Teil 1

Q# – Einstieg in die Quantenwelt


Neuartige Technologien durchlaufen oft einen an Sinusschwingungen erinnernden Interessenzyklus: Eine Zeit lang haben alle Interesse daran, um die Technologie danach wieder für einige Zeit zu vergessen. Im Fall von Quanten-Computing ist derzeit ein Höhepunkt erreicht, weshalb Microsoft mit dem Quantum Development Kit ein Entwicklungskit zur Verfügung stellt.

Dass Quantencomputer im Laufe der letzten Jahre viel Aufmerksamkeit erhalten haben, liegt unter anderem am chinesischen Photonen-Quantencomputer – er hat, zumindest laut den Aussagen chinesischer Forscher, den bisher im Hause Google als Marktführer betrachteten Sycamore deklassiert. Über die genauen Leistungsdaten wollen wir uns an dieser Stelle nicht weiter streiten, denn interessanter ist für uns ein Blick auf die vom BSI bereitgestellte „Entwicklungstabelle“ [1], die die Leistungsfähigkeit von Quantencomputern auf einer Skala von A bis E zu quantifizieren sucht. Der chinesische Rechner ist in der in Abbildung 1 gezeigten Übersicht dabei übrigens noch gar nicht registriert.

hanna_qsharp_teil1_1.tif_fmt1.jpgAbb. 1: Das BSI geht in Bezug auf Quantencomputer derzeit bisher nur bis zu C [1]

Die Microsoft’sche Strategie

Satya Nadellas Übernahme bei Microsoft führte zu einem radikalen Umdenken im Hause Microsoft. Anstatt dem PT-Nutzer bzw. -Entwickler alles aus einer Hand anbieten zu wollen, wählt man in Redmond nun in manchen Fällen noble Zurückhaltung. Analog zum amerikanischen Gold Rush, in dem man vor allem durch das Verkaufen von Schaufeln, das Betreiben eines Saloons und ähnliche Unterstützungsdienstleistungen sicher zu einem erklecklichen Einkommen gelangen konnte, setzt Microsoft beim QDK ebenfalls auf das Anbieten von Entwicklungswerkzeugen.

Nicht komplett agnostisch

In der Dokumentation von Q# finden sich immer wieder Hinweise, dass Microsoft die Einführung einer „Azure für Quantum“-Plattform plant, in der man in Zukunft Q#-Payloads auf realen Quantenrechnern ausführen kann.

Wo bzw. wie man diese einsetzt, bleibt der Hardwareentwicklung überlassen. Das bedeutet aber nicht, dass man als an Quantentechnologie interessierter Entwickler zum Zeitpunkt der Drucklegung einen Quantenrechner haben muss. Für kleinere Gehversuche reicht es aus, die quantenmechanischen Prozesse auf einem klassischen Computer zu simulieren. Dass Microsoft einen diesbezüglichen Simulator zur Verfügung stellt, dürfte in Anbetracht des Erscheinens dieses Artikels niemanden wirklich überraschen.

Im Bereich der Entwicklungswerkzeuge zeigt sich Microsoft ebenfalls agnostisch – die Downloadeinstiegsseite [2] bietet Dutzende von Werkzeug- und Arbeitsumgebungskonfigurationen an (Abb. 2).

hanna_qsharp_teil1_2.tif_fmt1.jpgAbb. 2: Jedem Quantentierchen sein Pläsierchen [2]

Wir wollen mit .NET als Arbeitsumgebung starten, weshalb die für uns vorgesehene Option Q# and .NET (C#, F#) lautet. Interessanterweise führt das Anklicken dieses Links nur dazu, dass uns Microsoft bei einer weiteren Installationsanleitung absetzt. Wer wirklich mit Q# programmieren möchte, benötigt eine brandaktuelle Version von Visual Studio 2019. Nach dem Einspielen der diversen Updates müssen wir im Visual Studio Installer noch darauf achten, unbedingt die Payload Plattformübergreifende .NET-Core-Entwicklung herunterzuladen und zu installieren. Nach den Vorbereitungen dürfen wir das eigentliche Entwicklungskit aus dem Visual Studio Marketplace [3] herunterladen. Zum Zeitpunkt der Drucklegung lautet der Dateiname Microsoft.Quantum.Development.Kit-0.14.2011.120240.vsix. Das Produkt installieren wir danach so, wie wir es auch von jeder anderen VSIX-Anwendung erwarten würden.

Lohn der Mühen ist, dass der in Visual Studio enthaltene Projektgenerator nun eine Gruppe neuer Vorlagen anbietet, die auf der Programmiersprache Q# basieren. Wir werden uns in den folgenden Schritten für die Vorlage einer Q#-Anwendung entscheiden; als Namen wollen wir den String „SUSQSharpApplication1“ vergeben. Visual Studio startet daraufhin mit einer fertig konfigurierten Projektvorlage. In manchen Fällen erscheint eine Fehlermeldung, die auf das Nichtvorhandensein bestimmter .NET Core SDKs hinweist. Entscheiden wir uns in diesem Pop-up-Fenster für die Option Download, öffnet das Quantum Development Kit eine Downloadwebseite im Browser. Dort suchen wir nach der Komponente SDK 3.1.404, laden sie herunter und führen einen Neustart durch, um die für das QDK erforderlichen Ressourcen auf unserer Workstation bereitzustellen.

Ein sehr interessanter Fehler ist eine Meldung der Bauart „Im Paket fehlt die erforderliche NUSPEC-Datei. Pfad: C:\Users\tamha\.nuget\packages\microsoft.csharp\4.4.1“, die das Kompilieren von auf Q# basierenden Projekten blockiert. In diesem Fall laden Sie in einem ersten Schritt das zuvor erwähnte SDK [4] herunter. Im nächsten Schritt öffnen Sie die unter Extras | Nuget-Paket-M...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang