h1. ManyCore h2. Acessando o XeonPhi A XeonPhi está instalada na máquina (phi01.ncc.unesp.br), para acessar você deve ter uma conta na base LDAP do NCC.
$ ssh phi01.ncc.unesp.brPara garantir que um usuário/grupo utilize a XeonPhi por vez, nesta máquina encontra-se instalado o gerenciador de recursos, "SLURM":https://computing.llnl.gov/linux/slurm/slurm.html. Então toda vez que quiser utilizar o XeonPhi, você deve entrar na fila de espera para utilização. Utilize o comando abaixo para obter uma shell interativa:
$ srun --pty --gres=mic bash -iAo sair da shell automaticamente você liberará o recurso para outros utilizarem. Sua shell será finalizada após *1 hora*, você pode alterar esse valor com o parametro walltime para o tempo máximo de utilização de 24 horas. Para executar um script não interativo, e com tempo máximo de execução de *2 horas*, execute:
$ srun --gres=mic -t 2:00:00 /home/user/script.shPara alocar *2 placas*, use:
$ srun --gres=mic:2 /home/user/script.shPara ver a fila atual, execute:
$ squeueDesta forma você estará na máquina que possui o XeonPhi instalado, para fazer ssh para a própria XeonPhi, execute:
$ ssh $(get_mics -1)h2. Compilação No diretório _/opt/ncc_demo/_ existe o arquivo _hello-openmp.c_. Copie para o seu diretório. h3. Compilação OpenMP
# compilacao icc -mmic -openmp hello-openmp.c -o hello-openmp # copie o ambiente para o xeon phi /opt/ncc-demo/copy-openmp-env.shh3. Execução interativa
# aloque o recurso srun --pty --gres=mic bash -i MIC=$(get_mics -1) # copie o seu executável scp hello-openmp $MIC: # acesse o xeon phi ssh $MIC # execute sua aplicação ./hello-openmp # termine a sessão (2x) exit # ssh da MIC exit # srun iterativoh3. Execução em fila Alternativamente, para enviar o processo como job batch, prepare um arquivo (hello-openmp.sh):
#!/bin/bash MIC=$(get_mics -1) scp hello-openmp $MIC: ssh $MIC ./hello-openmpe envie para a fila
chmod +x hello-openmp.sh srun --gres=mic hello-openmp.shh2. MPI Exemplo de compilação e execução MPI:
. /opt/intel/impi/4.1.0/bin64/mpivars.sh cp /opt/ncc-demo/hello-mpi.c mpiicc -mmic hello-mpi.c -o hello-mpi /opt/ncc-demo/copy-impi-env.sh srun --pty --gres=mic bash -i MIC=$(get_mics -1) scp hello-mpi $MIC: ssh $MIC mpiexec -n 240 ./hello-openmp exit # ssh da MIC exit # srun iterativoh3. Modo hybrid Esse tutorial apresenta a utilização de uma forma mais sofisticada, usando o modo hybrid, com o processador e mais de uma mic rodando a mesma simulação. http://software.intel.com/en-us/articles/using-the-intel-mpi-library-on-intel-xeon-phi-coprocessor-systems Nesse caso é muito importante observar a assimetria de processamento e evitar barreiras de sincronização. h3. HPL Para a realização de benchmark foi usado o binário fornecido no pacote da Intel, disponível em
/opt/intel/composerxe/mkl/benchmarks/mp_linpack/bin_intel/mic/