Instalando Aplicações
É bastante comum que o usuário iniciante tente fazer uma instalação em seu /home/
do GridUnesp da mesma forma que faz no computador pessoal. Contudo, num computador pessoal o usuário geralmente tem a senha de root e consegue instalar programas na raiz do sistema (locais como /usr/
, /lib/
).
No GridUnesp, todavia, o usuário não tem privilégio de root. Então, ao tentar fazer instalações (como se root fosse), recebe uma mensagem de erro
... permission denied ...
Mas isso não significa que não possa ter as aplicações/bibliotecas instaladas no cluster.
Instalação feita pelo próprio usuário
Muitas aplicações científicas, softwares e bibliotecas podem ser instaladas em locais diferentes, como no /home/
do usuário. Basta fazer as devidas configurações durante a instalação.
Instalando no home
Na maioria dos casos, as instalações podem ser feitas indicando o local em que deseja que binários, libs, headears etc. sejam guardados, bastando informar parâmetros como --prefix=
.
Vamos supor que um usuário chamado Spock (cujo login no GridUnesp é spock) queira instar uma aplicação ficticia chamada Enterprise na pasta /home/spock/application/enterprise
e que a instalação permita usar o parâmetro --prefix=
com o comando configure
. O início da instalação então seria realizado com um comando similar a
./configure --prefix=/home/spock/application/enterprise
Naturalmente, este é apenas um caso hipotético. Cada aplicação possui suas peculiaridades, devendo o usuário observar com cuidado as instruções da documentação do programa de interesse. Estes cuidados se referem inclusive às variáveis de ambiente que se deve configurar após a instalação.
Instalação via comandos Conda
Algumas aplicações/bibliotecas podem ser facilmente instaladas usando o ambiente Anaconda.
Digamos que um usário chamado Spock, cujo username seja spock, queira instalar os pacotes Python e numpy para um trabalho que escolheu chamar de startrek. Para isso, primeiramente deverá criar um ambiente Conda usando os comandos abaixo:
module load miniconda/24.4.0-libmamba
conda create -n startrek
Aqui, miniconda/24.4.0-libmamba é o nome do módulo que carrega o ambiente Conda (já instalado no cluster) e que contém os comandos necessários. Módulos miniconda são mais leves que módulos anaconda. Por sua vez, o nome dado ao projeto (startrek) pode ser qualquer um que usuário achar conveniente. É recomendável escolher um que seja de fácil percepção para lembrança futura.
Em seguida, o usuário deve ativar o ambiente criado usando o comando:
source activate startrek
o que fará aparecer na tela algo como
(startrek) [spock@access2 ~]$
Agora, para instalar as aplicações desejados, Spock daria os comandos
conda install python=3.10.4
conda install numpy
Ao utilizar python=3.10.4
, o usuário informa a versão exata que deseja instalar. Caso não informe a versão, será instalada a versão mais recente presente no repositório/canal. Importante observar que os pacotes instalados ficam restritos ao projeto/ambiente criado (startrek, no exemplo).
Para listar todos os pacotes, o comando é
conda list
Para listar todos os projetos criados (tal qual o startrek), o comando é
conda info --envs
Para desativar o ambiente, o comando é
source deactivate startrek
Por fim, toda vez que o usário desejar utilizar os pacotes instalados naquele ambiente, basta dar os comandos
module load miniconda/24.4.0-libmamba
source activate startrek
Para mais informações sobre como trabalhar num ambiente Conda, consulte a documentação do Anaconda.
Instalação feita pelo administrador do sistema
Há casos em que a instalação é demasiada complexa, ou que há o desejo de que aplicação/biblioteca seja disponibilizada para vários usuários. Neste caso, basta informar à equipe de especialistas do GridUnesp (support.ncc@unesp.br
) a aplicação/biblioteca de interesse, bem como o link do site de referência contendo informações sobre ela.
Importante
Por vezes, a equipe do GridUnesp poderá sugerir que a instalação seja realizada no próprio /home/
do usuário. Tudo vai depender das características da aplicação/biblioteca em questão. Como exemplo, é bastante recomendado que instalações com versões muito específicas dos pacotes sejam feitas pelo usuário em seu proprío /home/
. Por outro lado, àquelas que podem ser úteis para uma quantidade maior de usuários (de um mesmo grupo, que seja) seria mais adequada a instalação via módulo.
O GridUnesp utiliza um sistema modular de carregamento de ambiente. Esse sistema permite que sejam disponibilizadas diversas versões de compiladores, bibliotacas e aplicações que, de outra forma, seriam incompatíveis. Uma vez que tenha feito login no GridUnesp, para verificar quais aplicações estão instaladas no cluster, bastar usar o seguinte comando no terminal:
module avail
Irá aparecer na tela algo como
----------------------------------------- /opt/gridunesp/modules ------------------------------------------
allpathslg/44837(default) gcc/10.2.0 openmpi/4.1.5
amber/20(default) gdal/2.4.1 openmpi/4.1.6
anaconda2/5.1.0 ginac/1.7.2(default) openmpi/4.1.6.v2
anaconda3/4.4.0(default) glibc/2.29(default) orca/4.0.1(default)
backmap/0.5(default) gmt/5.4.3(default) orca/4.2.1
beagle/2.1.2(default) grace/5.1.25(default) orca/5.0.3
beagle/4.0.0 gridunesp/1(default) orca/5.0.4
beast/1.8.4 gromacs/4.5.4 orca/6.0.0
beast/1.10.4 gromacs/4.5.4-sbm1.0 orca/6.0.1
beast/2.4.7(default) gromacs/5.1.4 partitionfinder/2.1.1(default)
boost/1.64.0(default) gromacs/2016.3(default) pfinderuce-swsc-en/1.0.0(default)
boost/1.70.0 gromacs/2018.2 phyluce/1.5.0(default)
bowtie2/2.3.5.1(default) gsl/2.6(default) platanus/1.2.4(default)
busco/5.5.0(default) hmmer/3.1b2(default) plumed/2.7.1(default)
charmm/c26b2 intel/compilers/2017(default) quantum-espresso/6.1(default)
charmm/c26b2-serial intel/mpi/2017(default) quantum-espresso/6.6
charmm/c37b2(default) java/1.8(default) quantum-espresso/7.2
charmm/c37b2-serial kraken2/2.1.3(default) quest-qmc/1.4.9(default)
cln/1.3.4(default) lammps/20170331 R/4.0.2(default)
clustalw-mpi/0.13(default) lammps/20180316 raxml-ng/1.0.3(default)
clustalw/2.1(default) lammps/20200303(default) raxml/8.2.11(default)
cmake/3.9.0(default) lammps/20230802 rnxcmp/4.0.7(default)
cmake/3.20.0-rc3 mathematica/9.0 root/6.10.02(default)
cp2k/2023.1(default) mathematica/10.4(default) rsem/1.2.25(default)
crystal/17_v1.0.2 matlab/R2016b-9.1 salmon/0.14.0(default)
crystal/17_v1.0.2_v2(default) matlab/R2019b(default) sga/0.10.15(default)
dftbplus/20.2.1(default) migrate-n/5.0.6(default) siesta/4.0.2
dirac/12.3-mpi(default) miniconda/3(default) siesta/4.1-b3(default)
dirac/12.3-serial miniconda/3-2023-09 siesta/4.1.5.mpi
dirac/12.3-smp miniconda/24.4.0-libmamba siesta/4.1.5.serial
eems/0.0.0(default) mkl/2022.2.0(default) siesta/5.2.0.mpi
espresso/3.3.1(default) mopac/17.162(default) siesta/5.2.0.serial
evigene/23jul15(default) namd/2.12(default) spades/3.15.5(default)
exabayes/1.5(default) namd/2.12-tcp stacks/2.4(default)
exciting/carbon(default) namd/2.13-smp structure/2.3.4(default)
exciting/neon-21 namd/2.13-tcp su2/6.0.0(default)
fastStructure/1.0(default) netcdf/c/4.6.3(default) su2/6.2.0
fhi/071914(default) netcdf/fortran/4.4.5(default) swan/41.31-mpi
foam-extend/4.0(default) openfoam/4.1 swan/41.31-omp
foam-extend/4.1 openfoam/5.x(default) swan/41.31-serial(default)
g_mmpbsa/gromacs-5.1 openfoam/7 tesseract/4.00.00alpha(default)
gamess/2018(default) openfoam/8 trinity/2.8.5(default)
gamess/2020 openfoam/1912 trinity/2.15.1
gamit/10.61 openfoam/2012 udunits2/2.2.26
gamit/10.70(default) openfoam/2112 vasp/6.4.3(default)
gaussian/09(default) openmpi/2.1.1(default) vcftools/0.1.16(default)
gaussian/09.lsm openmpi/3.1.4 weka/3.8.2(default)
gcc/5.3.0 openmpi/4.0.1 xtb/6.6.1(default)
gcc/7.2.0(default) openmpi/4.1.1
gcc/9.3.0 openmpi/4.1.1.v2
Supondo que o usuário queira carregar o ambiente (as variáveis de ambiente) do módulo gcc/10.2.0, bastar usar o comando
module load gcc/10.2.0
Digamos que o usuário tenha carregado os módulos gcc/10.2.0 e boost/1.70.0, mas não lembre quais eram. O comando abaixo irá listar todos os módulos ativos:
module list
Como resultado, irá aparecer na tela o seguinte resultado:
Currently Loaded Modulefiles:
1) gridunesp/1(default) 2) gcc/10.2.0 3) boost/1.70.0
Por padrão, o módulo gridunesp/1 é carregado assim que o usuário faz login no cluster. Este módulo serve para habilitar os scripts para submissão de simulações (jobs).
Para desfazer, ou seja, para remover as variáveis de ambiente do módulo carregado, e considerando os exemplos acima, os comandos seriam
module unload gcc/10.2.0
module unload boost/1.70.0
Importante
O cluster do GridUnesp não funciona com Ubuntu, como se poderia supor. Anteriormente, o cluster era baseado em Linux com distribuição CentOS. Atualmente ele funciona com a distribuição AlmaLinux, o qual apresenta compatibilidade 1 para 1 com CentOS. Isso significa que todos os comandos que eram usados para CentOS funcionam igualmente para AlmaLinux. Além disso, caso, em situações bastante excepcionais, seja necessário a equipe do GridUnesp fazer instalações na raiz do sistema, seria utilizado o comando yum install
(em vez do apt-get install
do Ubuntu).
A seção Aplicações instaladas traz a lista das várias aplicações/bibliotecas instaladas via módulo, bem como exemplos simples de scripts de submissão para cada uma delas.
Resumo dos comandos de módulo
Listando módulos disponíveis
module avail
Carregando um módulo
module load intel/compilers/2017
Listando os módulos carregados
module list
Desativando um módulo
module unload intel/compilers/2017