En este instructivo, se muestra cómo ejecutar un análisis de genómica de una sola celda con Dask, NVIDIA RAPIDS y GPU, que puedes configurar en Managed Service for Apache Spark. Puedes configurar Managed Service for Apache Spark para ejecutar Dask con su programador independiente o con YARN para la administración de recursos.
En este instructivo, se configura Managed Service for Apache Spark con una instancia de JupyterLab alojada para ejecutar un notebook con un análisis de genómica de una sola celda. El uso de un notebook de Jupyter en Managed Service para Apache Spark te permite combinar las funciones interactivas de Jupyter con el escalamiento de carga de trabajo que habilita Managed Service para Apache Spark. Con el servicio administrado para Apache Spark, puedes escalar horizontalmente tus cargas de trabajo desde una hasta muchas máquinas, las cuales puedes configurar con tantas GPUs como necesites.
Este instructivo está dirigido a investigadores y científicos de datos. Se supone que tienes experiencia con Python y que tienes conocimientos básicos sobre lo siguiente:
Objetivos
- Crear una instancia de Managed Service for Apache Spark configurada con GPUs, JupyterLab y componentes de código abierto
- Ejecuta un notebook en el servicio administrado para Apache Spark.
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
Para generar una estimación de costos en función del uso previsto,
usa la calculadora de precios.
Cuando completes las tareas que se describen en este documento, podrás borrar los recursos que creaste para evitar que se te siga facturando. Para obtener más información, consulta Realiza una limpieza.
Antes de comenzar
-
En la consola de Google Cloud , en la página del selector de proyectos, selecciona o crea un proyecto de Google Cloud .
Roles necesarios para seleccionar o crear un proyecto
- Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
-
Habilita la API de Dataproc
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene el permisoserviceusage.services.enable. Obtén más información para otorgar roles.
Prepara el entorno
Selecciona una ubicación para tus recursos.
REGION=REGION
Crear un bucket de Cloud Storage
gcloud storage buckets create gs://BUCKET --location=REGION
Copia las siguientes acciones de inicialización en tu 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
Crea un clúster de Managed Service for Apache Spark con JupyterLab y componentes de código abierto
- Crea un clúster de Managed Service para 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
El clúster tiene las siguientes propiedades:
--region: Es la región en la que se encuentra el clúster.--image-version:2.0-ubuntu18, es la versión con imágenes del clúster.--master-machine-type:n1-standard-32, es el tipo de máquina principal.--master-accelerator: Es el tipo y el recuento de GPU en el nodo principal, cuatro GPUnvidia-tesla-t4.--initialization-actions: Son 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: Es el tiempo de espera para las acciones de inicialización.--metadata: se pasa a las acciones de inicialización a fin de configurar el clúster con los controladores de GPU de NVIDIA, el programador independiente para Dask y la versión de21.06de RAPIDS.--optional-components: Configura el clúster con el componente opcional de Jupyter.--enable-component-gateway: Permite el acceso a las IU web en el clúster.--single-node: Configura el clúster como un solo nodo (sin trabajadores).
Accede al notebook de Jupyter
- Abre la página Clústeres en la consola del servicio administrado para Apache Spark Google Cloud .
Abrir la página Clústeres - Haz clic en tu clúster y, luego, en la pestaña Interfaces web.
- Haz clic en JupyterLab.
- Abre una new terminal en JupyterLab.
Clona el repositorio
clara-parabricks/rapids-single-cell-examplesy verifica la ramadataproc/multi-gpu.git clone https://github.com/clara-parabricks/rapids-single-cell-examples.git git checkout dataproc/multi-gpu
En JupyterLab, navega al repositorio rapids-single-cell-examples/notebooks y abre el Notebook de Jupyter 1M_brain_gpu_analysis_uvm.ipynb.
Para borrar todos los resultados del notebook, selecciona Edit > Clear All Outputs.
Lee las instrucciones en las celdas del notebook. El notebook usa Dask y RAPIDS en el servicio administrado de Apache Spark para guiarte a través de un flujo de trabajo de RNA-seq de una sola celda en 1 millón de celdas, incluido el procesamiento y la visualización de los datos. Para obtener más información, consulta Acelera el análisis genómico de una sola celda mediante RAPIDS.
Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.
Borra el proyecto
- En la Google Cloud consola, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
Borra los recursos individuales
- Borra tu clúster de Managed Service para Apache Spark.
gcloud dataproc clusters delete cluster-name \ --region=region
-
Borra el bucket:
gcloud storage buckets delete BUCKET_NAME
¿Qué sigue?
- Obtén más información sobre el Servicio administrado para Apache Spark.
- Explora las arquitecturas de referencia, los diagramas, los instructivos y las prácticas recomendadas. Consulta nuestro Cloud Architecture Center.