Guia Prático do cluster Avicena LCC/CENAPAD-MG

De Wiki LCC
Ir para navegação Ir para pesquisar

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
  1. 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).