Como acessar o Rubin DP1 no LIneA¶
Este guia apresenta um passo a passo simples para acessar o Rubin Data Preview 1 (DP1) usando a infraestrutura do LIneA, incluindo o uso do ambiente HPC e da plataforma Open OnDemand. Todos os links indicados abaixo fazem parte do fluxo oficial de uso do ecossistema do LIneA.
Passo a passo para acesso¶
1) Registrar-se como usuário do LIneA¶
Acesse o guia oficial de primeiros passos e complete o registro:
https://docs.linea.org.br/primeiros_passos.html
2) Solicitar acesso ao ambiente HPC do LIneA¶
Abra um ticket no Helpdesk informando que deseja acesso ao HPC com interesse específico em utilizar o Open OnDemand:
https://docs.linea.org.br/suporte.html
3) Acessar a plataforma Open OnDemand¶
Após liberação, entre na plataforma seguindo o guia:
https://docs.linea.org.br/processamento/uso/openondemand.html
4) Criar um ambiente Conda e disponibilizar o kernel no Open OnDemand¶
O processo completo está documentado aqui:
https://docs.linea.org.br/processamento/uso/openondemand.html#criando-kernels-python
No ambiente Conda criado, instale o LSDB, o Dask e o Dask-Jobqueue:
conda install -c conda-forge lsdb dask dask-jobqueue distributed
5) Iniciar uma sessão no Jupyter Lab¶
Abra uma sessão seguindo as instruções:
https://docs.linea.org.br/processamento/uso/openondemand.html#jupyterlab
6) Abrir um notebook e selecionar o kernel criado¶
Após iniciar o Jupyter Lab, escolha o kernel correspondente ao seu ambiente Conda.
Configurando um cluster Dask¶
O exemplo abaixo mostra duas opções: cluster local para testes e cluster SLURM para rodar workloads reais no HPC.
from dask.distributed import Client
CLUSTER_TYPE = "slurm"
if CLUSTER_TYPE == "local":
from dask.distributed import LocalCluster
cluster = LocalCluster(
n_workers=3,
threads_per_worker=1,
memory_limit="2GB"
)
client = Client(cluster)
if CLUSTER_TYPE == "slurm":
from dask_jobqueue import SLURMCluster
minimum_jobs = 5
maximum_jobs = 10
cluster = SLURMCluster(
n_workers=minimum_jobs,
queue="cpu",
account="hpc-bpglsst",
cores=8,
memory="16GB",
processes=1,
interface="ib0",
walltime="01:00:00",
job_extra_directives=[
"--propagate"
]
)
cluster.adapt(minimum_jobs=minimum_jobs, maximum_jobs=maximum_jobs)
client = Client(cluster)
client.wait_for_workers(minimum_jobs, timeout=15)
Lendo o catálogo Rubin DP1 usando LSDB¶
Você pode abrir o catálogo Rubin DP1 diretamente usando a variável de ambiente global DP1_HATS, que deve apontar para o diretório base contendo as coleções do DP1. Em seguida, basta usar o LSDB para carregar o catálogo.
import os
import lsdb
dp1_base = os.environ.get("DP1_HATS")
catalog_path = os.path.join(dp1_base, "object_collection")
cat = lsdb.open_catalog(catalog_path)