Exécuter une analyse génomique dans un notebook JupyterLab sur Dataproc


Ce tutoriel vous explique comment exécuter une analyse génomique à une seule cellule à l'aide de Dask, de NVIDIA RAPIDS et de GPU, que vous pouvez configurer sur Dataproc. Vous pouvez configurer Dataproc pour exécuter Dask avec son programmeur autonome ou avec YARN pour la gestion des ressources.

Ce tutoriel configure Dataproc avec une instance JupyterLab hébergée afin d'exécuter un notebook contenant une analyse génomique à une seule cellule. L'utilisation d'un notebook Jupyter sur Dataproc vous permet de combiner les fonctionnalités interactives de Jupyter avec la mise à l'échelle de la charge de travail activée par Dataproc. Avec Dataproc, vous pouvez faire évoluer vos charges de travail d'une seule à plusieurs machines, que vous pouvez configurer avec autant de GPU que nécessaire.

Ce tutoriel s'adresse aux data scientists et aux chercheurs. Il part du principe que vous connaissez Python et que vous maîtrisez les composants de base suivants :

Objectifs

  • Créer une instance Dataproc configurée avec des GPU, JupyterLab et des composants Open Source.
  • Exécuter un notebook sur Dataproc.

Coûts

Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :

  • Dataproc
  • Cloud Storage
  • GPUs
  • Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

    Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.

    Avant de commencer

    1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    2. Make sure that billing is enabled for your Google Cloud project.

    3. Enable the Dataproc API.

      Enable the API

    Préparer votre environnement

    1. Sélectionnez un emplacement pour vos ressources.

      REGION=REGION
      

    2. Créer un bucket Cloud Storage

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

    3. Copiez les actions d'initialisation suivantes dans votre 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
      

    Créer un cluster Dataproc avec JupyterLab et des composants Open Source

    1. Créez un cluster Dataproc.
    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
    

    Le cluster possède les propriétés suivantes :

    • --region : région où se trouve votre cluster.
    • --image-version : 2.0-ubuntu18, version de l'image de cluster
    • --master-machine-type : n1-standard-32, type de machine principal.
    • --master-accelerator : type et nombre de GPU sur le nœud principal, quatre GPU nvidia-tesla-t4.
    • --initialization-actions : chemins d'accès Cloud Storage aux scripts d'installation qui installent les pilotes de GPU, Dask, RAPIDS et les dépendances supplémentaires.
    • --initialization-action-timeout : délai avant expiration des actions d'initialisation.
    • --metadata : transmis aux actions d'initialisation pour configurer le cluster avec des pilotes de GPU NVIDIA, le programmeur autonome pour Dask et la version RAPIDS 21.06.
    • --optional-components : configure le cluster avec le composant Jupyter facultatif.
    • --enable-component-gateway : permet d'accéder aux interfaces utilisateur Web du cluster.
    • --single-node : configure le cluster en tant que nœud unique (aucun nœud de calcul).

    Accéder au notebook Jupyter

    1. Ouvrez la page Clusters dans la console Google Cloud pour Dataproc.
      Ouvrir la page Clusters
    2. Cliquez sur votre cluster, puis sur l'onglet Interfaces Web.
    3. Cliquez sur JupyterLab.
    4. Ouvrez un nouveau terminal dans JupyterLab.
    5. Clonez le dépôt clara-parabricks/rapids-single-cell-examples et examinez la branche dataproc/multi-gpu.

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

    6. Dans JupyterLab, accédez au dépôt rapids-single-cell-examples/notebooks et ouvrez le notebook Jupyter 1M_brain_gpu_analysis_uvm.ipynb.

    7. Pour supprimer tous les éléments de sortie du notebook, sélectionnez Modifier > Supprimer tous les éléments de sortie.

    8. Lisez les instructions dans les cellules du notebook. Le notebook utilise Dask et RAPIDS sur Dataproc pour vous guider dans un workflow à une seule cellule RNA-seq sur un million de cellules, y compris le traitement et la visualisation des données. Pour en savoir plus, consultez la page Accélérer l'analyse génomique à une seule cellule à l'aide de RAPIDS.

    Effectuer un nettoyage

    Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.

    Supprimer le projet

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    Supprimer des ressources individuelles

    1. Supprimez votre cluster Dataproc.
      gcloud dataproc clusters delete cluster-name \
          --region=region
      
    2. Supprimez le bucket :
      gcloud storage buckets delete BUCKET_NAME

    Étape suivante