Ejecuta un análisis de genómica en un notebook de JupyterLab en Dataproc


En este instructivo, se muestra cómo ejecutar un análisis de genómica de una sola celda mediante Dask, NVIDIA RAPIDS y GPU, que puedes configurar en Dataproc Puedes configurar Dataproc a fin de ejecutar Dack con su programador independiente o con YARN para la administración de recursos.

En este instructivo, se configura Dataproc 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 Dataproc te permite combinar las funciones interactivas de Jupyter con el escalamiento de carga de trabajo que habilita Dataproc. Con Dataproc, puedes escalar horizontalmente tus cargas de trabajo desde una hasta muchas máquinas, las cuales puedes configurar con tantas GPU 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 Dataproc configurada con GPU, JupyterLab y componentes de código abierto.
  • Ejecutar un notebook en Dataproc

Costos

En este documento, usarás los siguientes componentes facturables de Google Cloud:

  • Dataproc
  • Cloud Storage
  • GPU
  • Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios. Es posible que los usuarios nuevos de Google Cloud califiquen para obtener una prueba gratuita.

    Cuando finalices las tareas que se describen en este documento, puedes borrar los recursos que creaste para evitar que continúe la facturación. Para obtener más información, consulta Cómo realizar una limpieza.

    Antes de comenzar

    1. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

      Ir al selector de proyectos

    2. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

    3. Habilita la API de Dataproc.

      Habilita la API

    Prepare el entorno

    1. Selecciona una ubicación para tus recursos.

      REGION=REGION
      

    2. Crea un bucket de Cloud Storage

      gsutil mb BUCKET -l REGION
      

    3. Copia las siguientes acciones de inicialización en el bucket.

      SCRIPT_BUCKET=gs://goog-dataproc-initialization-actions-REGION
      gsutil cp ${SCRIPT_BUCKET}/gpu/install_gpu_driver.sh BUCKET/gpu/install_gpu_driver.sh
      gsutil cp ${SCRIPT_BUCKET}/dask/dask.sh BUCKET/dask/dask.sh
      gsutil cp ${SCRIPT_BUCKET}/rapids/rapids.sh BUCKET/rapids/rapids.sh
      gsutil cp ${SCRIPT_BUCKET}/python/pip-install.sh BUCKET/python/pip-install.sh
      

    Crea un clúster de Dataproc con JupyterLab y componentes de código abierto

    1. 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: 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 GPU nvidia-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 de 21.06 de 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

    1. Abre la página Clústeres de la consola de Google Cloud en Dataproc.
      Abrir la página Clústeres
    2. Haz clic en tu clúster y, luego, en la pestaña Interfaces web.
    3. Haz clic en JupyterLab.
    4. Abre una new terminal en JupyterLab.
    5. Clona el repositorio clara-parabricks/rapids-single-cell-examples y verifica la rama dataproc/multi-gpu.

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

    6. En JupyterLab, navega al repositorio rapids-single-cell-examples/notebooks y abre el Notebook de Jupyter 1M_brain_gpu_analysis_uvm.ipynb.

    7. Para borrar todos los resultados del notebook, selecciona Edit > Clear All Outputs.

    8. Lee las instrucciones en las celdas del notebook. El notebook usa Dack y RAPIDS en Dataproc 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

    1. En la consola de Google Cloud, ve a la página Administrar recursos.

      Ir a Administrar recursos

    2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
    3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

    Borra los recursos individuales

    1. Borra tu clúster de Dataproc.
      gcloud dataproc clusters delete cluster-name \
          --region=region
      
    2. Borra el depósito
      gcloud storage buckets delete BUCKET_NAME

    ¿Qué sigue?