Questo tutorial mostra come eseguire un'analisi genomica a cella singola utilizzando Dask, NVIDIA RAPIDS e GPU, che puoi configurare su Dataproc. Puoi configurare Dataproc per l'esecuzione di Dask con lo scheduler autonomo o con YARN per la gestione delle risorse.
Questo tutorial configura Dataproc con un'istanza JupyterLab ospitata per eseguire un blocco note con un'analisi genomica a cella singola. L'utilizzo di un blocco note Jupyter su Dataproc consente di combinare le funzionalità interattive di Jupyter con la scalabilità dei carichi di lavoro consentita da Dataproc. Con Dataproc puoi fare lo scale out dei carichi di lavoro da una a più macchine, configurazione che puoi configurare con tutte le GPU necessarie.
Questo tutorial è destinato a data scientist e ricercatori. Si presume che tu abbia esperienza con Python e una conoscenza di base di quanto segue:
Obiettivi
- Crea un'istanza Dataproc configurata con GPU, JupyterLab e componenti open source.
- Esegui un blocco note su Dataproc.
Costi
In questo documento, utilizzi i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi.
Una volta completate le attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la pagina Pulizia.
Prima di iniziare
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Attiva l'API Dataproc.
prepara l'ambiente
Seleziona una località per le tue risorse.
REGION=REGION
Creare un bucket Cloud Storage.
gsutil mb BUCKET -l REGION
Copia le seguenti azioni di inizializzazione nel tuo 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 cluster Dataproc con JupyterLab e componenti open source
- Crea un cluster 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
Il cluster ha le seguenti proprietà:
--region
: la regione in cui si trova il cluster.--image-version
:2.0-ubuntu18
, la versione dell'immagine cluster--master-machine-type
:n1-standard-32
, il tipo di macchina principale.--master-accelerator
: tipo e numero di GPU sul nodo principale, quattro GPUnvidia-tesla-t4
.--initialization-actions
: i percorsi Cloud Storage degli script di installazione che installano i driver GPU, Dask, RAPIDS e dipendenze aggiuntive.--initialization-action-timeout
: il timeout per le azioni di inizializzazione.--metadata
: passato alle azioni di inizializzazione per configurare il cluster con i driver GPU NVIDIA, lo scheduler autonomo per Dask e la versione RAPIDS21.06
.--optional-components
: configura il cluster con il componente facoltativo Jupyter.--enable-component-gateway
: consente l'accesso alle UI web sul cluster.--single-node
: configura il cluster come singolo nodo (nessun worker).
Accedi al blocco note Jupyter
- Apri la pagina Cluster nella console Google Cloud di Dataproc.
Apri la pagina Cluster - Fai clic sul cluster, quindi sulla scheda Interfacce web.
- Fai clic su JupyterLab.
- Apri un nuovo terminale in JupyterLab.
Clona il repository
clara-parabricks/rapids-single-cell-examples
e controlla il ramodataproc/multi-gpu
.git clone https://github.com/clara-parabricks/rapids-single-cell-examples.git git checkout dataproc/multi-gpu
In JupyterLab, vai al repository rapids-single-cell-examples/notebooks e apri il blocco note Jupyter 1M_brain_gpu_analysis_uvm.ipynb.
Per cancellare tutti gli output nel blocco note, seleziona Modifica > Cancella tutti gli output
Leggi le istruzioni nelle celle del blocco note. Il blocco note utilizza Dask e RAPIDS su Dataproc per guidarti in un flusso di lavoro in sequenza RNA a cella singola su 1 milione di celle, incluse l'elaborazione e la visualizzazione dei dati. Per scoprire di più, consulta la sezione Accelerare l'analisi genomica a cella singola mediante RAPIDS.
Esegui la pulizia
Per evitare che al tuo Account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina il progetto
- Nella console Google Cloud, vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.
Elimina singole risorse
- Elimina il cluster Dataproc.
gcloud dataproc clusters delete cluster-name \ --region=region
-
Elimina il bucket:
gcloud storage buckets delete BUCKET_NAME
Passaggi successivi
- Scopri di più su Dataproc
- Scopri di più sull'architettura di riferimento di Cloud Life Sciences.
- Esplora architetture di riferimento, diagrammi, tutorial e best practice. Dai un'occhiata al nostro Cloud Architecture Center.