En este tutorial se explica cómo hacer un análisis genómico de una sola célula con Dask, NVIDIA RAPIDS y GPUs, que puedes configurar en Dataproc. Puedes configurar Dataproc para que ejecute Dask con su programador independiente o con YARN para gestionar los recursos.
En este tutorial se configura Dataproc con una instancia de JupyterLab alojada para ejecutar un cuaderno que incluya un análisis genómico de una sola celda. Si usas un cuaderno de Jupyter en Dataproc, puedes combinar las funciones interactivas de Jupyter con el escalado de cargas de trabajo que ofrece Dataproc. Con Dataproc, puedes ampliar tus cargas de trabajo de una a muchas máquinas, que puedes configurar con tantas GPUs como necesites.
Este tutorial está dirigido a científicos y analistas de datos. Se da por supuesto que tienes experiencia con Python y conocimientos básicos sobre lo siguiente:
Objetivos
- Crea una instancia de Dataproc configurada con GPUs, JupyterLab y componentes de código abierto.
- Ejecuta un cuaderno en Dataproc.
Costes
En este documento, se utilizan los siguientes componentes facturables de Google Cloud:
Para generar una estimación de costes basada en el uso previsto,
utiliza la calculadora de precios.
Cuando termines las tareas que se describen en este documento, puedes evitar que se te siga facturando eliminando los recursos que has creado. Para obtener más información, consulta la sección Limpiar.
Antes de empezar
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Dataproc API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
Prepara tu entorno
Selecciona una ubicación para tus recursos.
REGION=REGION
Crea un segmento de Cloud Storage.
gcloud storage buckets create gs://BUCKET --location=REGION
Copia las siguientes acciones de inicialización en tu segmento.
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
Crear un clúster de Dataproc con JupyterLab y componentes de código abierto
- Crea un clúster de 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
El clúster tiene las siguientes propiedades:
--region
: la región en la que se encuentra tu clúster.--image-version
:2.0-ubuntu18
, la versión de la imagen del clúster--master-machine-type
:n1-standard-32
, el tipo de máquina principal.--master-accelerator
: el tipo y el número de GPUs del nodo principal, cuatro GPUsnvidia-tesla-t4
.--initialization-actions
: las rutas de Cloud Storage a las secuencias de comandos de instalación que instalan controladores de GPU, Dask, RAPIDS y dependencias adicionales.--initialization-action-timeout
: tiempo de espera de las acciones de inicialización.--metadata
: se pasa a las acciones de inicialización para configurar el clúster con los controladores de GPU de NVIDIA, el programador independiente de Dask y la versión21.06
de RAPIDS.--optional-components
: configura el clúster con el componente opcional de Jupyter.--enable-component-gateway
: permite acceder a las interfaces de usuario web del clúster.--single-node
: configura el clúster como un solo nodo (sin trabajadores).
Acceder al cuaderno de Jupyter
- Abre la página Clusters en la consola de Dataproc Google Cloud .
Abrir página Clústeres - Haga clic en su clúster y, a continuación, en la pestaña Interfaces web.
- Haz clic en JupyterLab.
- Abre una terminal nueva en JupyterLab.
Clona el
clara-parabricks/rapids-single-cell-examples
repositorio y consulta la ramadataproc/multi-gpu
.git clone https://github.com/clara-parabricks/rapids-single-cell-examples.git git checkout dataproc/multi-gpu
En JupyterLab, ve al repositorio rapids-single-cell-examples/notebooks y abre el cuaderno de Jupyter 1M_brain_gpu_analysis_uvm.ipynb.
Para borrar todas las salidas del cuaderno, selecciona Editar > Borrar todas las salidas.
Lee las instrucciones de las celdas del cuaderno. El cuaderno usa Dask y RAPIDS en Dataproc para guiarte por un flujo de trabajo de secuenciación de ARN de una sola célula en 1 millón de células, incluido el procesamiento y la visualización de los datos. Para obtener más información, consulta el artículo Accelerating Single Cell Genomic Analysis using RAPIDS (Acelerar el análisis genómico de células individuales con RAPIDS).
Limpieza
Para evitar que los recursos utilizados en este tutorial se cobren en tu cuenta de Google Cloud, elimina el proyecto que contiene los recursos o conserva el proyecto y elimina los recursos.
Eliminar el proyecto
- 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.
Eliminar recursos concretos
- Elimina tu clúster de Dataproc.
gcloud dataproc clusters delete cluster-name \ --region=region
-
Elimina el segmento:
gcloud storage buckets delete BUCKET_NAME
Siguientes pasos
- Descubre más información sobre Dataproc.
- Consulta arquitecturas de referencia, diagramas, tutoriales y prácticas recomendadas. Consulta nuestro Centro de arquitectura de Cloud.