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 Managed Service pour Apache Spark. Vous pouvez configurer Managed Service for Apache Spark pour exécuter Dask avec son planificateur autonome ou avec YARN pour la gestion des ressources.
Ce tutoriel configure Managed Service for Apache Spark 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 Managed Service pour Apache Spark vous permet de combiner les fonctionnalités interactives de Jupyter avec la mise à l'échelle de la charge de travail activée par Managed Service pour Apache Spark. Avec Managed Service for Apache Spark, vous pouvez effectuer un scaling horizontal 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 Managed Service for Apache Spark configurée avec des GPU, JupyterLab et des composants Open Source.
- Exécutez un notebook sur Managed Service pour Apache Spark.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
Pour obtenir une estimation des coûts en fonction de votre utilisation prévue, utilisez le simulateur de coût.
Une fois que vous avez terminé les tâches décrites dans ce document, supprimez les ressources que vous avez créées pour éviter que des frais vous soient facturés. Pour en savoir plus, consultez la section Effectuer un nettoyage.
Avant de commencer
-
Dans la console Google Cloud , sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud .
Rôles requis pour sélectionner ou créer un projet
- Sélectionnez un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
-
Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (
roles/resourcemanager.projectCreator), qui contient l'autorisationresourcemanager.projects.create. Découvrez comment attribuer des rôles.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud .
-
activer l'API Dataproc ;
Rôles requis pour activer les API
Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (
roles/serviceusage.serviceUsageAdmin), qui contient l'autorisationserviceusage.services.enable. Découvrez comment attribuer des rôles.
Préparer votre environnement
Sélectionnez un emplacement pour vos ressources.
REGION=REGION
créer un bucket Cloud Storage ;
gcloud storage buckets create gs://BUCKET --location=REGION
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 Managed Service for Apache Spark avec JupyterLab et des composants Open Source
- Créez un cluster Managed Service pour Apache Spark.
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 GPUnvidia-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 RAPIDS21.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
- Ouvrez la page Clusters dans la console Google Cloud de Managed Service pour Apache Spark.
Ouvrir la page "Clusters" - Cliquez sur votre cluster, puis sur l'onglet Interfaces Web.
- Cliquez sur JupyterLab.
- Ouvrez un nouveau terminal dans JupyterLab.
Clonez le dépôt
clara-parabricks/rapids-single-cell-exampleset examinez la branchedataproc/multi-gpu.git clone https://github.com/clara-parabricks/rapids-single-cell-examples.git git checkout dataproc/multi-gpu
Dans JupyterLab, accédez au dépôt rapids-single-cell-examples/notebooks et ouvrez le notebook Jupyter 1M_brain_gpu_analysis_uvm.ipynb.
Pour supprimer tous les éléments de sortie du notebook, sélectionnez Modifier > Supprimer tous les éléments de sortie.
Lisez les instructions dans les cellules du notebook. Le notebook utilise Dask et RAPIDS sur Managed Service for Apache Spark 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
- Dans la console Google Cloud , accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.
Supprimer des ressources individuelles
- Supprimez votre cluster Managed Service pour Apache Spark.
gcloud dataproc clusters delete cluster-name \ --region=region
-
Supprimez le bucket :
gcloud storage buckets delete BUCKET_NAME
Étapes suivantes
- En savoir plus sur Managed Service pour Apache Spark
- Explorez des architectures de référence, des schémas, des tutoriels et des bonnes pratiques. Consultez notre Centre d'architecture cloud.