Ejecutar un análisis genómico en un cuaderno de JupyterLab en Dataproc


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:

  • Dataproc
  • Cloud Storage
  • GPUs
  • Para generar una estimación de costes basada en el uso previsto, utiliza la calculadora de precios.

    Los usuarios nuevos Google Cloud pueden disfrutar de una prueba gratuita.

    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

    1. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

      Go to project selector

    2. Verify that billing is enabled for your Google Cloud project.

    3. 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 the serviceusage.services.enable permission. Learn how to grant roles.

      Enable the API

    Prepara tu entorno

    1. Selecciona una ubicación para tus recursos.

      REGION=REGION
      

    2. Crea un segmento de Cloud Storage.

      gcloud storage buckets create gs://BUCKET --location=REGION
      

    3. 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

    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: 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 GPUs nvidia-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ón 21.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

    1. Abre la página Clusters en la consola de Dataproc Google Cloud .
      Abrir página Clústeres
    2. Haga clic en su clúster y, a continuación, en la pestaña Interfaces web.
    3. Haz clic en JupyterLab.
    4. Abre una terminal nueva en JupyterLab.
    5. Clona el clara-parabricks/rapids-single-cell-examples repositorio y consulta 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, ve al repositorio rapids-single-cell-examples/notebooks y abre el cuaderno de Jupyter 1M_brain_gpu_analysis_uvm.ipynb.

    7. Para borrar todas las salidas del cuaderno, selecciona Editar > Borrar todas las salidas.

    8. 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

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    Eliminar recursos concretos

    1. Elimina tu clúster de Dataproc.
      gcloud dataproc clusters delete cluster-name \
          --region=region
      
    2. Elimina el segmento:
      gcloud storage buckets delete BUCKET_NAME

    Siguientes pasos