Guia Prático do cluster Avicena LCC/CENAPAD-MG
Índice
Abertura de conta
Após o usuário preencher o formulário de abertura de conta e enviar para o LCC/CENAPAD-MG, caso aprovada pela equipe do LCC/CENAPAD-MG, a conta será aberta e este poderá utlizar o Cluster Avicena LCC/CENAPAD-MG. O usuário receberá os dados de acesso através do email cadastrado no ato da aberto de conta.
A abertura de cada conta estará vinculada a um projeto para fins de contabilidade de uso. No cluster o projeto será identificado pelo grupo unix CODIGO_DO_PROJETO (código que você receberá por email) e as áreas de trabalho concedidas são:
- áreas privativas dos usuários: /home/CODIGO_DO_PROJETO/SEU_LOGIN
- área para software do grupo: /home/projetos/CODIGO_DO_PROJETO
- storage para dados computacionais: /storage/CODIGO_DO_PROJETO
Somente os usuários do grupo CODIGO_DO_PROJETO têm permissões de leitura, escrita e execução nos diretórios /projetos/CODIGO_DO_PROJETO e /storage/CODIGO_DO_PROJETO. A organização interna dos diretórios fica a critério dos membros do grupo. O responsável pelas atividades e ações do grupo será o seu pesquisador principal (principal investigator, PI), ou seja, o professor com vínculo empregatício à sua universidade de origem ou um PostDoc. Em geral será o pesquisador principal que solicitará a abertura de projeto e a inclusão de seus colaboradores de pesquisa. Qualquer usuário poderá solicitar à equipe de manutenção a sua inclusão em mais de um projeto diferente, sujeito à aprovação do seu respetivo PI.
Atenção!
Para a comunicação das senhas será utilizado o serviço Privnote. Trata-se de um serviço de anotações online no qual o destinatário tem um tempo limite para ler a anotação até que esta se auto-destrua. Os links de acesso ao Privnote serão enviados posteriormente para cada email cadastrado. No momento em que o link for ‘clicado’, a página será carregada com uma janela contendo uma string de 12 caracteres alfanuméricos. Essa string é a senha gerada para o primeiro acesso do usuário ao cluster. Copie essa string, porque o link será destruído. Recomendamos fortemente que no primeiro acesso o usuário troque a senha com o comando passwd. Lembre-se da importância de utilizar senhas fortes. Todos os estudos corroboram que a principal razão por detrás da grande maioria dos incidentes de segurança digital é a utilização de senhas fracas.
Acesso Remoto
O acesso ao Cluster Avicena do LCC/CENAPAD-MG é feito através do ssh através do endereço:
ssh SEU_LOGIN@avicena.cenapad.ufmg.br
- substitua a palavra SEU_LOGIN pelo login que você recebeu após a abertura da conta.
Caso necessite de mais detalhes, acesso os link abaixo:
O Cluster Avicena LCC/CENAPAD-MG
O Cluster Avicena LCC/CENAPAD-MG possui 6 nós computacionais distribuídos fisicamente. Os nós possuem configurações heterogêneas agregando um total de 42 núcleos de processamento (cores) e aproximadamente 384 Gigabytes de memória distribuída pela máquina. O potencial de desempenho teórico do cluster traduz-se em 392 Gigaflops (392 bilhões de operações elementares por segundo). O Cluster é interligado através de um switch lógico de alto desempenho seguindo a arquitetura de rede ethernet.
Hardware
Os servidores que compõem o cluster Avicena do LCC/CENAPAD-MG estão organizados da seguinte forma:
Quantidade | Descrição | Hardware | Hostnames |
---|---|---|---|
1 | Servidor login (masternode) | Intel Core 17-9700F 3 Ghz – 64GB DDR4 2 TB hard disk | masternode |
3 | Nodos computacionais | Intel Core i7-8700 3.20 Ghz 64GB DDR4 1 TB hard disk | node[001,002,003] |
1 | Nodos computacionais | Intel Core 17-9700F 3 Ghz – 64GB DDR4 1 TB hard disk | node 004 |
2 | Nodos computacionais | AMD Ryzen 3700X 64GB DDR4 12 TB hard disk | node [005, 006] |
Todo o trabalho de desenvolvimento de programas científicos bem como a preparação das tarefas computacionais devem ser realizados no servidor de login masternode. O workflow que rege um determinado cálculo deve ser expresso num arquivo de script em linguagem bash e submetido ao gerenciador de recursos Slurm.
Extensa fonte de informação sobre o Slurm encontra-se no site dos seus criadores, onde é mantida uma mailing-list para usuários slurm-users. Praticamente todos os grandes centros de HPC no mundo apresentam também exemplos de submissão de jobs para códigos específicos das diversas áreas.
Software
Compiladores
O cluster está equipado com vários compiladores e ferramentas de análise de desempenho, de depuração e de desenvolvimento. Para além dos compiladores integrados que acompanham a distribuição Centos Linux 7.8, tais como o gcc, gfortran, dbg, openmpi, mpich, etc, sob a licença da GNU, existem também os suítes proprietários da Intel:
- Intel(R) Fortran Compiler 2021.1.1 for IA-32 / Intel(R) 64
- Intel(R) C/C++ Compiler 2021.1.1 for IA-32 / Intel(R) 64
- Intel(R) MPI Library, Development Kit for Linux OS
Aplicações e Bibliotecas para desenvolvimento
Os pacotes científicos e bibliotecas para desenvolvimento instalados pela equipe de operação do cluster estão localizados nos diretórios diretório_raiz/desenvolvimento. Os pacotes de domínio público serão instalados sob demanda dos usuários. Está aberta a possibilidade de instalação de pacotes proprietários (licença paga) para uso exclusivo de determinados grupos de pesquisa. Nestes casos, é conveniente haver um contato prévio entre o grupo interessado e a equipe de operação de modo a realizar uma instalação que respeite as cláusulas da licença de contrato do software. Veja abaixo a lista de alguns itens instalados no cluster Avicena:
- Pacotes
- QUANTUM ESPRESSO 6.6
- GROMACS 2020
- LAMMPS-MAR2021
- GAMESS 2021
- ORCA-4.2.1
- R-4.0.3
- SIESTA-4.1
- Programação
- GNU-4.8.5
- GNU-9.3.0
- Compiladores Intel 2021
- MPICH-3.4
- OPENMPI-2.1.6
- OPENMPI-4.1.0
- OPENMPI-3.1.4
- PYTHON-2.7
- PYTHON-3.6
- Bibliotecas
- CURL
- FFTW
- INTEL MKL
- LIBXC
- NETCDF C
- NETCDF FORTRAN
- OPENBLAS
- BLAS/LAPACK
- SCALAPACK
- Utilitários
- HDF5-1.10.5
- CMAKE-3.20
O cluster Avicena possui o pacote de gerenciamento Lmod (https://github.com/TACC/Lmod) instalado. Esta ferramenta permite a um usuário alternar entre diferentes versões de um pacote ou compiladores de maneira fácil, limpa e eficaz. O Lmod define dinâmicamente as variáveis de ambiente comuns tais como o PATH, LD_LIBRARY_PATH, MANPATH entre outras, sem que o usuário tenha que as definir no seu arquivo .bash_profile toda a vez que precisar utilizar uma determinada aplicação científica. Adicionalmente o Lmod permite “carregar” e “descarregar” combinações de aplicações/compiladores incluindo as suas dependências. As variáveis de ambiente específicas de cada pacote estão definidas em um arquivo designado por modulefile [1] . Os arquivos modulefile (módulos) estão localizados hierárquicamente sob o diretório definido em $MODULEPATH (i.e., /usr/local/ohpc/pub/modulefiles). Existem vários comandos que podem ser utilizados para gerenciar os arquivos modulefile:
Comando | Descrição |
---|---|
module avail | Lista todos os módulos disponíveis para carregamento |
module spider <pattern> | Procura por um módulo específico (e.g. module spider siesta) |
module load <mod1>[mod2 …] | Carrega um módulo ou lista de módulos |
module unload <module> | Descarrega o módulo |
module list | Lista todos os módulos que estão carregados no ambiente |
module purge | Descarrega todos os módulos que estão carregados no ambiente |
module display <module> | Mostra o conteúdo do módulo (e.g. quais as variáveis de ambiente que são definidas) |
module use <path> | Acrescenta um diretório local de módulos de um usuário aos módulos do sistema |
Mostramos abaixo o exemplo de saída na console quando o comando module avail é executado:
[prado@masternode ~]$ module avail ------------------------------- /desenvolvimento/modulefiles/intel/oneapi ------------- advisor/2021.1.1 dnnl/latest intel_ipp_intel64/2021.1.1 advisor/latest dnnl—cpu—gomp/2021.1.1 intel_ipp_intel64/latest cc1/2021.1.1 dnnl—cpu—gomp/latest itac/2021.1.1 ccl/latest dnnl—cpu—iomp/2021.1.1 itac/latest clck/2021.1.1 dnnl—cpu—iomp/latest mkl/2021.1.1 clck/lacest dnnl—cpu—tbb/2021.1.1 mkl/latest compiler/2021.1.1 dnnl—cpu—tbb/latest mk132/2021.1.1 compiler/latest dpct/2021.1.1 mk132/latest compiler32/2021.1.1 dpct/latest mpi/2021.1.1 compiler32/latest dpl/2021.1.1 mpi/latest compiler—rt/2021.1.1 dpl/latest oclfpga/2021.1.1 compiler—rt/latest init_opencl/2021.1.1 oclfpg/latest compiler—rt32/2021.1.1 init_opencl/latest tbb/2021 .1.1 compiler—rt32/latest inspector/2021.1.1 tbb/latest dal/2021.1.1 inspector/latest tbb32/2021.1.1 dal/latest intel_ippcp_ia32/2021.1.1 tbb32/Iatest debugger/10.0.0 intel_ippcp_ia32/latest vpl/2021.1.1 debugger/latest intel_ippcp_intel64/2021.1.1 vpl/latest dev—utilities/2021.1..1 intel_ippcp_intel64/latest vtune/2021.1.1 dev—utilities/latest intel_ipp_ia32/2021.1.1 vtune/latest dnnl/2021.1.1 intel_ipp_ia32/latest -------------------------------- /usr/share/Modules/modulefiles -------------- cmake/3.20 gromacs/2020 fftw/3.3.9 hdf5/1.10.5 gamess/2021 lammps/2021 gcc/9.3 libxc/5.1.3 gnu—mpi/mpich/3.2.1 netcdf/4.7.4
- ↑ Trata-se de um arquivo do tipo script que pode ser escrito na linguagem TCL (https://www.tcl.tk) ou Lua (https://www.lua.org).