ManyCore » History » Version 4

Gabriel Winckler, 01 Jul 2013 17:03

1 1 Beraldo Leal
h1. ManyCore
2 1 Beraldo Leal
3 2 Beraldo Leal
h2. Acessando o XeonPhi
4 1 Beraldo Leal
5 1 Beraldo Leal
A XeonPhi está instalada na máquina (phi01.ncc.unesp.br), para acessar você deve ter uma conta na base LDAP do NCC.
6 1 Beraldo Leal
7 1 Beraldo Leal
<pre>
8 1 Beraldo Leal
$ ssh phi01.ncc.unesp.br
9 1 Beraldo Leal
</pre>
10 1 Beraldo Leal
11 4 Gabriel Winckler
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:
12 1 Beraldo Leal
13 1 Beraldo Leal
<pre>
14 4 Gabriel Winckler
$ srun --pty --gres=mic bash -i
15 1 Beraldo Leal
</pre>
16 1 Beraldo Leal
17 1 Beraldo Leal
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.
18 1 Beraldo Leal
19 1 Beraldo Leal
Para executar um script não interativo, e com tempo máximo de execução de 2 horas, execute:
20 1 Beraldo Leal
21 1 Beraldo Leal
<pre>
22 4 Gabriel Winckler
$ srun --gres=mic -t 2:00:00 /home/user/script.sh
23 1 Beraldo Leal
</pre>
24 1 Beraldo Leal
25 1 Beraldo Leal
Para ver a fila atual, execute:
26 1 Beraldo Leal
27 1 Beraldo Leal
<pre>
28 4 Gabriel Winckler
$ squeue
29 1 Beraldo Leal
</pre>
30 1 Beraldo Leal
31 1 Beraldo Leal
Desta forma você estará na máquina que possui o XeonPhi instalado, para fazer ssh para a própria XeonPhi, execute:
32 1 Beraldo Leal
33 1 Beraldo Leal
<pre>
34 4 Gabriel Winckler
$ ssh root@$(get_mics -1)
35 1 Beraldo Leal
</pre>
36 3 Beraldo Leal
37 3 Beraldo Leal
h2. Compilação
38 3 Beraldo Leal
39 3 Beraldo Leal
No diretório _/opt/ncc_demo/_ existe o arquivo _hello-openmp.c_. Copie para o seu diretório.
40 3 Beraldo Leal
41 3 Beraldo Leal
h3. Compilação OpenMP
42 3 Beraldo Leal
43 3 Beraldo Leal
<pre>
44 3 Beraldo Leal
# compilacao
45 3 Beraldo Leal
icc -mmic -openmp hello-openmp.c -o hello-openmp
46 3 Beraldo Leal
47 3 Beraldo Leal
# copie o ambiente para o xeon phi
48 1 Beraldo Leal
/opt/ncc-demo/copy-openmp-env.sh
49 3 Beraldo Leal
</pre>
50 3 Beraldo Leal
51 3 Beraldo Leal
h3. Execução interativa
52 3 Beraldo Leal
53 1 Beraldo Leal
<pre>
54 3 Beraldo Leal
# aloque o recurso
55 4 Gabriel Winckler
srun --pty --gres=mic bash -i
56 3 Beraldo Leal
57 3 Beraldo Leal
# copie o seu executável
58 3 Beraldo Leal
scp hello-openmp root@mic0:
59 3 Beraldo Leal
60 3 Beraldo Leal
# acesse o xeon phi
61 4 Gabriel Winckler
ssh root@$(get_mics -1)
62 3 Beraldo Leal
63 3 Beraldo Leal
# execute sua aplicação
64 1 Beraldo Leal
./hello-openmp
65 3 Beraldo Leal
66 1 Beraldo Leal
# termine a sessão (2x)
67 1 Beraldo Leal
exit
68 1 Beraldo Leal
exit
69 1 Beraldo Leal
</pre>
70 1 Beraldo Leal
71 1 Beraldo Leal
h3. Execução em fila
72 1 Beraldo Leal
73 4 Gabriel Winckler
Alternativamente, para enviar o processo como job batch, prepare um arquivo (hello-openmp.sub):
74 3 Beraldo Leal
<pre>
75 3 Beraldo Leal
#!/bin/bash
76 4 Gabriel Winckler
MIC=$(get_mics -1)
77 4 Gabriel Winckler
scp hello-openmp root@$MIC:
78 4 Gabriel Winckler
ssh root@$MIC /root/hello-openmp
79 4 Gabriel Winckler
</pre>
80 4 Gabriel Winckler
81 4 Gabriel Winckler
e envie para a fila
82 4 Gabriel Winckler
<pre>
83 4 Gabriel Winckler
srun --gres=mic hello-openmp.sub
84 4 Gabriel Winckler
</pre>