REDPIXEL - stock.adobe.com
Intel DevCloud: Sandbox mit Zugriff auf Intel-Software
Intel DevCloud ist eine Sandbox für Entwickler, die bei der Programmierung von architekturübergreifenden Anwendungen mit OpenVino oder High-Level Design unterstützt.
Die Intel DevCloud for oneAPI bietet ein Programmiermodell, mit dem Entwickler einheitliche, architektur- und anbieterübergreifende Programme schreiben können. Wir haben das Thema bereits in einem anderen Artikel einleitend behandelt.
Im Zentrum dabei steht die Intel Developer Cloud. Dabei handelt es sich um eine Sandbox für Entwickler, die bei den verschiedenen Schritten der Entwicklung mit OpenVino sowie High-Level Design (HLD) wie Intel OneAPI, OpenCL, HLS und RTL unterstützen.
Anwendungen und Workloads auf einem Cluster testen
Mit Intel DevCloud können Entwickler ihre Programme und Workloads zum Beispiel auf einem Cluster mit aktueller Intel-Hardware testen. Der Zugang erfolgt über ein Linux-Terminal, es gibt aber parallel die Möglichkeit, Microsoft Visual Studio damit zu verknüpfen. Abonnenten der Intel Developer Cloud erhalten kostenlosen Zugriff auf die verschiedenen Intel oneAPI-Toolkits und Komponenten.
Für die Intel Developer Cloud ist zunächst eine kostenlose Registrierung notwendig. Nach der Anmeldung und dem Ausfüllen der erforderlichen Angaben erhält der Benutzer die erforderlichen Anmeldedaten für die Registrierung.
Verbindungsaufbau zur Intel DevCloud mit einem Jupyter Notebook
Die Verbindung zur Intel DevCloud lässt sich auch mit Jupyter Notebooks aufbauen. Ein Beispiel findet man im DevCloud-Menü über Connect with JupyterLab und der Auswahl von Launch JupyterLab.
Nach der erfolgreichen Verbindung erstellt Intel DevCloud eine neue Sitzung, in der mit einem JupyterLab-Zugang Projekte auf Basis von Intel oneAPI entwickelt werden können. Das Notebook basiert auf Python 3.8 und einem Intel oneAPI-Kernel. Bis die Sitzung bereitsteht, kann es einige Minuten dauern.
Die Sitzung hat ein Zeitlimit. Wieviel Zeit bleibt, lässt sich in einer Terminal-Sitzung in der Intel DevCloud über Launcher – Other – Terminal herausfinden. Die Sekunden bis zum Logout werden mit dem folgenden Befehl angezeigt:
qstat -f $PBS_JOBID | grep Walltime.Remaining
Ist das Limit abgelaufen, lassen sich jederzeit neue Sitzungen starten. Das geht zum Beispiel über die Adresse jupyter.oneapi.devcloud.intel.com. Nutzen Entwickler die Umgebung für eigenen Code, muss darauf geachtet werden, das man das Jupyter-Notebook unter File – Save Current Workspace speichert. Es erfolgt keine automatische Speicherung der Daten.
Intel stellt das Notebook auf einem Server in der Cloud bereit. Der Server ist dabei nicht für einen Entwickler reserviert, andere Nutzer können den gleichen Server verwenden, allerdings nicht in der gleichen Sitzung. Die eigenen Daten bleiben somit geschützt. Es kann aber sein, dass ein Server ausgelastet ist, wenn viele Entwickler gleichzeitig ressourcenintensive Workloads testen. Generell lässt sich diese Umgebung auch für das Training von KI-Modellen einsetzen. Wieviele logische CPUs und Arbeitsspeicher in der aktuellen Sitzung bereitstehen, lässt sich mit folgenden Befehlen prüfen:
taskset -c -p $$
/usr/local/bin/qstat -f $PBS_JOBID | grep vmem
Lokale Verbindung per SSH für Remote Work aufbauen
Über das Terminal können Entwickler mit den Knoten des DevCloud-Servers interagieren. Das Terminal steht über den Menüpunkt Launcher unter Other und Terminal zur Verfügung. Die geöffneten Terminals sind auf der linken Seite zu finden. Die Bedienung des Terminals entspricht der normalen Vorgehensweise in Linux. Das aktuelle Arbeitsverzeichnis zeigt der Befehl pwd an, mit ip addr show lässt sich die IP-Konfiguration der Sitzung und des Knotens anzeigen. Die verschiedenen Befehle findet man auf der Website der Intel Developer Cloud.
Der Verbindungsaufbau zur DevCloud lässt sich mit SSH-Tools in Windows, Linux und anderen Betriebssystemen aufbauen. Dadurch ist es möglich, lokal zu arbeiten und parallel Tests über die SSH-Verbindung oder mit Visual Studio zur DevCloud zu schicken. Das ist vor allem für den Remote-Einsatz praktisch, da Entwickler mit ihrem Rechner oder Notebook programmieren und für Tests den Intel-Cluster verwenden können.
Generell ist kein SSH-Zugriff notwendig, da über das Jupyter-Notebook und das darin enthaltene Terminal im Webbrowser die gleichen Funktionen zur Verfügung stehen. Über diesen Weg können auch Inhalte aus der Zwischenablage in das Fenster integriert werden. Die Sitzungen haben außerdem Zugriff auf das Internet. Dadurch können Entwickler Repositories im Internet verwenden und mit Diensten wie GitHub arbeiten. Der Befehl git ist standardmäßig in den Sitzungen vorhanden.
Beispiele für die Verwendung der DevCloud kann man mit den beiden folgenden Befehlen herunterladen:
git clone https://github.com/oneapi-src/oneAPI-samples.git
cd oneAPI-samples/DirectProgramming/C++SYCL/DenseLinearAlgebra/vector-add/
Die gezeigten Möglichkeiten sind nur einige Beispiele dafür, was sich mit der Intel DevCloud möglich ist. Es lohnt sich für Entwickler, einen Blick auf die verschiedenen Optionen der DevCloud zu werfen.