Aula 05 – Laboratório de Computação Distribuída de Alto Desempenho 1
Aula 05 - Computação Distribuída de Alto Desempenho
1. No laboratório, para se logar no Windows XP use:
Conta: Aluno Password: rnp
2. Os nós (node3, node4 e node5 com 2 CPUs cada) do cluster foram separados para a realização deste laboratório
3. Para se logar no SSolar use o putty (ssh) disponível na pasta CBPF no desktop do Windows
Login: escx (substitua “x” pelo número do seu computador) Password: cbpf
esc30@ssolar:~
esc30@ssolar:/home/esc30$ ls -l total 44
drwxr-xr-x 2 esc30 esc30 4096 Jul 18 20:20 charm_hello/
drwxr-xr-x 2 esc30 esc30 4096 Jul 18 20:20 charm_integra/
drwxr-xr-x 2 esc30 esc30 4096 Jul 20 17:33 contador/
drwxr-xr-x 2 esc30 esc30 4096 Jul 20 17:33 mpi_bcast/
drwxr-xr-x 2 esc30 esc30 4096 Jul 20 17:33 mpi_finalize/
drwxr-xr-x 2 esc30 esc30 4096 Jul 20 17:33 mpi_gather/
drwxr-xr-x 2 esc30 esc30 4096 Jul 20 17:33 mpi_getprocname/
drwxr-xr-x 2 esc30 esc30 4096 Jul 20 17:34 mpi_integral/
drwxr-xr-x 2 esc30 esc30 4096 Jul 20 17:34 mpi_reduce/
drwxr-xr-x 2 esc30 esc30 4096 Jul 20 17:34 mpi_scatter/
drwxr-xr-x 2 esc30 esc30 4096 Jul 20 17:34 mpi_wtime/
-rw-r--r-- 1 esc30 esc30 504 Jul 20 22:10 script.pbs esc30@ssolar:/home/esc30$
4. Utilize o WinSCP disponível na pasta CBPF para editar os arquivos no SSolar.
Aula 05 – Laboratório de Computação Distribuída de Alto Desempenho 2
5. Prática A: Programação orientada a objetos
$ cd ~/contador
$ g++ contador.cc -o contador.x
$ ./contador.x
6. Prática B: MPI_Finalize (4 Processadores)
$ cd ~/mpi_finalize
$ mpicc mpi_finalize.c -o mpi_finalize.x
$ qsub mpi_finalize.pbs
$ more saida_mpi_finalize
7. Prática C: MPI_Bcast (4 Processadores)
$ cd ~/mpi_bcast
$ mpicc mpi_bcast.c -o mpi_bcast.x
$ qsub mpi_bcast.pbs
$ more saida_mpi_bcast
8. Prática D: MPI_Scatter (4 Processadores)
$ cd ~/mpi_scatter
$ mpicc mpi_scatter.c -o mpi_scatter.x
$ qsub mpi_scatter.pbs
$ more saida_mpi_scatter
9. Prática E: MPI_Gather (4 Processadores)
$ cd ~/mpi_gather
$ mpicc mpi_gather.c -o mpi_gather.x
$ qsub mpi_gather.pbs
$ more saida_mpi_gather
10. Prática F: MPI_Reduce (4 Processadores)
$ cd ~/mpi_reduce
$ mpicc mpi_reduce.c -o mpi_reduce.x
$ qsub mpi_reduce.pbs
$ more saida_mpi_reduce
11. Prática G: MPI_Wtime e MPI_Wtick (1 processador)
$ cd ~/mpi_wtime
$ mpicc mpi_wtime.c -o mpi_wtime.x
$ qsub mpi_wtime.pbs
$ more saida_mpi_wtime
12. Prática H: MPI_Get_processor_name (4 Processadores)
$ cd ~/mpi_getprocname
$ mpicc mpi_getprocname.c -o mpi_getprocname.x
$ qsub mpi_getprocname.pbs
$ more saida_mpi_getprocname
Aula 05 – Laboratório de Computação Distribuída de Alto Desempenho 3
13. Prática I: Integração Numérica usando MPI
$ cd ~/mpi_integral
$ mpicc mpi_integral.c -o mpi_integral.x
$ qsub mpi_integral.pbs (1 processador) #PBS -l nodes=1:ppn=1
$ qstat
$ more saida_mpi_integral
Anote o tempo de execução do programa para 1 Proc? : _____________________
13.1 - Modificar a linha #PBS do arquivo “mpi_integral.pbs” para
#PBS -l nodes=1:ppn=2
Executar
$ qsub mpi_integral.pbs (2 processadores) $ qstat
$ more saida_mpi_integral
Anote o tempo de execução do programa para 2 Proc? : _____________________
13.2 Repetir para (4 e 6 processadores)
Anote o tempo de execução do programa para 4 Proc? : _____________________
Anote o tempo de execução do programa para 6 Proc? : _____________________
14. Prática J: Hello Charm++ (6 processadores)
$ cd ~/charm_hello
$ make
$ qsub hello_charm.pbs
$ qstat
$ mode saida_hello_charm
15. Prática L: Integração Numérica em Charm++
$ cd ~/charm_integra
$ make
$ qsub integra01.pbs (1 processador)
$ qstat
$ more saida_charm_integra_p1
$ qsub integra02.pbs (2 processadores)
$ qstat
$ more saida_charm_integra_p2
$ qsub integra03.pbs (3 processadores)
$ qstat
$ more saida_charm_integra_p3
Aula 05 – Laboratório de Computação Distribuída de Alto Desempenho 4
$ qsub integra04.pbs (4 processadores)
$ qstat
$ more saida_charm_integra_p4
$ qsub integra05.pbs (5 processadores)
$ qstat
$ more saida_charm_integra_p5
$ qsub integra06.pbs (6 processadores)
$ qstat
$ more saida_charm_integra_p6
Anote o tempo de execução para cada execução na tabela abaixo: