Genomanalyse in einem JupyterLab-Notebook ausführen

In dieser Anleitung erfahren Sie, wie Sie eine Einzelzellengenomikanalyse mit Dask, NVIDIA CUDA-X und GPUs ausführen, die Sie in Managed Service for Apache Spark konfigurieren können. Sie können Managed Service for Apache Spark so konfigurieren, dass Dask entweder mit dem eigenständigen Planer oder mit YARN für die Ressourcenverwaltung ausgeführt wird.

In dieser Anleitung wird Managed Service for Apache Spark mit einer gehosteten JupyterLab-Instanz konfiguriert, um ein Notebook mit einer Einzelzell-Genomikanalyse auszuführen. Mit einem Jupyter-Notebook in Managed Service for Apache Spark können Sie die interaktiven Funktionen von Jupyter mit der Arbeitslastskalierung von Managed Service for Apache Spark kombinieren. Mit Managed Service for Apache Spark können Sie Ihre Arbeitslasten von einer auf viele Maschinen horizontal skalieren, die Sie mit so vielen GPUs konfigurieren können, wie Sie benötigen.

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

  • Erstellen Sie eine Managed Service for Apache Spark-Instanz, die mit GPUs, JupyterLab und Open-Source-Komponenten konfiguriert ist.
  • Notebook in Managed Service for Apache Spark ausführen

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Cloud de Confiance by S3NS:

  • Managed Service for Apache Spark
  • Cloud Storage
  • GPUs
  • 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

    1. Wählen Sie in der Cloud de Confiance Console auf der Seite für die Projektauswahl ein Projekt von Cloud de Confiance aus oder erstellen Sie eines.

      Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts

      • Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
      • Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Project Creator“ (roles/resourcemanager.projectCreator), die die Berechtigung resourcemanager.projects.create enthält. Informationen zum Zuweisen von Rollen

      Zur Projektauswahl

    2. Prüfen Sie, ob die Abrechnung für Ihr Cloud de Confiance -Projekt aktiviert ist.

    3. Aktivieren Sie die Dataproc API, falls sie noch nicht aktiviert ist.

      Erforderliche Rollen zum Aktivieren von APIs

      Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

      API aktivieren

    Umgebung vorbereiten

    1. Wählen Sie einen Standort für Ihre Ressourcen aus.

      REGION=REGION
      

    2. Cloud Storage-Bucket erstellen

      gcloud storage buckets create gs://BUCKET --location=REGION
      

    3. 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
      

    Managed Service for Apache Spark-Cluster mit JupyterLab und Open-Source-Komponenten erstellen

    1. Erstellen Sie einen Managed Service for Apache Spark-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, vier nvidia-tesla-t4-GPUs.
    • --initialization-actions: die Cloud Storage-Pfade zu den Installationsskripts, mit denen GPU-Treiber, Dask, CUDA-X und zusätzliche Abhängigkeiten installiert werden.
    • --initialization-action-timeout: Das Zeitlimit für die Initialisierungsaktionen.
    • --metadata: Wird an die Initialisierungsaktionen übergeben, um den Cluster mit NVIDIA-GPU-Treibern, dem eigenständigen Planer für Dask und der CUDA-X-Version 21.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

    1. Öffnen Sie in der Managed Service for Apache Spark Cloud de Confiance -Konsole die Seite Cluster.
      Zur Seite „Cluster“
    2. Klicken Sie auf den Cluster und dann auf den Tab Weboberflächen.
    3. Klicken Sie auf JupyterLab.
    4. Öffnen Sie in JupyterLab ein neues Terminal.
    5. Klonen Sie das Repository clara-parabricks/rapids-single-cell-examples und checken Sie den Zweig managed-spark/multi-gpu aus.

      git clone https://github.com/clara-parabricks/rapids-single-cell-examples.git
      git checkout managed-spark/multi-gpu
      

    6. Wechseln Sie in JupyterLab zum Repository rapids-single-cell-examples/notebooks und öffnen Sie das Jupyter-Notebook 1M_brain_gpu_analysis_uvm.ipynb.

    7. Wählen Sie Bearbeiten > Alle Ausgaben löschen aus, um alle Ausgaben im Notebook zu löschen.

    8. Lesen Sie die Anleitung in den Zellen des Notebooks. Das Notebook verwendet Dask und CUDA-X in Managed Service for Apache Spark, um Sie durch einen Single-Cell-RNA-Seq-Workflow mit 1 Million Zellen zu führen, einschließlich der Verarbeitung und Visualisierung der Daten. Weitere Informationen finden Sie unter Accelerating Single Cell Genomic Analysis using CUDA-X.

    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

    1. Wechseln Sie in der Cloud de Confiance -Console zur Seite Ressourcen verwalten.

      Zur Seite „Ressourcen verwalten“

    2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
    3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

    Einzelne Ressourcen löschen

    1. Managed Service for Apache Spark-Cluster löschen
      gcloud dataproc clusters delete cluster-name \
          --region=region
      
    2. Löschen Sie den Bucket:
      gcloud storage buckets delete BUCKET_NAME

    Nächste Schritte