In dieser Anleitung erfahren Sie, wie Sie Genomanalysen an Einzelzellen mithilfe von Dask, NVIDIA RAPIDS und GPUs ausführen, die Sie mit Dataproc konfigurieren können. Dataproc lässt sich so konfigurieren, dass Dask entweder mit seinem eigenständigen Planer oder mit YARN für die Ressourcenverwaltung ausgeführt wird.
In dieser Anleitung wird Dataproc mit einer gehosteten JupyterLab-Instanz konfiguriert, um ein Notebook mit einer Genomanalyse an Einzelzellen auszuführen. Mit einem Jupyter-Notebook in Dataproc können Sie die interaktiven Funktionen von Jupyter mit der Arbeitslastskalierung von Dataproc kombinieren. Mit Dataproc haben Sie die Möglichkeit, Ihre Arbeitslasten von einer auf viele Maschinen zu skalieren. Diese lassen sich mit beliebig vielen GPUs konfigurieren.
Diese Anleitung richtet sich an Data Scientists und Forscher. Dabei wird davon ausgegangen, dass Sie mit Python vertraut sind und Grundkenntnisse zu folgenden Themen haben:
Ziele
- Sie erstellen eine Dataproc-Instanz, die mit GPUs, JupyterLab und Open-Source-Komponenten konfiguriert ist.
- Sie führen ein Notebook in Dataproc aus.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.
Hinweis
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataproc API.
Umgebung vorbereiten
Wählen Sie einen Speicherort für Ihre Ressourcen aus.
REGION=REGION
Cloud Storage-Bucket erstellen
gcloud storage buckets create gs://BUCKET --location=REGION
Kopieren Sie die folgenden Initialisierungsaktionen in Ihren Bucket.
SCRIPT_BUCKET=gs://goog-dataproc-initialization-actions-REGION gcloud storage cp ${SCRIPT_BUCKET}/gpu/install_gpu_driver.sh BUCKET/gpu/install_gpu_driver.sh gcloud storage cp ${SCRIPT_BUCKET}/dask/dask.sh BUCKET/dask/dask.sh gcloud storage cp ${SCRIPT_BUCKET}/rapids/rapids.sh BUCKET/rapids/rapids.sh gcloud storage cp ${SCRIPT_BUCKET}/python/pip-install.sh BUCKET/python/pip-install.sh
Dataproc-Cluster mit JupyterLab und Open-Source-Komponenten erstellen
- Erstellen Sie einen Dataproc-Cluster.
gcloud dataproc clusters create CLUSTER_NAME \ --region REGION \ --image-version 2.0-ubuntu18 \ --master-machine-type n1-standard-32 \ --master-accelerator type=nvidia-tesla-t4,count=4 \ --initialization-actions BUCKET/gpu/install_gpu_driver.sh,BUCKET/dask/dask.sh,BUCKET/rapids/rapids.sh,BUCKET/python/pip-install.sh \ --initialization-action-timeout=60m \ --metadata gpu-driver-provider=NVIDIA,dask-runtime=yarn,rapids-runtime=DASK,rapids-version=21.06,PIP_PACKAGES="scanpy==1.8.1,wget" \ --optional-components JUPYTER \ --enable-component-gateway \ --single-node
Der Cluster hat die folgenden Attribute:
--region
: Die Region, in der sich der Cluster befindet.--image-version
:2.0-ubuntu18
, die Cluster-Image-Version.--master-machine-type
:n1-standard-32
, der Hauptmaschinentyp.--master-accelerator
: Der Typ und die Anzahl der GPUs auf dem Hauptknoten, viernvidia-tesla-t4
-GPUs.--initialization-actions
: Die Cloud Storage-Pfade zu den Installationsskripts, die GPU-Treiber, Dask, RAPIDS und zusätzliche Abhängigkeiten installieren.--initialization-action-timeout
: Das Zeitlimit für die Initialisierungsaktionen.--metadata
: Wird an die Initialisierungsaktionen übergeben, um den Cluster mit NVIDIA GPU-Treibern, mit dem eigenständigen Planer für Dask und mit der RAPIDS-Version21.06
zu konfigurieren.--optional-components
: Konfiguriert den Cluster mit der optionalen Jupyter-Komponente.--enable-component-gateway
: Ermöglicht den Zugriff auf Web-UIs im Cluster.--single-node
: Konfiguriert den Cluster als einzelnen Knoten (keine Worker).
Auf Jupyter-Notebook zugreifen
- Öffnen Sie die Seite Cluster in der Google Cloud Console von Dataproc.
Zur Seite "Cluster" - Klicken Sie auf den Cluster und dann auf den Tab Weboberflächen.
- Klicken Sie auf JupyterLab.
- Öffnen Sie in JupyterLab ein neues Terminal.
Klonen Sie das Repository
clara-parabricks/rapids-single-cell-examples
und prüfen Sie den Zweigdataproc/multi-gpu
.git clone https://github.com/clara-parabricks/rapids-single-cell-examples.git git checkout dataproc/multi-gpu
Wechseln Sie in JupyterLab zum Repository rapids-single-cell-examples/notebooks und öffnen Sie das Jupyter-Notebook 1M_brain_gpu_analysis_uvm.ipynb.
Wählen Sie Bearbeiten > Alle Ausgaben löschen aus, um alle Ausgaben im Notebook zu löschen.
Lesen Sie die Anleitung in den Zellen des Notebooks. Das Notebook verwendet Dask und RAPIDS in Dataproc, um Sie durch einen Workflow für eine einzellige RNA-Sequenzierung für 1 Million Zellen zu führen, einschließlich Verarbeitung und Visualisierung der Daten. Weitere Informationen finden Sie unter Genomanalysen an Einzelzellen mit RAPIDS beschleunigen.
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Projekt löschen
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Einzelne Ressourcen löschen
- Löschen Sie Ihren Dataproc-Cluster.
gcloud dataproc clusters delete cluster-name \ --region=region
-
Löschen Sie den Bucket:
gcloud storage buckets delete BUCKET_NAME
Nächste Schritte
- Weitere Informationen zu Dataproc
- Referenzarchitekturen, Diagramme, Anleitungen und Best Practices entdecken Weitere Informationen zu Cloud Architecture Center