Questo tutorial mostra come eseguire un'analisi di genomica a singola cellula utilizzando Dask, NVIDIA CUDA-X e GPU, che puoi configurare su Managed Service for Apache Spark. Puoi configurare Managed Service for Apache Spark per eseguire Dask con lo scheduler autonomo o con YARN per la gestione delle risorse.
Questo tutorial configura Managed Service for Apache Spark con un'istanza JupyterLab ospitata per eseguire un notebook con un'analisi genomica a singola cellula. L'utilizzo di un notebook Jupyter su Managed Service for Apache Spark consente di combinare le funzionalità interattive di Jupyter con la scalabilità dei workload abilitata da Managed Service for Apache Spark. Con Managed Service for Apache Spark, puoi fare lo scale out dei workload da una a più macchine, che puoi configurare con tutte le GPU di cui hai bisogno.
Questo tutorial è rivolto a data scientist e ricercatori. Presuppone che tu abbia esperienza con Python e una conoscenza di base di quanto segue:
Obiettivi
- Crea un'istanza di Managed Service for Apache Spark configurata con GPU, JupyterLab e componenti open source.
- Esegui un notebook su Managed Service for Apache Spark.
Costi
In questo documento vengono utilizzati i seguenti componenti fatturabili di Cloud de Confiance by S3NS:
Al termine delle attività descritte in questo documento, puoi evitare l'addebito di ulteriori costi eliminando le risorse che hai creato. Per saperne di più, consulta Esegui la pulizia.
Prima di iniziare
-
Nella console Cloud de Confiance , nella pagina di selezione del progetto, seleziona o crea un progetto Cloud de Confiance .
Ruoli richiesti per selezionare o creare un progetto
- Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per cui ti è stato concesso un ruolo.
-
Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (
roles/resourcemanager.projectCreator), che contiene l'autorizzazioneresourcemanager.projects.create. Scopri come concedere i ruoli.
-
Verifica che la fatturazione sia attivata per il tuo progetto Cloud de Confiance .
-
Abilita l'API Dataproc, se non è già abilitata.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
prepara l'ambiente
Seleziona una località per le tue risorse.
REGION=REGION
Creare un bucket Cloud Storage.
gcloud storage buckets create gs://BUCKET --location=REGION
Copia le seguenti azioni di inizializzazione nel tuo 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
Crea un cluster Managed Service for Apache Spark con JupyterLab e componenti open source
- Crea un cluster Managed Service for 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
Il cluster ha le seguenti proprietà:
--region: la regione in cui si trova il cluster.--image-version:2.0-ubuntu18, la versione immagine del cluster--master-machine-type:n1-standard-32, il tipo di macchina principale.--master-accelerator: il tipo e il 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, CUDA-X 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 CUDA-X21.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 un singolo nodo (senza worker).
Accedi al notebook Jupyter
- Apri la pagina Cluster nella console Cloud de Confiance di Managed Service for Apache Spark.
Apri la pagina Cluster - Fai clic sul tuo cluster e poi sulla scheda Interfacce web.
- Fai clic su JupyterLab.
- Apri un nuovo terminale in JupyterLab.
Clona il repository
clara-parabricks/rapids-single-cell-examplese controlla il branchmanaged-spark/multi-gpu.git clone https://github.com/clara-parabricks/rapids-single-cell-examples.git git checkout managed-spark/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 notebook, seleziona Modifica > Cancella tutti gli output.
Leggi le istruzioni nelle celle del notebook. Il notebook utilizza Dask e CUDA-X su Managed Service for Apache Spark per guidarti attraverso un flusso di lavoro RNA-seq a singola cellula su 1 milione di cellule, inclusa l'elaborazione e la visualizzazione dei dati. Per saperne di più, consulta Accelerating Single Cell Genomic Analysis using CUDA-X.
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 Cloud de Confiance , 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 progetto, quindi fai clic su Chiudi per eliminare il progetto.
Elimina singole risorse
- Elimina il cluster Managed Service for Apache Spark.
gcloud dataproc clusters delete cluster-name \ --region=region
-
Elimina il bucket:
gcloud storage buckets delete BUCKET_NAME
Passaggi successivi
- Scopri di più su Managed Service for Apache Spark.
- Esplora architetture di riferimento, diagrammi, tutorial e best practice. Consulta il nostro Cloud Architecture Center.