Neste tutorial, mostramos como executar uma análise genômica de célula única usando Dask, NVIDIA RAPIDS e GPUs, que podem ser configuradas no Serviço Gerenciado para Apache Spark. É possível configurar o Serviço Gerenciado para Apache Spark para executar o Dask com o programador autônomo ou com o YARN para gerenciamento de recursos.
Neste tutorial, o Serviço Gerenciado para Apache Spark é configurado com uma instância hospedada do JupyterLab para executar um notebook com análise genômica de célula única. O uso de um notebook do Jupyter no Serviço Gerenciado para Apache Spark permite combinar os recursos interativos do Jupyter com o escalonamento de carga de trabalho permitido pelo Serviço Gerenciado para Apache Spark. Com o Serviço Gerenciado para Apache Spark, é possível escalonar horizontalmente suas cargas de trabalho de uma para várias máquinas, que você pode configurar com quantas GPUs precisar.
Este tutorial é destinado a cientistas e pesquisadores de dados. Ele pressupõe que você tenha experiência com Python e tenha conhecimento básico dos seguintes tópicos:
Objetivos
- Criar uma instância do Serviço Gerenciado para Apache Spark configurada com GPUs, JupyterLab e componentes de código aberto.
- Executar um notebook no Serviço Gerenciado para Apache Spark.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na projeção de uso,
use a calculadora de preços.
Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Para mais informações, consulte Limpeza.
Antes de começar
-
No Google Cloud console do, na página do seletor de projetos, escolha ou crie um Google Cloud projeto do.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. É possível selecionar qualquer projeto em que você tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de criador de projetos
(
roles/resourcemanager.projectCreator), que contém aresourcemanager.projects.createpermissão. Saiba como conceder papéis.
-
Verifique se o faturamento está ativado para o Google Cloud projeto.
-
Ativar a API Dataproc.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.
Preparar o ambiente
Selecione um local para seus recursos.
REGION=REGION
Criar um bucket do Cloud Storage.
gcloud storage buckets create gs://BUCKET --location=REGION
Copie as seguintes ações de inicialização para o 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
Criar um cluster do Serviço Gerenciado para Apache Spark com o JupyterLab e componentes de código aberto
- Criar um cluster do Serviço Gerenciado 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
O cluster tem as seguintes propriedades:
--region: a região em que o cluster está localizado.--image-version:2.0-ubuntu18, a versão de imagem do cluster.--master-machine-type:n1-standard-32, o tipo de máquina principal.--master-accelerator: o tipo e a contagem de GPUs no nó principal, quatro GPUsnvidia-tesla-t4.--initialization-actions: os caminhos do Cloud Storage para os scripts de instalação que instalam drivers de GPU, Dask, RAPIDS e dependências extras.--initialization-action-timeout: o tempo limite das ações de inicialização.--metadata: transmitido para as ações de inicialização para configurar o cluster com drivers de GPU NVIDIA, o programador autônomo do Dask e a versão RAPIDS21.06.--optional-components: configura o cluster com o componente opcional Jupyter.--enable-component-gateway: permite o acesso a IUs da Web no cluster.--single-node: configura o cluster como um único nó (sem workers).
Acessar o Jupyter Notebook
- Abra a página Clusters no console do Serviço Gerenciado para Apache Spark Google Cloud .
Abrir a página "Clusters" - Clique no cluster e na guia Interfaces da Web.
- Clique em JupyterLab.
- Abra um novo terminal no JupyterLab.
Clone o
clara-parabricks/rapids-single-cell-examplesrepositório e confira a ramificaçãomanaged-spark/multi-gpu.git clone https://github.com/clara-parabricks/rapids-single-cell-examples.git git checkout managed-spark/multi-gpu
No JupyterLab, acesse o rapids-single-cell-examples/notebooks e abra o 1M_brain_gpu_analysis_uvm.ipynb.
Para limpar todas as saídas no notebook, selecione Editar > Limpar todas as saídas.
Leia as instruções nas células do notebook. O notebook usa oDask e RAPIDS no Serviço Gerenciado para Apache Spark para orientar você em 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 de dados. Para saber mais, consulte Aceleração da análise genômica de célula única usando RAPIDS.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
Excluir o projeto
- No Google Cloud console, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
- Na caixa de diálogo, digite o ID do projeto e clique em Desligar para excluir o projeto.
Excluir recursos individuais
- Exclua o cluster do Serviço Gerenciado para Apache Spark.
gcloud dataproc clusters delete cluster-name \ --region=region
-
Excluir o bucket:
gcloud storage buckets delete BUCKET_NAME
A seguir
- Saiba mais sobre o Serviço Gerenciado para Apache Spark.
- Explore arquiteturas de referência, diagramas, tutoriais e práticas recomendadas. Confira o Centro de arquitetura do Cloud .