Execute uma análise genómica num bloco de notas do JupyterLab no Dataproc

Este tutorial mostra como executar uma análise genómica de célula única usando o Dask, o NVIDIA RAPIDS e as GPUs, que pode configurar no Dataproc. Pode configurar o Dataproc para executar o Dask com o respetivo programador autónomo ou com o YARN para a gestão de recursos.

Este tutorial configura o Dataproc com uma instância do JupyterLab alojada para executar um bloco de notas com uma análise genómica de célula única. A utilização de um bloco de notas do Jupyter no Dataproc permite-lhe combinar as capacidades interativas do Jupyter com o dimensionamento da carga de trabalho que o Dataproc permite. Com o Dataproc, pode dimensionar as suas cargas de trabalho de uma para várias máquinas, que pode configurar com o número de GPUs de que precisa.

Este tutorial destina-se a cientistas de dados e investigadores. Pressupõe que tem experiência com o Python e conhecimentos básicos do seguinte:

Objetivos

  • Crie uma instância do Dataproc configurada com GPUs, JupyterLab e componentes de código aberto.
  • Execute um bloco de notas no Dataproc.

Custos

Neste documento, usa os seguintes componentes faturáveis do Google Cloud:

  • Dataproc
  • Cloud Storage
  • GPUs
  • Para gerar uma estimativa de custos com base na sua utilização projetada, use a calculadora de preços.

    Os novos Google Cloud utilizadores podem ser elegíveis para uma avaliação gratuita.

    Quando terminar as tarefas descritas neste documento, pode evitar a faturação contínua eliminando os recursos que criou. Para mais informações, consulte o artigo Limpe.

    Antes de começar

    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

    Prepare o seu ambiente

    1. Selecione uma localização para os seus recursos.

      REGION=REGION
      

    2. Crie um contentor do Cloud Storage.

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

    3. Copie as seguintes ações de inicialização para o seu contentor.

      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
      

    Crie um cluster do Dataproc com o JupyterLab e componentes de código aberto

    1. Crie um cluster do 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
    

    O cluster tem as seguintes propriedades:

    • --region: a região onde o cluster está localizado.
    • --image-version: 2.0-ubuntu18, a versão da imagem do cluster
    • --master-machine-type: n1-standard-32, o tipo de máquina principal.
    • --master-accelerator: o tipo e a quantidade de GPUs no nó principal, quatro GPUs nvidia-tesla-t4.
    • --initialization-actions: os caminhos do Cloud Storage para os scripts de instalação que instalam controladores de GPU, Dask, RAPIDS e dependências adicionais.
    • --initialization-action-timeout: o limite de tempo para as ações de inicialização.
    • --metadata: passado para as ações de inicialização para configurar o cluster com os controladores de GPU da NVIDIA, o agendador autónomo para Dask e a versão 21.06 do RAPIDS.
    • --optional-components: configura o cluster com o componente opcional do Jupyter.
    • --enable-component-gateway: permite o acesso às UIs Web no cluster.
    • --single-node: configura o cluster como um único nó (sem trabalhadores).

    Aceda ao Jupyter Notebook

    1. Abra a página Clusters na consola Google Cloud do Dataproc.
      Abra a página Clusters
    2. Clique no cluster e, de seguida, no separador Interfaces Web.
    3. Clique em JupyterLab.
    4. Abra um novo terminal no JupyterLab.
    5. Clone o clara-parabricks/rapids-single-cell-examples repositório e consulte a ramificação dataproc/multi-gpu.

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

    6. No JupyterLab, navegue para o repositório rapids-single-cell-examples/notebooks e abra o bloco de notas do Jupyter 1M_brain_gpu_analysis_uvm.ipynb.

    7. Para limpar todas as saídas no bloco de notas, selecione Editar > Limpar todas as saídas

    8. Leia as instruções nas células do bloco de notas. O bloco de notas usa o Dask e o RAPIDS no Dataproc para explicar um fluxo de trabalho de RNA-seq de célula única em 1 milhão de células, incluindo o processamento e a visualização dos dados. Para saber mais, consulte o artigo Acelerar a análise genómica de células únicas com o RAPIDS.

    Limpar

    Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste tutorial, elimine o projeto que contém os recursos ou mantenha o projeto e elimine os recursos individuais.

    Elimine o projeto

    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.

    Elimine recursos individuais

    1. Elimine o cluster do Dataproc.
      gcloud dataproc clusters delete cluster-name \
          --region=region
      
    2. Elimine o contentor:
      gcloud storage buckets delete BUCKET_NAME

    O que se segue?