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 :

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 Dataproc Google Cloud .
    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.