OOD - lncc-sered/manual-sdumont2nd GitHub Wiki
Página oficial e documentação do desenvolvedor no link → Open OnDemand
Open OnDemand é uma ferramenta que facilita o acesso a supercomputadores e ambientes de computação de alto desempenho (HPC) por meio de um portal web simples e intuitivo. Em vez de exigir que o usuário saiba usar comandos complicados ou instale programas específicos, o Open OnDemand permite que você utilize esses recursos avançados diretamente do navegador de internet (como o Chrome, Firefox, Safari, etc.), seja no computador, tablet ou até no celular.
O Open OnDemand é usado principalmente por estudantes, pesquisadores e profissionais que precisam rodar programas pesados, analisar grandes volumes de dados ou realizar simulações científicas. Com ele, é possível:
- Gerenciar arquivos: criar, mover, copiar, enviar e baixar arquivos entre o seu computador e o ambiente HPC, tudo através de uma interface parecida com a de pastas do seu sistema operacional;
- Submeter e acompanhar tarefas (jobs): você pode enviar trabalhos para serem processados nos supercomputadores e acompanhar o andamento desses trabalhos de forma visual, sem precisar digitar comandos;
- Usar aplicativos interativos: acessar ferramentas como Jupyter Notebook, MATLAB, RStudio e até mesmo uma área de trabalho gráfica, tudo rodando nos servidores potentes do HPC, mas visualizado no seu navegador;
- Acessar terminal: se precisar, também é possível abrir um terminal para comandos avançados, mas sem sair do navegado.
-
Em termos de praticidade: Antes do Open OnDemand, acessar supercomputadores era algo restrito a quem tinha experiência com linhas de comando e configurações técnicas. Agora, "qualquer pessoa" com uma conta pode começar a usar esses recursos rapidamente, com poucos cliques, tornando a computação de alto dsempenho muito mais acessível e democrática.
-
Em termos de desempenho: O Open OnDemand pode oferecer uma experiência gráfica mais rápida e estável do que o uso tradicional do SSH com encaminhamento X11 (ssh -X), especialmente para aplicações gráficas rodando em ambientes de HPC. Enquanto o ssh -X transmite a interface gráfica diretamente do servidor para o computador do usuário, o que pode resultar em lentidão, alta latência e baixa qualidade gráfica (principalmente em conexões distantes ou instáveis), o Open OnDemand utiliza tecnologias como VNC ou outros protocolos otimizados para acesso remoto a desktops e aplicações gráficas. Isso permite que a interface gráfica seja acessada via navegador, com melhor desempenho e menor latência, já que a renderização da interface é feita no servidor e transmitida de forma mais eficiente para o usuário.
Além disso, o Open OnDemand foi projetado para facilitar o uso de aplicações gráficas interativas em clusters, como Jupyter, RStudio, MATLAB, Visual Studio Code, entre outros, tornando o acesso mais fluido e menos dependente da qualidade da conexão do usuário.
Referências:
1. [https://onlinelibrary.wiley.com/doi/10.1002/cpe.6114 Open OnDemand: State of the platform, project, and the future]
2. [https://joss.theoj.org/papers/10.21105/joss.00622 Open OnDemand: A web-based client portal for HPC centers]
Tenha em mente que será necessário previamente ter um usuário cadastrado no supercomputador Sdumont2nd, Para acessar o portal Open On Demand.
Inicialmente em seu navegador como Chrome, Firefox, Safari, etc. Acesse o link -> Portal de login do ODD no Sdumont2nd
Você será direcionado para o a área de login do usuário como mostrado na figura 1:
Figura 1 - Portal de Login de Usuário Sdumont2nd
Informe os campos "UserName" com seu nome de usuário previamente cadastrado no Sdumont2nd.
Em seguida digite sua senha no campo "Password" e clique em "Sign in"
Caso a autenticação seja bem sucedida, você será direcionado para o portal efetivo do OOD. Como mostrado na figura 2 (Layout do portal)
O layout base do OOD é dividido em 2 frames (quadros). Frames superior e Médio, como observado na figura 2.
Figura 2 - Layout Base do OOD.
- Em nosso caso, a Barra de Menus é visível na parte superior da pagina, em forma longitudinal de cor cinza. Como mostrado na figura 3:
Figura 3 - Frame superior. Menu de aplicações.
Esses menus organizam as principais funções do Open OnDemand, tornando o uso do ambiente HPC mais acessível e intuitivo para usuários de diferentes níveis de experiência. Abaixo na Tabela 1, uma breve descrição de cada um dos menus da barra superior do Open OnDemand (OOD), listados da esquerda para a direita:
Menu | Botão | Descrição |
---|---|---|
Open OnDemand | ![]() |
Este é o link para a página principal ou dashboard do portal. Clicando aqui, você retorna à tela inicial do Open OnDemand, onde pode acessar rapidamente as principais funcionalidades e informações do sistema. |
Files (Arquivos) | ![]() |
Fornece uma interface para gerenciar seus arquivos armazenados no ambiente HPC. Você pode navegar, criar, editar, copiar, mover, enviar (upload) e baixar (download) arquivos diretamente pelo navegador, sem precisar usar comandos no terminal. |
Jobs (Tarefas) | ![]() |
Aqui você pode submeter novos trabalhos (jobs) para serem processados no cluster, acompanhar o status dos jobs em execução, ver os resultados e cancelar tarefas se necessário. O Job Composer facilita a criação dos scripts de execução, tornando o processo mais intuitivo. |
Clusters | ![]() |
Oferece acesso a terminais Linux via navegador, permitindo que você execute comandos diretamente no cluster, como se estivesse usando um terminal SSH tradicional, mas sem sair do ambiente web. |
Interactive Apps (Aplicativos Interativos) | ![]() |
Permite iniciar e gerenciar aplicações gráficas e interativas que rodam no cluster, como Jupyter Notebook, RStudio, MATLAB, VS Code, entre outros. Você configura os recursos necessários (tempo, memória, CPUs) e lança a aplicação, que abre em uma nova aba do navegador. |
My Interactive Sessions (Minhas Sessões Interativas) | ![]() |
Mostra uma lista das sessões interativas que você iniciou, com informações sobre status, recursos alocados e tempo restante. A partir daqui, você pode conectar-se às sessões ativas, visualizar detalhes ou encerrar sessões que não precisa mais. |
Help (Ajuda) | ![]() |
Fornece acesso a documentação, tutoriais, FAQs e suporte relacionados ao uso do Open OnDemand. É o local para tirar dúvidas e aprender mais sobre as funcionalidades da plataforma. |
Logged in as [usuário] | ![]() |
Exibe o nome do usuário atualmente logado no sistema, confirmando a identidade da conta que está sendo usada para acessar o portal. |
Log Out (Sair) | ![]() |
Permite encerrar sua sessão no Open OnDemand com segurança, desconectando sua conta do portal e protegendo seus dados. |
Como mostrado na Tabela 1 o menu "Files" irá revelar o botão .
Ao clicar, você será direcionado para o seu diretório "HOME" , utilizando o gerenciador de arquivos por uma "Interface Gráfica do Usuário", como mostrado na Figura 3 abaixo:
Figura 3 - Menu File, Sub menu Home Directory.
Observe que neste exemplo existem dois diretórios. O primeiro "downloads" e autoria do usuário. O segundo "ondemand" é gerado pelo próprio OOD. Ele contém informações valiosas para o OOD funcionar. Não apague ou altere este diretório ou arquivos internos a não ser que saiba exatamente o que está fazendo.
Ainda no sub menu "Home Directory". No frame central, é possível observar uma série de botões com funcionalidades específicas, descritas na tabela 2:
Tabela 2 - Função dos botões disponíveis na área de gestão de arquivos de Usuário
Ícone | scrição |
---|---|
![]() |
Abre um terminal na pasta atual, permitindo executar comandos diretamente no cluster, como se estivesse usando um terminal SSH. |
![]() |
Atualiza o conteúdo da pasta atual, útil para visualizar arquivos recém-criados ou modificados. |
![]() |
Cria um novo arquivo na pasta atual. Você escolhe o nome e pode editar o conteúdo diretamente no navegador. |
![]() |
Cria uma nova pasta (diretório) dentro da pasta atual. |
![]() |
Envia (faz upload de) arquivos do seu computador local para o sistema de arquivos do cluster, na pasta atual. |
![]() |
Baixa (faz download de) arquivos selecionados do ambiente do cluster para o seu computador local. |
![]() |
Copia ou move arquivos/pastas selecionados para outro local dentro do sistema de arquivos do cluster. |
![]() |
Exclui arquivos ou pastas selecionadas permanentemente. Atenção: geralmente não há lixeira, a exclusão é definitiva. |
Para realizar modificações em arquivos existentes como mover, copiar, colar ou deletar. Observe a caixa de marcação ao lado de cada arquivo ou diretório. Você deve marcar o arquivo que deseja realizar alguma das ações anteriormente descitas, Como no exemplo da Figura 4 abaixo:
Figura 4 - Marcação de arquivos ou diretórios para tomada de ações.
Feito isso você pode clicar em um dos botões da tabela 2 para uma tomada de ação. Por exemplo, para apagar o diretório download, bastaria clicar em .
Para utilizar as aplicações gráficas disponíveis no Sdumont2nd.
Navegue até a aba "Interactive Apps". Como no exemplo abaixo da figura 5, e escolha sua aplicação.
Figura 5 - Execução de aplicações gráficas no OOD. Destacado em vermelho o programa Jupyter, que será utilizado em nosso exemplo.
Você será direcionado para o menu de seleção de recursos. Como exemplificado na figura 6:
Figura 6 - Painel de seleção de recursos que será utilizado pelo programa Jupyter.
Na Figura 6 é possível escolher entre 8 menus alguns parâmetros fundamentais para a execução do programa ou função escolhida. Para que haja o uso "racional" dos recursos do Sdumont2nd, tenha em mente o quanto de recursos você deseja utilizar. Entenda melhor o que cada um deste menus significa observando a table 3 abaixo:
Tabela 3 - Descrição resumida da função de cada uma dos menus de seleção de recursos do Sdumond2nd no OOD.
Campo/Opção | Descrição |
---|---|
Jupyter Instance | Seleciona a imagem do container (ex: jupyatos/20221227 ) com o ambiente pré-configurado. |
Jupyter Lab/Notebook | Escolhe entre Jupyter Lab (interface moderna) ou Notebook (interface clássica). |
Account | Conta/projeto (prjssi ) que será debitada pelos recursos utilizados. |
Partition | Partição do cluster onde o job rodará (ex: lncc-h100 para GPUs NVIDIA H100). |
Number of hours | Tempo máximo de execução (em horas). Após expirar, a sessão é encerrada. |
Number of CPU cores | Quantidade de núcleos de CPU alocados (aumenta capacidade de processamento). |
Total Memory to allocate | Memória RAM (em MB) reservada para a sessão (importante para datasets grandes). |
Number of GPUs | Quantidade de GPUs solicitadas (0 = apenas CPU; >0 habilita aceleração GPU). |
Email notification | Se marcado, envia email quando a sessão estiver ativa para execução. |
Após a escolha dos recursos, clique no botão azul "Launch" na parte inferior da tela.
Mas o que realmente está sendo feito ao clicar no botão azul "Launch"?
-
Submissão do Job: Ao clicar em "Launch", o Open OnDemand envia uma requisição ao Slurm (gerenciador de filas) com os parâmetros selecionados (CPU, memória, GPU, tempo, etc.).
-
Fila de Espera: O Slurm coloca o job na fila apropriada (baseada na partição, como lncc-h100) e aguarda até que os recursos solicitados estejam disponíveis.
-
Alocação de Recursos: Quando os recursos são liberados, o Slurm aloca os núcleos de CPU, memória e GPUs solicitados para o job.
-
Inicialização do Jupyter: O container do Jupyter é iniciado com os recursos alocados, e um link para acessar a interface é gerado.
-
Notificação (opcional): Se ativado, um email é enviado confirmando que a sessão está pronta.
Em outras palavras. O processo é semelhante a submeter um script Slurm manualmente, mas o Open OnDemand automatiza a configuração e o acesso.
Com os recursos do sistema reservados na fila do Slurm. Você verá uma que agora a pagina foi atualizada, informando o "status" da sua solicitação.
Como mostrado na Figura 7 abaixo:
Figura 7 - Tela de "status" da requisição de recursos e reservada no gerenciador de filas Slurm. Para execução do programa exemplo Jupyter.
É possível observar 3 campos principais.
- Created at (Criando em): indicador do momento em que o recurso solicitado foi reservado e alocado no sistema de filas.
- Time Remaining (Tempo restante): Contabiliza por quanto tempo o usuário ainda pode usufruir dos recursos computacionais solicitados para a execução do programa selecionado. Em nosso exemplo o usuário ainda pode utilizar o Jupyter por 1 hora, assim que a sessão estiver ativa.
- Session ID (Identificados da Sessão): Um identificador único gerado para facilitar a rastreabilidade da sessão criada. Geralmente é utilizado para facilita a busca de informação sobre a sessão, como arquivos de log e afins.
Logo abaixo é possível observar também a mensagem "your session is currently starting... Please be patient as this process can take a few mintus" que em tradução livre significa "Sua sessão está começando... Por favor, seja paciente, pois esse processo pode levar alguns minutos".
Este tempo de espera irá depender do volume de ocupação dos recursos computacionais de Sdumont2nd.
Então, seja paciente, este tempo de espera pode ser de segundos ou minutos. Para acelerar o processo de alerta, você pode atualizar a pagina web em seu navegador pressionando a tecla "F5".
Assim que o recuso computacional no Sdumont2nd estiver disponível note que a tela de "status" será atualizada para o padrão mostrado na figura 8 abaixo.
O Slurm irá executar sua tarefa e disponibilizar o link para acesso do Jupyter. Perceba que no campo "Time Remaining" agora é observado 59min, indicando que o processo já está em curso.
Figura 8 - Tela de "status" atualizada, mostrando que agora o Jupyter já está sendo executado utilizando os recursos solicitados.
Para poder acessar a interface gráfica o Jupyter clique no botão azul "Connect to Jupyter".
Após isso, uma nova aba em seu navegador será aberta automaticamente.
E você será direcionado para o portal do OOD que contem a interface do programa Jupyter. Como mostrado na Figura 9 abaixo:
Figura 9 - Layout do programa Jupyter gerenciado pelo OOD via WEB.
No caso do Jupyter será solicitado que você escolha um kernel. Como mostrado na figura 10 abaixo:
Figura 10 - Modo seletor de kernel de trabalho.
Quando Usar Cada Opção?
-
Python 3 (ipykernel): Padrão para notebooks Python.
-
Julia/R: Se o notebook contiver código nessas linguagens.
-
No Kernel: Para editar o notebook sem executar código (ex: documentação).
-
Kernel de Outra Sessão: Se você já tem um kernel rodando (ex: um processo demorado) e quer reutilizá-lo.
Observações: Se você selecionar um kernel incompatível com o código (ex: usar um kernel R em um notebook Python), os comandos não funcionarão. A opção "Preferred Kernel" depende das configurações do seu Jupyter ou do administrador do sistema.
Em nosso exemplo vamos escolher o kernel "Python3 (ipykernel)" pois vamos fazer os testes utilizando o python3 para cálculos de função.
import os
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
# Configuração opcional para o cache (resolve o aviso)
os.environ['MPLCONFIGDIR'] = '/tmp/matplotlib_cache'
os.makedirs(os.environ['MPLCONFIGDIR'], exist_ok=True)
# Verifica versões
print("Versão do Numpy:", np.__version__)
print("Versão do Matplotlib:", matplotlib.__version__)
# Cria e plota um gráfico simples
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.figure(figsize=(8, 4))
plt.plot(x, y, label='sin(x)', color='blue')
plt.title("Teste Funcionando!")
plt.xlabel("X")
plt.ylabel("Y")
plt.legend()
plt.grid(True)
print("\nDiretório atual:", os.getcwd())
plt.show()
Escolha suas preferências de execução nos 7 menus observados na Figura 7 e descritos abaixo:
- RStudio Instace: Primeiro escolha a versão do R-Base que será executado no RStudio. Atualmente temos as versões 4.2.2 e 4.1.2 da R-Base.
- Accont : Sua conta associada ao gerenciador de filas SLURM do Sdumont2nd. Ao executar uma aplicação gráfica como o RStudio Server, você está na verdade alocando recursos na fila do SLURM e talvez precise esperar que os recursos desejados sejam liberados para o seu uso. Seja paciente. Marque a caixa de dialogo "I would like to receive an email when the session starts" localizada acima do botão "Launch" ao final da pagina para receber alertas por e-mail sobre quando seu processo estiver disponível para uso.
- Partition: Partições do Cluster Sdumond2nd, nomeadas e gerenciadas no SLURM. Escolhas a partição com base na composição de hardware que deseja utilizar. Dependendo da tarefa que desejar pose ser necessário, o uso de GPUs, CPUs ARM entre outras caracteristicas. Consulte a lista de nós computacionais do Sdumond2nd no link -> xxx