ManyCore » History » Version 11
Version 10 (Gabriel Winckler, 04 Jul 2013 18:21) → Version 11/13 (Gabriel Winckler, 04 Jul 2013 18:24)
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.
<pre>
$ ssh phi01.ncc.unesp.br
</pre>
Para 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:
<pre>
$ srun --pty --gres=mic bash -i
</pre>
Ao 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:
<pre>
$ srun --gres=mic -t 2:00:00 /home/user/script.sh
</pre>
Para alocar *2 placas*, use:
<pre>
$ srun --gres=mic:2 /home/user/script.sh
</pre>
Para ver a fila atual, execute:
<pre>
$ squeue
</pre>
Desta forma você estará na máquina que possui o XeonPhi instalado, para fazer ssh para a própria XeonPhi, execute:
<pre>
$ ssh root@$(get_mics -1)
</pre>
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
<pre>
# compilacao
icc -mmic -openmp hello-openmp.c -o hello-openmp
# copie o ambiente para o xeon phi
/opt/ncc-demo/copy-openmp-env.sh
</pre>
h3. Execução interativa
<pre>
# aloque o recurso
srun --pty --gres=mic bash -i
MIC=$(get_mics -1)
# copie o seu executável
scp hello-openmp root@$MIC:
# acesse o xeon phi
ssh root@$MIC
# execute sua aplicação
./hello-openmp
# termine a sessão (2x)
exit # ssh da MIC
exit # srun iterativo
</pre>
h3. Execução em fila
Alternativamente, para enviar o processo como job batch, prepare um arquivo (hello-openmp.sh):
<pre>
#!/bin/bash
MIC=$(get_mics -1)
scp hello-openmp root@$MIC:
ssh root@$MIC /root/hello-openmp
</pre>
e envie para a fila
<pre>
chmod +x hello-openmp.sh
srun --gres=mic hello-openmp.sh
</pre>
h2. MPI
Exemplo de compilação e execução MPI:
<pre>
. /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 root@$MIC:
ssh root@$MIC
mpiexec -n 240 ./hello-openmp
exit # ssh da MIC
exit # srun iterativo
</pre>
h3. HPL
Para a realização de benchmark foi usado o binário fornecido no pacote da Intel, disponível em
<pre>
/opt/intel/composerxe/mkl/benchmarks/mp_linpack/bin_intel/mic/
</pre>
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.
<pre>
$ ssh phi01.ncc.unesp.br
</pre>
Para 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:
<pre>
$ srun --pty --gres=mic bash -i
</pre>
Ao 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:
<pre>
$ srun --gres=mic -t 2:00:00 /home/user/script.sh
</pre>
Para alocar *2 placas*, use:
<pre>
$ srun --gres=mic:2 /home/user/script.sh
</pre>
Para ver a fila atual, execute:
<pre>
$ squeue
</pre>
Desta forma você estará na máquina que possui o XeonPhi instalado, para fazer ssh para a própria XeonPhi, execute:
<pre>
$ ssh root@$(get_mics -1)
</pre>
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
<pre>
# compilacao
icc -mmic -openmp hello-openmp.c -o hello-openmp
# copie o ambiente para o xeon phi
/opt/ncc-demo/copy-openmp-env.sh
</pre>
h3. Execução interativa
<pre>
# aloque o recurso
srun --pty --gres=mic bash -i
MIC=$(get_mics -1)
# copie o seu executável
scp hello-openmp root@$MIC:
# acesse o xeon phi
ssh root@$MIC
# execute sua aplicação
./hello-openmp
# termine a sessão (2x)
exit # ssh da MIC
exit # srun iterativo
</pre>
h3. Execução em fila
Alternativamente, para enviar o processo como job batch, prepare um arquivo (hello-openmp.sh):
<pre>
#!/bin/bash
MIC=$(get_mics -1)
scp hello-openmp root@$MIC:
ssh root@$MIC /root/hello-openmp
</pre>
e envie para a fila
<pre>
chmod +x hello-openmp.sh
srun --gres=mic hello-openmp.sh
</pre>
h2. MPI
Exemplo de compilação e execução MPI:
<pre>
. /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 root@$MIC:
ssh root@$MIC
mpiexec -n 240 ./hello-openmp
exit # ssh da MIC
exit # srun iterativo
</pre>
h3. HPL
Para a realização de benchmark foi usado o binário fornecido no pacote da Intel, disponível em
<pre>
/opt/intel/composerxe/mkl/benchmarks/mp_linpack/bin_intel/mic/
</pre>