====== OnDemand ====== O **[[:pres:gerti:ondemand|OnDemand]]** é o ambiente que provê acesso aos recursos de **HPC** do Tribunal, como as GPUs, diversos cores de CPU e muita memória. ===== Acesso ao OnDemand ===== Siga os seguintes passos para acessar e configurar uma sessão com acesso à esses recursos: * Acesse o link: [[https://api-gpu.tce.go.gov.br/pun/sys/dashboard|https://api-gpu.tce.go.gov.br/pun/sys/dashboard]] . * Entre em sua conta. * Essa é a cara inicial: {{:pres:gerti:pasted:20251006-140947.jpg|20251006-140947.jpg}} * Clique em **My Interactive Sessions**. Aqui você encontra suas sessões ativas e consegue criar novas sessões. Observe que é possível ter mais de uma sessão ativa ao mesmo tempo. Na imagem abaixo, eu tenho uma sessão já criada, mas ignore-a por enquanto. {{:pres:gerti:pasted:20251006-141117.png}} * Agora, clique em **Jupyter**. {{:pres:gerti:pasted:20251006-141314.png}} * Você se encontrará na tela abaixo. Aqui ficam todas as configurações disponíveis ao criar as sessões. {{:pres:gerti:pasted:20251006-141351.png}} * As configurações a serem alteradas são: * **Jupyter Instance: **Altere para **pytorch/24.01-py3-oracle** * **Number of hours**: é literalmente o número de horas que a sessão vai estar válida e acessando os recursos do Tribunal. Se for usar a semana toda, recomendo alocar uma quantidade de horas que dure durante toda a semana para evitar o trabalho de criar várias sessões. **Entretanto**, cuidado ao alocar sessões com GPUs por muito tempo. Se for precisar de acesso à elas, crie sessões menores que uma semana. * **Number of CPU cores**: literamente o número de núcleos de CPU a serem utilizados na sessão. Sempre utilizei apenas 1 e sempre foi suficiente. * **Total Memory to allocate**: quantidade de memória em MB. Utilizo por padrão 64000 MB, ou seja, 64GB. * **Number of GPUs: **número de GPUs a serem alocadas na sessão. Se não for precisar, deixe como 0. Se for precisar, avalie se precisa de apenas 1 ou mais GPUs. * **GPU Type**: esse campo só aparece se o campo anterior tiver quantidade diferente de 0. É **importante** que deixe o tipo da GPU como **Any**. Ao contrário, a alocação da GPU não funcionará. * Ao terminar essas configurações, clique em **Launch**. * Você será redirecionado para o menu **My Interactive Sessions**, e sua sessão irá aparecer com uma mensagem de que está sendo criada, conforme a imagem abaixo. {{:pres:gerti:pasted:20251006-141917.png}} * Após poucos segundos, ela será corretamente criada e ficará da seguinte forma. Para acessar, basta clicar em **Connect to Jupyter**. {{:pres:gerti:pasted:20251006-141917.png}} * Por fim, você estará dentro do ambiente e terá seus acessos aos recursos. {{:pres:gerti:pasted:20251006-141917.png}} * OBS.: quando o tempo disponível da sessão chega ao fim, ela fecha e permanece na aba **My Interactive Sessions** durante 1 semana apenas para debug. Você pode deletá-la quando quiser. * OBS.: **todas as sessões no [[:pres:gerti:ondemand|OnDemand]] têm seus arquivos interconectados**. Os seus arquivos são conectados ao seu usuário do [[:pres:gerti:ondemand|OnDemand]] e, portanto, são agnósticos às sessões. O que muda de uma sessão para outra é apenas o acesso aos recursos. ===== ===== ===== Passos para utilizar o Ambiente Jupyter ===== O Ambiente Jupyter possibilita a criação de arquivos, diretórios, upload de arquivos para o ambiente, download de arquivos do ambiente, utilização via terminal, criação de de Jupyter Notebooks, etc. Para algumas dessas funções, siga os seguintes passos: * Antes de tudo, está sendo uma boa prática no Tribunal criar uma pasta **data** logo na raiz do seu ambiente. Para isso, clique em **New **e depois em **Folder**. Será criada uma pasta sem nome, então você deve clicar **na caixa de marcação à esquerda do nome da pasta**, então clicar em **Rename** e por fim definidr o nome **data** e confirmar. Você deve ficar com algo como: {{:pres:gerti:pasted:20251006-141917.png}} * Após isso, clique em seu diretório **data** e o trabalho pode começar. * Para **acessar um terminal**, primeiro você deve criar um. Para isso, clique em **New** e em **Terminal**. Você será redirecionado para uma nova guia contendo o terminal. é possível acessá-lo também por meio da guia **Running**, que exibe tanto os **Terminais** quanto os **Jupyter Notebooks** criados, conforme a imagem abaixo. Nessa guia também é possível finalizar a execução de ambos. OBS.: o terminal utilizado é do tipo **bash**, executado dentro do Singularity. {{:pres:gerti:pasted:20251006-141917.png}} {{:pres:gerti:pasted:20251006-141917.png}} * Se você precisa **fazer upload **de algum arquivo **para o seu ambiente**, basta voltar à guia **Files**, clicar em **Upload** e selecionar o arquivo ou diretório do seu computador. * Se você precisa **fazer download** de algum arquivo ou Jupyter Notebook **do seu ambiente**, basta clicar na **na caixa de marcação à esquerda do nome da pasta** e clicar em **Download** que o arquivo já será baixado no seu navegador. Observe que há diversas outras operações que se pode fazer em um arquivo, como **Renomear, Visualizar, Mover**, etc. {{:pres:gerti:pasted:20251006-141917.png}} Por fim, para **criar um Jupyter Notebook**, clique em **New** e então selecione o kernel a ser utilizado. Se você não criou nenhum, haverá apenas **Pyhton 3 (ipykernel)** e você pode selecioná-lo. {{:pres:gerti:pasted:20251006-141917.png}} ===== Executar um Jupyter Notebook ===== Passo a passo para executar um Jupyter Notebook com dependências instaladas em um ambiente virtual (enviroment). Passos a serem feitos via terminal: * Instalar** miniconda3** * Criar enviroment: **conda create -n nome_enviroment python=versao.python** * Ativar enviroment: **conda activate** * Instalar bibliotecas necessárias para utilizar o enviroment como um kernel no Jupyter Notebook: **conda install -y pip ipykernel jupyterlab** * Instalar as dependências do seu projeto: **pip install nome-biblioteca** * Construir um kernel no Jupyter Notebook a partir do enviroment criado: **python -m ipykernel install –user –name nome_enviroment –display-name "Python (Nome Enviroment)"** Após isso, em seu Jupyter Notebook, siga os seguintes passos: * Clique em **Kernel**. * Passe o mouse em **Change Kernel**. * O Kernel que você criou deve aparecer na lista disponível, então basta clicar nele. Agora o seu Jupyter Notebook tem acesso às dependências criadas no enviroment. Caso for necessário instalar mais dependências, siga os passos: * Volte ao terminal e tenha certeza de estar dentro do enviroment criado. * Instale normalmente as novas dependências. * Volte ao Jupyter Notebook utilizado. * Clique em **Kernel**. * Clique em **Restart**. Após esses passos, o acesso às novas dependências está feito. ===== Passos para executar o código completo presente em arquivos e diretórios. ===== Diferentemente do que foi explicado anteriormente, para executar os códigos de maneira convencional, basta: * Criar o enviroment. * Acessá-lo. * Instalar as dependências. * Executar os arquivos ou projeto em python. ===== Revisão ===== * Elaboração: Vitor Hugo da Costa Rodovalho * Revisão: Mauricio Barros de Jesus