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:
Para gerar uma estimativa de custos com base na sua utilização projetada,
use a calculadora de preços.
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
-
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.
Prepare o seu ambiente
Selecione uma localização para os seus recursos.
REGION=REGION
Crie um contentor do Cloud Storage.
gcloud storage buckets create gs://BUCKET --location=REGION
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
- 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 GPUsnvidia-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ão21.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
- Abra a página Clusters na consola Google Cloud do Dataproc.
Abra a página Clusters - Clique no cluster e, de seguida, no separador Interfaces Web.
- Clique em JupyterLab.
- Abra um novo terminal no JupyterLab.
Clone o
clara-parabricks/rapids-single-cell-examples
repositório e consulte a ramificaçãodataproc/multi-gpu
.git clone https://github.com/clara-parabricks/rapids-single-cell-examples.git git checkout dataproc/multi-gpu
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.
Para limpar todas as saídas no bloco de notas, selecione Editar > Limpar todas as saídas
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
- 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.
Elimine recursos individuais
- Elimine o cluster do Dataproc.
gcloud dataproc clusters delete cluster-name \ --region=region
-
Elimine o contentor:
gcloud storage buckets delete BUCKET_NAME
O que se segue?
- Descubra mais sobre o Dataproc.
- Explore arquiteturas de referência, diagramas, tutoriais e práticas recomendadas. Consulte o nosso Centro de arquitetura na nuvem.