SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
UEM - Universidade Estadual de Maringá
           DIN - Departamento de Informática
               Mestrado em Ciência da Computação




Desenvolvimento de Algoritmos Paralelos para Simulador
         de Multiprocessadores Superescalares




           Mestrando: Luiz Arthur Feitosa dos Santos

           Orientador: Prof. Dr. João Angelo Martini
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares

   ESTRUTURA DO TRABALHO


                  COMPUTAÇÃO PARALELA

                  SIMULADOR DE ARQUITETURAS

                  PROGRAMAÇÃO PARALELA E ALGORITMOS PARALELOS

                  AVALIAÇÃO DE DESEMPENHO

                  ALGORITMOS PARALELOS PARA O SMS

                  TRABALHOS FUTUROS

                  CONCLUSÃO



Mestrando: Luiz Arthur Feitosa dos Santos                         2
Desenvolvimento de Algoritmos Paralelos para
                    Simulador de Multiprocessadores Superescalares
   COMPUTAÇÃO PARALELA
       PROCESSAMENTO SEQÜENCIAL

              Memória
                                                                      Dispositivo
                                                                      de entrada
                                               Unidade
                                              Aritmética                                  MÁQUINA DE VON NEUMANN
                                                lógica                Dispositivo            (TANEMBAUM 2001)
              Unidade de                                               de saída
               controle

                                  Acumulador
                                                                                    (a)

     ARQUITETURAS PARALELAS COM MEMÓRIA COMPARTILHADA E DISTRIBUÍDA
                                                                                                                                 Processador 1
                                                                                                                                    Cache
         Processador 1                                 Memória
                                                                                                                                   Memória




                                                                                                          Rede de Interconexão
            Cache
                                 Barramento




                                                                                                                                 Processador 2
         Processador 2                                                                          Disp.
            Cache                                                                             Entrada/S                             Cache
                                                                                                aída
                                                                                                                                   Memória
                                                            Disp.
         Processador N                                     Entrada/
                                                                                                                                 Processador N
            Cache                                           Saída
                                                                                                                                    Cache

                           (b)                                                                                                     Memória


                                                                                                                          (c)
Mestrando: Luiz Arthur Feitosa dos Santos                                                                                                        3
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
   SIMULADOR DE ARQUITETURAS
    Simuladores de arquiteturas:

      MINT (MIPS Interpreter) (VEENSTRA, 1993) utiliza threads para simular um ambiente
    multiprocessador, conta com sistema de interconexão e hierarquia de memória. O MINT roda
    executáveis compilados para plataformas MIPS (R3000).

      RSIM (Rice Simulator) (PAI, 1997) implementa um modelo de processador detalhado para
    arquitetura superescalar. Simula um sistema multiprocessador de memória compartilhada. O RSIM
    roda nas plataformas SPARC e Solaris.

     ABSS (SPARC Simulator) (SUNADA, 1998) empregado principalmente nas simulações de
    memória. O ABSS usa threads para simular multiprocessadores. Ele roda apenas nas plataformas
    SPARC e possui interface gráfica derivada do MINT.

      Proteus (BREWER, 1991) permite a simulação de multiprocessadores com interconexões do tipo:
    bus, k-ary, n-cube e butterfly. Possui biblioteca para passagem de mensagens, gerenciamento de
    memória e threads, além de coleta de dados e interface gráfica sofisticada para representar as saídas
    da simulação.




Mestrando: Luiz Arthur Feitosa dos Santos                                                             4
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
   SIMULADOR DE ARQUITETURAS

    Augmint (NGUYEN, 1996) usa threads para simular um sistema multiprocessador com espaço de
   memória compartilhada e privada (para determinadas variáveis). Ele roda aplicações escritas em C e
   C++ com macros-m4. Ele roda em arquiteturas Intel x86.

    Tango Lite (HERROD, 1993) simula um ambiente multiprocessador com memória compartilhada.
   Ao contrário do seu predecessor o Tango, o Tango Lite usa threads ao invés de Unix Process. O
   Tango Lite roda em plataforma MIPS (R3000).

     MulSim (MATLOFF, 2005) é um simulador para ambiente multiprocessador com memória
   compartilhada, dispondo de vários tipos de interconexão entre memória e processador.

     Multiprocessor Enhancements of the SimpleScalar Tool Set (MANJIKIAN, 2001). Simulador
   funcional (não detalhado) e simulador de cache baseados na ferramenta SimpleScalar, usam threads
   para simular um ambiente multiprocessador. Conta com suporte à visualização gráfica do conteúdo
   da cache.

     SMINT ou Superescalar MINT (LU, 1998) é um simulador de multiprocessadores superescalares
   baseado no simulador MINT.



Mestrando: Luiz Arthur Feitosa dos Santos                                                          5
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
   SIMULADOR DE ARQUITETURAS

            SIMPLESCALAR
               O SimpleScalar foi desenvolvido em 1992 na Universidade de Wisconsin sob
               coordenação de Gurindar S. Sohi e pode emular diversos conjuntos de instruções
               como por exemplo: ARM, Alpha, PowerPC e x86, e devido à sua arquitetura
               aberta ele pode ser estendido a outros conjuntos de instruções.



             SMS (SIMULADOR DE MULTIPROCESSADORES SUPERESCALAR)
                 O SMS tem como base o núcleo do simulador SimpleScalar. Atualmente a
                 ferramenta dispõe de memória distribuída, primitivas de comunicação (Send e
                 Receive) para troca de mensagens e uso de uma rede de interconexão com
                 topologia de barramento compartilhado e viabiliza o desenvolvimento de
                 aplicações e análise de desempenho de computadores paralelos.




Mestrando: Luiz Arthur Feitosa dos Santos                                                 6
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
   SIMULADOR DE ARQUITETURAS
         Interface
          Gráfica                 Interface para passagem de parâmetros da simulação
          Interface
         Simulador                               Disparador e Coletor



       Programas           Programa         Programa          Programa     ...   Programa
       do Usuário              1                2                 3                 N


        Simulador         Bibliotecas – Send e Receive            Gerenciador de Memória
          Paralelo
                                                          Protocolo

                                                         Topologia

                          Processador       Processador      Processador   ...   Processador
                               1                 2                3                   N

Mestrando: Luiz Arthur Feitosa dos Santos                                                      7
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
   PROGRAMAÇÃO PARALELA E ALGORITMOS PARALELOS


     Um algoritmo paralelo pode ser definido como um conjunto de processos (partes de um programa)
     que podem ser executados simultaneamente, tais processos podem se comunicar uns com os outros
     a fim de resolver um determinado problema. Já um algoritmo seqüencial é executado passo a passo
     de forma seqüencial como foi definido durante a sua programação (ZARGHAN, 1995).

     A construção de um algoritmo paralelo segue basicamente os seguintes passos:

     •Identificar pontos do programa que podem ser executados de forma paralela;
     •Distribuir as entradas e saídas de dados pertinentes à aplicação, bem como os dados intermediários
     gerados durante a execução das tarefas e que estão associados ao programa;
     •Gerenciar da melhor forma possível o acesso aos dados compartilhados pelos processadores, para
     execução de um dado problema, reduzindo a comunicação entre processos;
     •Sincronizar eficientemente os processadores nos mais diversos estágios de execução de um
     programa paralelo, de forma que os processadores não fiquem com uma carga de trabalho muito
     elevada ou muito baixa.




Mestrando: Luiz Arthur Feitosa dos Santos                                                             8
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
   AVALIAÇÃO DE DESEMPENHO

    Historicamente o tempo de execução ou o tempo decorrido (elapsed time) é uma das métricas mais
    populares para verificar a performance em um dado sistema.

    O speedup é a referência de quão melhor é um sistema paralelo em relação ao sistema seqüencial
    ou outro sistema podendo ser até mesmo outro paralelo.

                   TempoExecuçãoSeqüencial                             TempoExecuçãoParalelo1
   Aceleração =                                         Aceleração =
                   TempoExecuçãoParalelo                               TempoExecuçãoParalelo N

                  Speedup Absoluto                                  Speedup Relativo


    Eficiência é uma medida da fração de tempo na qual um processador é realmente usado. A
    eficiência é considerada uma métrica que investiga a escalabilidade dos algoritmos. Tal métrica é
    obtida pela fórmula E = S/p, sendo S o speedup e p o número de processadores.




Mestrando: Luiz Arthur Feitosa dos Santos                                                          9
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
  ALGORITMO PARALELO DE MULTIPLICAÇÃO DE MATRIZES
                    Mestre                                                 Escravos
  01. #include </usr/sms/com.h>                          01. struct _matriz matriz;
  02. struct _matriz matriz;                             02. struct _vetor vetor;
  03. struct _vetor vetor;                               03. void main(void){
  04. void main(void) {                                  04. openchanel();
  06. openchanel();                                      05. /*recebe matriz B para suas colunas serem multiplicadas
  07. sendbc(((char *)&matriz),sizeof(_matriz));         06. recv_be(((char *)&matriz),sizeof(_matriz));
  08. recv_be(((char *)&matriz),sizeof(_matriz));        07. for (;;){
  09. for (i=0;i<N;++i){                                 08. for(i=0;i<N;++i){
  10.          for (t=0;t<N; ++t){vetor.X[t]=A[i][t];}   09. vtaux[i]=0;}
  11. vetor.linha=i;                                     10. recv_be(((char *)&vetor), sizeof(_vetor));
  12. send(((char *)&vetor), sizeof(_vetor),p);          11. /* realiza a multiplicacao */
  13. if (p==P) p=1;else p++;                            12. for (t=0;t<N;++t){
  14. }                                                  13. for (i=0;i<N;++i){
  15. /*recebe e monta vetores nas matrizes*/            14.           vtaux[t]=vtaux[t]+(vetor.X[i]*matriz.B[i][t]);}
  16. for (i=0;i<N;++i){                                 15. }
  17. recv_be(((char *)&vetor), sizeof(_vetor));         16. /*atribui os calculos ao vetor para devolver ao mestre*/
  18. for (t=0;t<N;++t) {                                17. for (t=0;t<N;++t){vetor.X[t]=vtaux[t];}
  19. C[vetor.linha][t]=vetor.X[t];                      18. /*Envia vetor calculado ao mestre*/
  20. }                                                  19. send(((char *)&vetor), sizeof(_vetor),0);



Mestrando: Luiz Arthur Feitosa dos Santos                                                                       10
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
  ALGORITMO PARALELO DE MULTIPLICAÇÃO DE MATRIZES
                # total simulation time in seconds
                sim_elapsed_time              53410

                # total number of instructions executed
                sim_total_insn_00       23773083318
                sim_total_insn_01       12126038543

                # total simulation time in cycles
                sim_cycle               11878967426

                # total number of ocupance cycles
                inet_ocupance_cycles_00     2560800
                inet_ocupance_cycles_01      320400

                # total number of bytes received
                inet_received_bytes_00      5123200
                inet_received_bytes_01      3841600

                # total number of bytes sended
                inet_sended_bytes_00       10243200
                inet_sended_bytes_01        1281600

                               Saída reduzida de uma simulação no SMS

Mestrando: Luiz Arthur Feitosa dos Santos                               11
Desenvolvimento de Algoritmos Paralelos para
                                   Simulador de Multiprocessadores Superescalares
  ALGORITMO PARALELO DE MULTIPLICAÇÃO DE MATRIZES
                                    Multiplicação de Matrizes 50x50                                     Multiplicação de Matrizes 100x100

                          16                                                                    160
                          14                                                                    140




                                                                            Tempo em segundos
      Tempo em segundos




                                                                       1                                                                    1
                          12                                                                    120
                                                                       2                                                                    2
                          10                                                                    100
                                                                       4                                                                    4
                          8                                                                     80
                                                                       8                                                                    8
                          6                                                                     60
                                                                       16                                                                   16
                          4                                                                     40
                                                                       32                                                                   32
                          2                                                                     20
                          0                                                                      0
                                              Processadores                                                        Processadores




                                   Multiplicação de Matrizes 600x600                                    Multiplicação de Matrizes 800x800

                          40000                                                                 90000
                          35000                                                                 80000
      Tempo em segundos




                                                                            Tempo em segundos
                                                                       1                        70000                                       1
                          30000
                                                                       2                        60000                                       2
                          25000
                                                                       4                        50000                                       4
                          20000
                                                                       8                        40000                                       8
                          15000
                                                                       16                       30000                                       16
                          10000                                                                 20000
                                                                       32                                                                   32
                          5000                                                                  10000
                               0                                                                    0
                                               Processadores                                                        Processadores



                                                Tempo de execução do algoritmo de multiplicação de matrizes
Mestrando: Luiz Arthur Feitosa dos Santos                                                                                                        12
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
  ALGORITMO PARALELO DE MULTIPLICAÇÃO DE MATRIZES
                                                        Multiplicação de Matrizes
   Speedup apresentado
                                          30
      pelo algoritmo
                                          25
        paralelo de                                                                      50x50
                                          20
     multiplicação de        Speedup                                                     100x100
                                          15
         matrizes                                                                        600x600
                                          10
                                                                                         800x800
                                           5
                                           0
                                                1   2        4      8      16       32
                                                           Processadores



                                                        Multiplicação de Matrizes

                                          1,8
                                          1,6
                                          1,4
                                                                                         50x50     Eficiência apresentada
                                          1,2
                             Eficiência




                                            1                                            100x100   pelo algoritmo paralelo
                                          0,8                                            600x600     de multiplicação de
                                          0,6
                                                                                         800x800
                                          0,4                                                              matrizes
                                          0,2
                                            0
                                                1   2         4      8     16       32
                                                           Processadores

Mestrando: Luiz Arthur Feitosa dos Santos                                                                            13
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
  ALGORITMO PARALELO PARA CÁLCULO DO π


    O π é um número irracional expresso por uma dízima infinita não periódica. A busca incansável por
    esse número surgiu devido ao fato dele estar ligado a dois problemas fundamentais do universo
    matemático.

    Existem diversas maneiras de se calcular o π, tais como: série de Fourier, Mclaurin, Taylor e via
    integração. O método utilizado para a construção do algoritmo aqui proposto será o de integração
                                                            1
                                                                4
                                                         π =∫
                                                            0
                                                              1+ x2

                     Entrada: Nº iterações N, Total de          Entrada: Número do processador NP.
                     processadores TP.                          Saída: Valor parcial de
                     Saída: Valor global de pi_global           recv_be(N,TP)
                     send_bc(N,TP)                              w = 1.0/n
                     for (x=1; x<=TP; x++)                      for (i=NP; i<=N; i=i+TP)
                      recv_be(pi)                               x = w * (i – 0,5)
                      pi_global=pi_global+pi                    pi = pi + (4.0 / (1.0 + (x * x)))
                     mostra (pi_global)                         pi = pi * w
                                                                send(pi)
                                     Mestre                                  Escravo



Mestrando: Luiz Arthur Feitosa dos Santos                                                            14
Desenvolvimento de Algoritmos Paralelos para
                                 Simulador de Multiprocessadores Superescalares
  ALGORITMO PARALELO PARA CÁLCULO DO π
                                   Cálculo do pi (n=10.000)                                           Cálculo do pi (n=20.000)

                           70                                                                 140
                           60                                                                 120
       Tempo em segundos




                                                                          Tempo em segundos
                                                                    1                                                              1
                           50                                       2                         100                                  2
                           40                                       4                          80                                  4
                           30                                       8                          60                                  8

                           20                                       16                         40                                  16
                                                                    32                                                             32
                           10                                                                  20
                           0                                                                    0
                                          Processadores                                                      Processadores




                                   Cálculo do pi (n=100.000)                                         Cálculo do pi (n=1.000.000)

                           700                                                                8000
                           600                                                                7000
       Tempo em segundos




                                                                          Tempo em segundos
                                                                    1                                                              1
                           500                                                                6000
                                                                    2                                                              2
                                                                                              5000
                           400                                      4                                                              4
                                                                                              4000
                           300                                      8                                                              8
                                                                                              3000
                           200                                      16                                                             16
                                                                                              2000
                                                                    32                                                             32
                           100                                                                1000
                            0                                                                   0
                                          Processadores                                                      Processadores



                                                  Tempo de execução do algoritmo do cálculo do π
Mestrando: Luiz Arthur Feitosa dos Santos                                                                                               15
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
  ALGORITMO PARALELO PARA CÁLCULO DO π
                                                          Cálculo do pi

                                         16
                                         14
                                         12
                                                                                 10.000
                            Speedup      10
                                                                                 20.000
                                          8
                                                                                 100.000
                                          6
                                          4                                      1.000.000
                                          2
                                          0
                                               1   2     4      8      16   32
                                                       Processadores



                                                          Cálculo do pi

                                         1,2
                                          1
                                         0,8                                     10.000
                            Eficiência




                                                                                 20.000
                                         0,6
                                                                                 100.000
                                         0,4                                     1.000.000
                                         0,2

                                          0
                                               1   2     4       8     16   32
                                                       Processadores


Mestrando: Luiz Arthur Feitosa dos Santos                                                    16
Desenvolvimento de Algoritmos Paralelos para
                   Simulador de Multiprocessadores Superescalares
  ALGORITMO TRAPEZOIDAL RULE

     Para demonstrar a semelhança entre a biblioteca SMS de passagem de mensagem e o MPI, foi
     desenvolvido o algoritmo Trapezoidal Rule. Sendo que tal algoritmo determina a integral de um
     ponto a para b em uma função não negativa f(x) através da área restrita por um eixo x.

            y                                                  y




            f(x)                                               f(x)
                                                b
                                            ∫
                                            a
                                                    f ( x)dx

                                                                      a                b    x
                           (a)                                              (b)

      Uma forma de se estimar a área ou integral é dividir a região em figuras geométricas, neste caso
      em trapézios, sendo que cada trapézio é a base do eixo x, e em seu ápice existem dois pontos que
      juntam a figura.




Mestrando: Luiz Arthur Feitosa dos Santos                                                           17
Desenvolvimento de Algoritmos Paralelos para
                    Simulador de Multiprocessadores Superescalares
ALGORITMO TRAPEZOIDAL RULE
                                                                         02. #include </usr/sms/com.h>
                                                                         03. struct _rank { // estrutura que informa passar o número do processador
2. #include "mpi.h"
                                                                         05. int meu; } _rank;
3. double Trap(double local_a, double local_b, int local_n, double h);
                                                                         07. struct _integral
4. double f(double x);
                                                                         08. { double num; /* intervalo integral - local */ } _integral;
5. int main(int argc, char** argv) {
                                                                         13. double Trap(double local_a, double local_b, int local_n, double h);
…
                                                                         14. double f(double x);
20. MPI_Status status;
                                                                         15. int main(int argc, char** argv) {
21. MPI_Init(&argc, &argv);
                                                                         30. openchanel(); /*sincroniza os processos mestre e escravo*/
22. MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
                                                                         31. p=2; //numero do processador
23. MPI_Comm_size(MPI_COMM_WORLD, &p);
                                                                         32. for (i=0; i<p; i++)
24. h = (b-a)/n; /* h é o mesmo em todos os processadores */
                                                                         33. {// determinar o rank de cada processador
25. local_n = n/p; /* número de trapezoids por nós */
                                                                         34. rank.meu=i;
26. local_a = a + my_rank*local_n*h;
                                                                         35. send(((char *)&rank), sizeof(_rank),i);
27. local_b = local_a + local_n*h;
                                                                         36. recv(((char *)&rank), sizeof(_rank));
28. integral = Trap(local_a, local_b, local_n, h);
                                                                         37. }
29. if (my_rank == 0) {
                                                                         38. my_rank=rank.meu;
30.      total = integral;
                                                                         41. recv(((char *)&rank), sizeof(_rank));
31.      for (source = 1; source < p; source++) {
                                                                         42. h = (b-a)/n;
32.         MPI_Recv(&integral, 1, MPI_DOUBLE, source, tag,
                                                                         43. local_n = n/p;
33.            MPI_COMM_WORLD, &status);
                                                                         44. local_a = a + my_rank*local_n*h;
34.         total = total + integral;
                                                                         45. local_b = local_a + local_n*h;
35.      }
                                                                         46. integral.num = Trap(local_a, local_b, local_n, h);
36. } else {
                                                                         47. if (my_rank == 0) {
37.      MPI_Send(&integral, 1, MPI_DOUBLE, dest,
                                                                         48.      total = integral.num;
        tag, MPI_COMM_WORLD);
                                                                         49.      for (source = 1; source < p; source++) {
38. }
                                                                         50.                      recv_be(((char *)&integral), sizeof(_integral));
39. if (my_rank == 0) {
                                                                         51.      total = total + integral.num;
40.      printf("With n = %d trapezoids, our estimaten",n);
                                                                         52.      }
41.      printf("of the integral from %f to %f = %23.16en",
                                                                         53. } else {send(((char *)&integral), sizeof(_integral),dest);}
        a, b, total);
                                                                         56. if (my_rank == 0) {
42. }
                                                                         57.      printf("With n = %d trapezoids, our estimaten", n);
43. MPI_Finalize();
                                                                         58.      printf("of the integral from %f to %f = %23.16en", a, b,   total);
44. return 0;
                                                                         59. }
45. }
                                                                         60. return 0;
                                                                         61. } /* main */

                          MPI                                                                               SMS                                     18
Desenvolvimento de Algoritmos Paralelos para
                                    Simulador de Multiprocessadores Superescalares
  ALGORITMO TRAPEZOIDAL RULE
                            Trapezoidal Rule (n=250.000)                                                                                                   Trapezoidal Rule (n=750.000)

                      25                                                                                                                             70
                                                                                                                                                     60
  Tempo em Segundos




                                                                                                                                 Tempo em Segundo
                      20                                     1                                                                                                                                   1
                                                             2                                                                                       50                                          2
                      15                                                                                                                             40
                                                             4                                                                                                                                   4

                      10                                     8                                                                                       30                                          8
                                                             16                                                                                      20                                          16
                      5                                      32                                                                                                                                  32
                                                                                                                                                     10
                      0                                                                                                                              0
                                     Processadores                                                                                                                  Processadores


                                                                                           Trapezoidal Rule (n=1.000.000)

                                                                                      90
                                                                                      80
                                                                  Tempo em Segundos

                                                                                      70                                    1
                                                                                      60                                    2
                                                                                      50                                    4
                                                                                      40                                    8
                                                                                      30                                    16
                                                                                      20                                    32
                                                                                      10
                                                                                       0
                                                                                                    Processadores


                            Trapezoidal Rule (n=2.000.000)                                                                                                 Trapezoidal Rule (n=4.000.000)

                      180                                                                                                                            400
                      160                                                                                                                            350
  Tempo em Segundos




                                                                                                                                 Tempo em Segundos
                      140                                    1                                                                                                                                   1
                                                                                                                                                     300
                      120                                    2                                                                                                                                   2
                                                                                                                                                     250
                      100                                    4                                                                                                                                   4
                                                                                                                                                     200
                      80                                     8                                                                                                                                   8
                                                                                                                                                     150
                      60                                     16                                                                                                                                  16
                      40                                                                                                                             100
                                                             32                                                                                                                                  32
                      20                                                                                                                             50
                       0                                                                                                                              0
                                      Processadores                                                                                                                  Processadores




Mestrando: Luiz Arthur Feitosa dos Santos                                                                                                                                                   19
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
  ALGORITMO TRAPEZOIDAL RULE
                                                            Trapezoidal Rule

                                             35
                                             30
                                                                                     250.000
                                             25
                                                                                     750.000

                                Speedup
                                             20
                                                                                     1.000.000
                                             15
                                                                                     2.000.000
                                             10
                                                                                     4.000.000
                                              5
                                              0
                                                   1   2     4      8      16   32
                                                           Processadores



                                                            Trapezoidal Rule

                                             1,4
                                             1,2
                                                                                     250.000
                                              1
                                Eficiência




                                                                                     750.000
                                             0,8
                                                                                     1.000.000
                                             0,6
                                                                                     2.000.000
                                             0,4
                                                                                     4.000.000
                                             0,2
                                              0
                                                   1   2     4      8      16   32
                                                           Processadores


Mestrando: Luiz Arthur Feitosa dos Santos                                                        20
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
  ALGORITMO PARA TESTES DA REDE DE INTERCONEXÃO DO SIMULADOR SMS

   Numa arquitetura paralela, a rede de interconexão tem papel fundamental sobre o desempenho de todo
   sistema paralelo. Neste contexto, é relevante que a ferramenta de simulação viabilize a investigação da
   arquitetura simulada em função da rede de interconexão.

   Portanto, o estudo sobre as tecnologias de transmissão de dados em redes de interconexão é
   extremamente relevante em ambientes paralelos, pois a rede tem influência direta sobre o desempenho
   das aplicações.

   Tornando necessário que existam algoritmos que viabilizem testes para a rede de interconexão
   utilizada na ferramenta SMS. O primeiro algoritmo implementado com este fim é chamado de Round-
   Trip, que é um algoritmo que mede a taxa de transferência dos dados na rede de interconexão do
   simulador.
                      Entrada: Tamanho em bytes da mensagem.    Entrada: msg (mensagem do mestre)
                      Saída: Taxa de transmissão da rede de     Saída: msg (mensagem par o mestre)
                      interconexão em bytes por segundo (bps)   Recv_be(msg);
                                                                Send (msg, mestre);
                      T1=tempo inicial;
                      Msg= 1000; // bytes
                      Send (msg, escravo);
                      Recv_be(msg);
                      T2=tempo final;
                      Tempo_total=T2-T1;
                      Calcula taxa de taxa de trasferencia();
                      Mostra taxa de transferência em bps.
                                       (a)                                          (b)

Mestrando: Luiz Arthur Feitosa dos Santos                                                              21
Desenvolvimento de Algoritmos Paralelos para
                    Simulador de Multiprocessadores Superescalares
  ALGORITMO PARA TESTES DA REDE DE INTERCONEXÃO DO SIMULADOR SMS


             Bytes msg
                             1.000                2.000
                                            Bytes msg
                                                               4.000
               fc
               1             10.243.802           11.046.794   11.794.191
                                             fc
               2              5.799.589            5.829.884    6.308.472
               3              4.086.971            4.193.892    4.302.806
               4              3.013.319            3.084.535    3.208.439
               5              2.535.703            2.557.434    2.541.619
              10              1.312.808            1.283.974    1.313.513
              20              0.650653             0.667792     0.627479
              30              0.440441             0.437780     0.444038
              100             0.135112             0.137166     0.112469
              200             0.067977             0.068447     0.069002
                                                   bps




Mestrando: Luiz Arthur Feitosa dos Santos                                   22
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
  ALGORITMO DE ORDENAÇÃO ODD-EVEN
     É muito comum tanto em aplicações científicas quanto comerciais a utilização de métodos de
     ordenação de dados.
     Define-se como um algoritmo de ordenação, o que contenha funções para rearranjar uma lista
     desordenada de elementos de maneira que tais elementos fiquem ordenados de forma crescente ou
     decrescente.
     O algoritmo Odd-Even ordena n elementos em n fases (sendo n ímpar), cada qual requer n/2
     operações de comparação e troca.




Mestrando: Luiz Arthur Feitosa dos Santos                                                        23
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
  ALGORITMO DE ORDENAÇÃO ODD-EVEN
     O algoritmo de ordenação Odd-Even proposto para o simulador SMS, segue o mesmo princípio.
     Com a diferença de que o arranjo será dividido pelo número de processadores (n/p), em que n e p
     são múltiplos de dois. Cada nó então conterá um sub-arranjo, durante a fase ímpar, os nós irão
     enviar seus sub-arranjos para seus vizinhos à direita e os seus vizinhos à direita irão da mesma
     forma enviar seus sub-arranjos para seus vizinhos ímpares da esquerda. Em posse desses sub-
     arranjos cada nó que compõe a operação ímpar irá ordenar os dois sub-arranjos.




Mestrando: Luiz Arthur Feitosa dos Santos                                                           24
Desenvolvimento de Algoritmos Paralelos para
                                Simulador de Multiprocessadores Superescalares
  ALGORITMO DE ORDENAÇÃO ODD-EVEN

                           Odd-Even Sort (n=2048)                                   Odd-Even Sort (n=4096)                                   Odd-Even Sort (n=8192)

                      8                                                       16                                                       40
                      7                                                       14                                                       35
  Tempo em Segundos




                                                          Tempo em Segundos




                                                                                                                   Tempo em Segundos
                                                     1                                                        1                                                             1
                      6                                                       12                                                       30
                                                     2                                                        2                                                             2
                      5                                                       10                                                       25
                                                     4                                                        4                                                             4
                      4                                                       8                                                        20
                                                     8                                                        8                                                             8
                      3                                                       6                                                        15
                                                     16                                                       16                                                            16
                      2                                                       4                                                        10
                                                     32                                                       32                                                            32
                      1                                                       2                                                        5
                      0                                                       0                                                        0
                                 Processadores                                            Processadores                                            Processadores




                           Odd-Even Sort (n=16384)                                  Odd-Even Sort (n=32768)                                  Odd-Even Sort (n=65536)

                      90                                                      200                                                      450
                      80                                                                                                               400
  Tempo em Segundos




                                                          Tempo em Segundos




                                                                                                                   Tempo em Segundos
                      70                             1                                                        1                        350                                  1
                                                                              150
                      60                             2                                                        2                        300                                  2
                      50                             4                                                        4                        250                                  4
                                                                              100
                      40                             8                                                        8                        200                                  8
                      30                             16                                                       16                       150                                  16
                      20                                                      50                                                       100
                                                     32                                                       32                                                            32
                      10                                                                                                               50
                       0                                                       0                                                        0
                                 Processadores                                             Processadores                                            Processadores




Mestrando: Luiz Arthur Feitosa dos Santos                                                                                                                              25
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
  ALGORITMO DE ORDENAÇÃO ODD-EVEN
                                                         Odd-Even Sort

                                           10

                                            8                                      2048
                                                                                   4096

                              Speedup
                                            6                                      8192
                                            4                                      16384
                                                                                   32768
                                            2
                                                                                   65536
                                            0
                                                 1   2     4      8      16   32
                                                         Processadores



                                                         Odd-Even Sort

                                           1,2

                                            1                                      2048

                                           0,8                                     4096
                              Eficiência




                                                                                   8192
                                           0,6
                                                                                   16384
                                           0,4                                     32768
                                           0,2                                     65536
                                            0
                                                 1   2     4       8     16   32
                                                         Processadores


Mestrando: Luiz Arthur Feitosa dos Santos                                                  26
Desenvolvimento de Algoritmos Paralelos para
                                    Simulador de Multiprocessadores Superescalares
  ALGORITMO DE ORDENAÇÃO ODD-EVEN

    Como o algoritmo Odd-Even tem como objetivo principal o teste da rede de interconexão, tal
    algoritmo atinge este objetivo claramente. Para isto basta comparar o fluxo da rede de interconexão
    dos algoritmos Odd-Even e do π.

                                      Envio de mensagens cálculo do pi                                                 Recebimento de mensagens cálculo do pi


                                                                                         0                                                                                               0




                                                                                             Processadores
            Processadores




                                                                                         1                                                                                               1
                                                                                         2                                                                                               2
                                                                                         3                                                                                               3
                                                                                         4                                                                                               4
                                                                                         5                                                                                               5
                                                                                         6                                                                                               6
                                                                                         7                                                                                               7
                            0        20      40        60       80       100       120                       0          10       20        30           40        50       60      70
                                                                                         8                                                                                               8
                                                     Bytes                                                                                      Bytes




                                                        Uso da rede de interconexão do algoritmo de cálculo do π

                                    Envio de Mensagens do Odd-Even Sort                                              Recebimento de Mensagens do Odd-Even Sort


                                                                                         0   Processadores                                                                               0
           Processadores




                                                                                         1                                                                                               1
                                                                                         2                                                                                               2
                                                                                         3                                                                                               3
                                                                                         4                                                                                               4
                                                                                         5                                                                                               5
                                                                                         6                                                                                               6
                                                                                         7                                                                                               7
                                0   50000   100000   150000   200000   250000   300000                           0       50000    100000    150000           200000    250000   300000
                                                                                         8                                                                                               8
                                                     Bytes                                                                                      Bytes




                                                  Uso da rede de interconexão do algoritmo Odd-Even sort
Mestrando: Luiz Arthur Feitosa dos Santos                                                                                                                                                    27
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
  SIMULAÇÃO DE OUTRAS ARQUITETURAS COM O SMS

   O SMS possibilita a alteração de inúmeros itens de hardware de um processador superescalar, de
   forma que é possível configurar e simular vários aspectos.
   Um exemplo de alteração de simulação é trocar o tamanho da memória cache, tal experimento foi
   feito com o algoritmo do π


     /usr/sms/sms 3 -cache:dl1_00 dl1:4096:32:1:l -cache:dl1_01 dl1:4096:32:1:l
     -redir:sim PIParalelo-d4096-10.000-3.sim PIP



   Linha de comando para executar o programa de cálculo do π com cache de dados de tamanho de 4096



   No exemplo do algoritmo do π foi modificado o tamanho da memória cache de dados de todos os
   processadores, sendo então colocada em cada processador uma cache de dados com o tamanho de
   4096 bytes (ver figura 39), sendo que o simulador tem como padrão uma cache de dados com tamanho
   de 128 bytes, que foi o tamanho utilizado nas simulações com o algoritmo do cálculo do π
   anteriormente.



Mestrando: Luiz Arthur Feitosa dos Santos                                                       28
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
  SIMULAÇÃO DE OUTRAS ARQUITETURAS COM O SMS
                                               Algoritmo cálculo do pi com cache alterada

                                     25

                                     20
                                                                                     10.000 cache 128
                        Speedup


                                     15                                              100.000 cache 128
                                     10                                              10.000 cache 4096
                                                                                     100.000 cache 4096
                                      5

                                      0
                                           1      2     4      8      16   32
                                                      Processadores



                                               Algoritmo cálculo do pi com cache alterada

                                     1,4
                                     1,2
                                      1                                              10.000 cache 128
                        Eficiência




                                     0,8                                             100.000 cache 128
                                     0,6                                             10.000 cache 4096
                                     0,4                                             100.000 cache 4096
                                     0,2
                                      0
                                           1      2      4     8      16   32
                                                      Processadores

Mestrando: Luiz Arthur Feitosa dos Santos                                                                 29
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
  SIMULAÇÃO DE OUTRAS ARQUITETURAS COM O SMS

   Outro algoritmo submetido a uma mudança de arquitetura simulada foi o Trapezoidal rule. Para este
   algoritmo foi alterado o previsor de desvios, trocando o bimod (padrão do simulador) para o
   algoritmo 2lev.


   Tal modificação foi realizada em todos os processadores, mas poderia ser feita individualmente
   simulando ambientes heterogêneos, para isso seria necessário especificar via linha de comando, por
   exemplo: sms 2 –bpred_00 bimod –bpred_01 2lev trapezoide.



     #sms 2 -bpred_00 2lev -bpred_01 2lev -redir:sim trapezoide-2lev-44440.000-2.sim
     trapezoide




Mestrando: Luiz Arthur Feitosa dos Santos                                                          30
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
  SIMULAÇÃO DE OUTRAS ARQUITETURAS COM O SMS
                                                Alteração do sistema de previsão de desvio do
                                                          algoritmo Trapezoidal rule

                                          30
                                                                                        1.000.000 2lev
                                          25
                                                                                        2.000.000 2lev
                             Speedup      20
                                                                                        4.000.000 2lev
                                          15
                                                                                        1.000.000 bimod
                                          10
                                                                                        2.000.000 bimod
                                           5
                                                                                        4.000.000 bimod
                                           0
                                                 1     2      4     8      16   32
                                                           Processadores


                                                Alteração do sistema de previsão de desvio do
                                                          algoritmo Trapezoidal rule

                                          1,2
                                                                                        1.000.000 2lev
                                           1
                                                                                        2.000.000 2lev
                             Eficiência




                                          0,8
                                                                                        4.000.000 2lev
                                          0,6
                                                                                        1.000.000 bimod
                                          0,4
                                                                                        2.000.000 bimod
                                          0,2
                                                                                        2.000.000
                                           0
                                                  1    2      4     8      16   32
                                                           Processadores


Mestrando: Luiz Arthur Feitosa dos Santos                                                                 31
Desenvolvimento de Algoritmos Paralelos para
                                      Simulador de Multiprocessadores Superescalares
  SIMULAÇÃO DE OUTRAS ARQUITETURAS COM O SMS

    O algoritmo de ordenação Odd-Even proposto tem como característica marcante o intenso uso da
    rede de interconexão, foram realizadas simulações com duas arquiteturas, uma com uma rede de
    interconexão com 1Mb/s de largura de banda e outra com 10Mb/s.
                                      Odd-Even sort com rede de interconexão de                                  Odd-Even sort com rede de interconexão de
                                                  1 Mb/s(n=32768)                                                           10 Mb/s (n=32768)

                                200                                                                        200
            Tempo em segundos




                                                                                       Tempo em segundos
                                                                                  1                                                                          1
                                150                                                                        150
                                                                                  2                                                                          2
                                                                                  4                                                                          4
                                100                                                                        100
                                                                                  8                                                                          8

                                50                                                16                                                                         16
                                                                                                            50
                                                                                  32                                                                         32
                                 0                                                                           0
                                                     Processadores                                                               Processadores




                                      Odd-Even sort com rede de interconexão de                                  Odd-Even sort com rede de interconexão de
                                                  1 Mb/s (n=65536)                                                          10 Mb/s (n=65536)

                                500                                                                        500
            Tempo em segundos




                                                                                       Tempo em segundos

                                400                                               1                                                                          1
                                                                                                           400
                                                                                  2                                                                          2
                                300                                               4                        300                                               4
                                200                                               8                        200                                               8
                                                                                  16                                                                         16
                                100                                                                        100
                                                                                  32                                                                         32
                                 0                                                                          0
                                                     Processadores                                                              Processadores




Mestrando: Luiz Arthur Feitosa dos Santos                                                                                                                         32
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
  TRABALHOS FUTUROS


      Memória Compartilhada: O desenvolvimento de tal modulo tornará o SMS uma
    ferramenta de simulação completa, simulando ambientes de memória distribuída e
    compartilhada;


      Desenvolvimento de Algoritmos Paralelos para memória compartilhada: Com a
    implementação do modulo de memória compartilhada faz se necessário o
    desenvolvimento de algoritmos para testes neste ambiente;


      Interface Gráfica: A criação de tal modulo possibilitará uma melhor interação entre o
    usuário e a ferramenta, e facilitará o controle das simulações;


      Redes de Interconexão: Outras redes de interconexão devem ser implementadas com
    diferentes topologias e protocolos de controle.




Mestrando: Luiz Arthur Feitosa dos Santos                                                33
Desenvolvimento de Algoritmos Paralelos para
                 Simulador de Multiprocessadores Superescalares
  CONCLUSÃO


      Foram executados intensos exercícios de simulação. Esses exercícios de simulação mostraram que a
    ferramenta viabiliza a implementação de algoritmos paralelos e a análise de desempenho de
    arquiteturas paralelas.


     A ferramenta permite realizar simulações, nas quais é possível alterar características físicas de
    baixo nível e alto nível.


     Os algoritmos implementados permitem ainda que usuários que estejam iniciando suas pesquisas
    em computação paralela, possam primeiramente analisar os algoritmos já implementados, estudando-
    os e alterando-os, para posteriormente desenvolver seus próprios algoritmos.


      Tais algoritmos também permitiram validar a ferramenta, mostrando que ela é uma ótima
    alternativa para testes de avaliação de desempenho em ambientes paralelos e como ferramenta de
    auxílio ao ensino e pesquisa em Arquiteturas Paralelas.




Mestrando: Luiz Arthur Feitosa dos Santos                                                          34

Más contenido relacionado

La actualidad más candente

Arquiteturas de Computadores - slides
Arquiteturas de Computadores - slidesArquiteturas de Computadores - slides
Arquiteturas de Computadores - slidesGuilherme Ferreira
 
Memoria cache princípio da localidade
Memoria cache   princípio da localidadeMemoria cache   princípio da localidade
Memoria cache princípio da localidadeClaudia Costa
 
Gerenciamento de memoria
Gerenciamento de memoriaGerenciamento de memoria
Gerenciamento de memoriaJailson Silva
 
Parte i entendendo o marie
Parte i   entendendo o marieParte i   entendendo o marie
Parte i entendendo o mariesinunifei2011
 
Arquitetura de Computadores: Memórias
Arquitetura de Computadores: MemóriasArquitetura de Computadores: Memórias
Arquitetura de Computadores: MemóriasAlex Camargo
 
SO-05 Gerenciamento de Memória e Alocação
SO-05 Gerenciamento de Memória e AlocaçãoSO-05 Gerenciamento de Memória e Alocação
SO-05 Gerenciamento de Memória e AlocaçãoEduardo Nicola F. Zagari
 
Capítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais ModernosCapítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais ModernosWellington Oliveira
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de Memóriaelliando dias
 
Sistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaSistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaWellington Oliveira
 
Arquitetura de-computadores
Arquitetura de-computadoresArquitetura de-computadores
Arquitetura de-computadoresPimentel
 
Arquitetura de Computadores: Conceitos básicos
Arquitetura de Computadores: Conceitos básicosArquitetura de Computadores: Conceitos básicos
Arquitetura de Computadores: Conceitos básicosAlex Camargo
 

La actualidad más candente (20)

Processamento paralelo
Processamento paraleloProcessamento paralelo
Processamento paralelo
 
Arquiteturas de Computadores - slides
Arquiteturas de Computadores - slidesArquiteturas de Computadores - slides
Arquiteturas de Computadores - slides
 
Memoria cache princípio da localidade
Memoria cache   princípio da localidadeMemoria cache   princípio da localidade
Memoria cache princípio da localidade
 
Roteiro IOC 05
Roteiro IOC 05Roteiro IOC 05
Roteiro IOC 05
 
Aula 06-oac-memoria-principal
Aula 06-oac-memoria-principalAula 06-oac-memoria-principal
Aula 06-oac-memoria-principal
 
SDAC 12º - M9 TGEI
SDAC 12º - M9 TGEISDAC 12º - M9 TGEI
SDAC 12º - M9 TGEI
 
Gerenciamento de memoria
Gerenciamento de memoriaGerenciamento de memoria
Gerenciamento de memoria
 
Exer ic prova
Exer ic provaExer ic prova
Exer ic prova
 
Multiprocessadores sunfiree25k
Multiprocessadores sunfiree25kMultiprocessadores sunfiree25k
Multiprocessadores sunfiree25k
 
Ud1
Ud1Ud1
Ud1
 
Parte i entendendo o marie
Parte i   entendendo o marieParte i   entendendo o marie
Parte i entendendo o marie
 
Arquitetura de Computadores: Memórias
Arquitetura de Computadores: MemóriasArquitetura de Computadores: Memórias
Arquitetura de Computadores: Memórias
 
Lista2009 2
Lista2009 2Lista2009 2
Lista2009 2
 
SO-05 Gerenciamento de Memória e Alocação
SO-05 Gerenciamento de Memória e AlocaçãoSO-05 Gerenciamento de Memória e Alocação
SO-05 Gerenciamento de Memória e Alocação
 
Capítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais ModernosCapítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais Modernos
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de Memória
 
Sistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaSistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de Memória
 
Arquitetura de-computadores
Arquitetura de-computadoresArquitetura de-computadores
Arquitetura de-computadores
 
Arquitetura de Computadores: Conceitos básicos
Arquitetura de Computadores: Conceitos básicosArquitetura de Computadores: Conceitos básicos
Arquitetura de Computadores: Conceitos básicos
 
Endereçamento de memória
Endereçamento de memóriaEndereçamento de memória
Endereçamento de memória
 

Destacado

Palestra mau uso da tecnologia
Palestra mau uso da tecnologiaPalestra mau uso da tecnologia
Palestra mau uso da tecnologiaLuiz Arthur
 
Palestra - Segurança da Informação - Softwarein Legal
Palestra - Segurança da Informação - Softwarein LegalPalestra - Segurança da Informação - Softwarein Legal
Palestra - Segurança da Informação - Softwarein LegalLuiz Arthur
 
Redes prática - Inetd
Redes prática - InetdRedes prática - Inetd
Redes prática - InetdLuiz Arthur
 
Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Luiz Arthur
 
Tópicos - Exemplo Speedup para algoritmos paralelos
Tópicos - Exemplo Speedup para algoritmos paralelosTópicos - Exemplo Speedup para algoritmos paralelos
Tópicos - Exemplo Speedup para algoritmos paralelosLuiz Arthur
 
UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105Luiz Arthur
 
Sistemas Operacionais - Gnu/Linux Sistemas de Arquivos e Dispositivos
Sistemas Operacionais - Gnu/Linux Sistemas de Arquivos e DispositivosSistemas Operacionais - Gnu/Linux Sistemas de Arquivos e Dispositivos
Sistemas Operacionais - Gnu/Linux Sistemas de Arquivos e DispositivosLuiz Arthur
 
Tópicos - Redes para Cluster de Alta Performance
Tópicos - Redes para Cluster de Alta PerformanceTópicos - Redes para Cluster de Alta Performance
Tópicos - Redes para Cluster de Alta PerformanceLuiz Arthur
 
Segurança da Informação - Firewall
Segurança da Informação - FirewallSegurança da Informação - Firewall
Segurança da Informação - FirewallLuiz Arthur
 
Palestra - Fitem 2009 - Ferramentas de segurança OpenSource
Palestra - Fitem 2009 - Ferramentas de segurança OpenSourcePalestra - Fitem 2009 - Ferramentas de segurança OpenSource
Palestra - Fitem 2009 - Ferramentas de segurança OpenSourceLuiz Arthur
 
Tópicos - Cluster de Balanceamento de Carga
Tópicos - Cluster de Balanceamento de CargaTópicos - Cluster de Balanceamento de Carga
Tópicos - Cluster de Balanceamento de CargaLuiz Arthur
 
Redes prática - NFS
Redes prática - NFSRedes prática - NFS
Redes prática - NFSLuiz Arthur
 
Sistemas Operacionais - Gnu/Linux
Sistemas Operacionais - Gnu/LinuxSistemas Operacionais - Gnu/Linux
Sistemas Operacionais - Gnu/LinuxLuiz Arthur
 
Redes - Enderecamento IP
Redes - Enderecamento IPRedes - Enderecamento IP
Redes - Enderecamento IPLuiz Arthur
 

Destacado (15)

Palestra mau uso da tecnologia
Palestra mau uso da tecnologiaPalestra mau uso da tecnologia
Palestra mau uso da tecnologia
 
Palestra - Segurança da Informação - Softwarein Legal
Palestra - Segurança da Informação - Softwarein LegalPalestra - Segurança da Informação - Softwarein Legal
Palestra - Segurança da Informação - Softwarein Legal
 
Redes prática - Inetd
Redes prática - InetdRedes prática - Inetd
Redes prática - Inetd
 
Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2
 
Tópicos - Exemplo Speedup para algoritmos paralelos
Tópicos - Exemplo Speedup para algoritmos paralelosTópicos - Exemplo Speedup para algoritmos paralelos
Tópicos - Exemplo Speedup para algoritmos paralelos
 
UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105
 
Sistemas Operacionais - Gnu/Linux Sistemas de Arquivos e Dispositivos
Sistemas Operacionais - Gnu/Linux Sistemas de Arquivos e DispositivosSistemas Operacionais - Gnu/Linux Sistemas de Arquivos e Dispositivos
Sistemas Operacionais - Gnu/Linux Sistemas de Arquivos e Dispositivos
 
Tópicos - Redes para Cluster de Alta Performance
Tópicos - Redes para Cluster de Alta PerformanceTópicos - Redes para Cluster de Alta Performance
Tópicos - Redes para Cluster de Alta Performance
 
Redes - ISO/OSI
Redes - ISO/OSIRedes - ISO/OSI
Redes - ISO/OSI
 
Segurança da Informação - Firewall
Segurança da Informação - FirewallSegurança da Informação - Firewall
Segurança da Informação - Firewall
 
Palestra - Fitem 2009 - Ferramentas de segurança OpenSource
Palestra - Fitem 2009 - Ferramentas de segurança OpenSourcePalestra - Fitem 2009 - Ferramentas de segurança OpenSource
Palestra - Fitem 2009 - Ferramentas de segurança OpenSource
 
Tópicos - Cluster de Balanceamento de Carga
Tópicos - Cluster de Balanceamento de CargaTópicos - Cluster de Balanceamento de Carga
Tópicos - Cluster de Balanceamento de Carga
 
Redes prática - NFS
Redes prática - NFSRedes prática - NFS
Redes prática - NFS
 
Sistemas Operacionais - Gnu/Linux
Sistemas Operacionais - Gnu/LinuxSistemas Operacionais - Gnu/Linux
Sistemas Operacionais - Gnu/Linux
 
Redes - Enderecamento IP
Redes - Enderecamento IPRedes - Enderecamento IP
Redes - Enderecamento IP
 

Similar a Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas

A arquitetura básica de um computador
A arquitetura básica de um computadorA arquitetura básica de um computador
A arquitetura básica de um computadorredesinforma
 
Descrição dos componentes
Descrição dos componentesDescrição dos componentes
Descrição dos componentesTiago
 
Hardware
HardwareHardware
HardwareTiago
 
Aula 6 de Arquitetura de Computadores
Aula 6 de Arquitetura de ComputadoresAula 6 de Arquitetura de Computadores
Aula 6 de Arquitetura de ComputadoresMarco Silva
 
03 FTI Hardware e Software-atualizado.pptx
03 FTI Hardware e Software-atualizado.pptx03 FTI Hardware e Software-atualizado.pptx
03 FTI Hardware e Software-atualizado.pptxEduardoHernandes9
 
Apostila 3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
Apostila   3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...Apostila   3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
Apostila 3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...Claudio Santos
 
Apostila 3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
Apostila   3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...Apostila   3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
Apostila 3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...claudiovalentim
 
Arquitetura de Von Neumann
Arquitetura de Von NeumannArquitetura de Von Neumann
Arquitetura de Von NeumannWanessa Ribeiro
 
01 introducao ifb - excelente
01   introducao ifb - excelente01   introducao ifb - excelente
01 introducao ifb - excelenteSENAR
 
Aula 5 de Arquitetura de Computadores
Aula 5 de Arquitetura de ComputadoresAula 5 de Arquitetura de Computadores
Aula 5 de Arquitetura de ComputadoresMarco Silva
 
Aula de introducao ao ZOS
Aula de introducao ao ZOSAula de introducao ao ZOS
Aula de introducao ao ZOSIvan Sanches
 
Apostila de informtica para concursos bb
Apostila de informtica para concursos bbApostila de informtica para concursos bb
Apostila de informtica para concursos bbzeramento contabil
 
Alfa con 4 -hardware
Alfa con 4 -hardwareAlfa con 4 -hardware
Alfa con 4 -hardwareJane Cesca
 
Alfa con -hardware
Alfa con -hardwareAlfa con -hardware
Alfa con -hardware92josue
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadoresDaniel Moura
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadoresDaniel Moura
 

Similar a Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas (20)

Hardware
Hardware Hardware
Hardware
 
A arquitetura básica de um computador
A arquitetura básica de um computadorA arquitetura básica de um computador
A arquitetura básica de um computador
 
Descrição dos componentes
Descrição dos componentesDescrição dos componentes
Descrição dos componentes
 
Hardware
HardwareHardware
Hardware
 
Informática
InformáticaInformática
Informática
 
Aula 6 de Arquitetura de Computadores
Aula 6 de Arquitetura de ComputadoresAula 6 de Arquitetura de Computadores
Aula 6 de Arquitetura de Computadores
 
03 FTI Hardware e Software-atualizado.pptx
03 FTI Hardware e Software-atualizado.pptx03 FTI Hardware e Software-atualizado.pptx
03 FTI Hardware e Software-atualizado.pptx
 
Mem%f3ria
Mem%f3riaMem%f3ria
Mem%f3ria
 
Apostila 3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
Apostila   3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...Apostila   3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
Apostila 3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
 
Apostila 3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
Apostila   3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...Apostila   3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
Apostila 3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
 
Arquitetura de Von Neumann
Arquitetura de Von NeumannArquitetura de Von Neumann
Arquitetura de Von Neumann
 
01 introducao ifb - excelente
01   introducao ifb - excelente01   introducao ifb - excelente
01 introducao ifb - excelente
 
Aula 5 de Arquitetura de Computadores
Aula 5 de Arquitetura de ComputadoresAula 5 de Arquitetura de Computadores
Aula 5 de Arquitetura de Computadores
 
Arquitetura 8 2
Arquitetura 8 2Arquitetura 8 2
Arquitetura 8 2
 
Aula de introducao ao ZOS
Aula de introducao ao ZOSAula de introducao ao ZOS
Aula de introducao ao ZOS
 
Apostila de informtica para concursos bb
Apostila de informtica para concursos bbApostila de informtica para concursos bb
Apostila de informtica para concursos bb
 
Alfa con 4 -hardware
Alfa con 4 -hardwareAlfa con 4 -hardware
Alfa con 4 -hardware
 
Alfa con -hardware
Alfa con -hardwareAlfa con -hardware
Alfa con -hardware
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadores
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadores
 

Más de Luiz Arthur

Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Luiz Arthur
 
Desafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãDesafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãLuiz Arthur
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Luiz Arthur
 
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Luiz Arthur
 
Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Luiz Arthur
 
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsEvaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsLuiz Arthur
 
Análise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterAnálise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterLuiz Arthur
 
match making e propaganda na web
match making e propaganda na webmatch making e propaganda na web
match making e propaganda na webLuiz Arthur
 
Mineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookMineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookLuiz Arthur
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.orgLuiz Arthur
 
Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Luiz Arthur
 
01 programação - introdução computação
01 programação - introdução computação01 programação - introdução computação
01 programação - introdução computaçãoLuiz Arthur
 
Bibliografia recomendada - programação C
Bibliografia recomendada - programação CBibliografia recomendada - programação C
Bibliografia recomendada - programação CLuiz Arthur
 
Bibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonBibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonLuiz Arthur
 
Bibliografia recomendada-seguranca
Bibliografia recomendada-segurancaBibliografia recomendada-seguranca
Bibliografia recomendada-segurancaLuiz Arthur
 
Bibliografia recomendada-redes
Bibliografia recomendada-redesBibliografia recomendada-redes
Bibliografia recomendada-redesLuiz Arthur
 
Apresentação Primeiro Dia
Apresentação Primeiro DiaApresentação Primeiro Dia
Apresentação Primeiro DiaLuiz Arthur
 
Dissertacao - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Algoritmos para simulador de arquiteturas paralelasDissertacao - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Algoritmos para simulador de arquiteturas paralelasLuiz Arthur
 
Redes - Wireless Teoria
Redes - Wireless TeoriaRedes - Wireless Teoria
Redes - Wireless TeoriaLuiz Arthur
 

Más de Luiz Arthur (20)

Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
 
Desafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãDesafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhã
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
 
NAPSOL
NAPSOLNAPSOL
NAPSOL
 
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
 
Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...
 
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsEvaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
 
Análise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterAnálise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no Twitter
 
match making e propaganda na web
match making e propaganda na webmatch making e propaganda na web
match making e propaganda na web
 
Mineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookMineração de dados no Gmail e Facebook
Mineração de dados no Gmail e Facebook
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.org
 
Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)
 
01 programação - introdução computação
01 programação - introdução computação01 programação - introdução computação
01 programação - introdução computação
 
Bibliografia recomendada - programação C
Bibliografia recomendada - programação CBibliografia recomendada - programação C
Bibliografia recomendada - programação C
 
Bibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonBibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-python
 
Bibliografia recomendada-seguranca
Bibliografia recomendada-segurancaBibliografia recomendada-seguranca
Bibliografia recomendada-seguranca
 
Bibliografia recomendada-redes
Bibliografia recomendada-redesBibliografia recomendada-redes
Bibliografia recomendada-redes
 
Apresentação Primeiro Dia
Apresentação Primeiro DiaApresentação Primeiro Dia
Apresentação Primeiro Dia
 
Dissertacao - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Algoritmos para simulador de arquiteturas paralelasDissertacao - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Algoritmos para simulador de arquiteturas paralelas
 
Redes - Wireless Teoria
Redes - Wireless TeoriaRedes - Wireless Teoria
Redes - Wireless Teoria
 

Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas

  • 1. UEM - Universidade Estadual de Maringá DIN - Departamento de Informática Mestrado em Ciência da Computação Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares Mestrando: Luiz Arthur Feitosa dos Santos Orientador: Prof. Dr. João Angelo Martini
  • 2. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ESTRUTURA DO TRABALHO COMPUTAÇÃO PARALELA SIMULADOR DE ARQUITETURAS PROGRAMAÇÃO PARALELA E ALGORITMOS PARALELOS AVALIAÇÃO DE DESEMPENHO ALGORITMOS PARALELOS PARA O SMS TRABALHOS FUTUROS CONCLUSÃO Mestrando: Luiz Arthur Feitosa dos Santos 2
  • 3. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares COMPUTAÇÃO PARALELA PROCESSAMENTO SEQÜENCIAL Memória Dispositivo de entrada Unidade Aritmética MÁQUINA DE VON NEUMANN lógica Dispositivo (TANEMBAUM 2001) Unidade de de saída controle Acumulador (a) ARQUITETURAS PARALELAS COM MEMÓRIA COMPARTILHADA E DISTRIBUÍDA Processador 1 Cache Processador 1 Memória Memória Rede de Interconexão Cache Barramento Processador 2 Processador 2 Disp. Cache Entrada/S Cache aída Memória Disp. Processador N Entrada/ Processador N Cache Saída Cache (b) Memória (c) Mestrando: Luiz Arthur Feitosa dos Santos 3
  • 4. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares SIMULADOR DE ARQUITETURAS Simuladores de arquiteturas: MINT (MIPS Interpreter) (VEENSTRA, 1993) utiliza threads para simular um ambiente multiprocessador, conta com sistema de interconexão e hierarquia de memória. O MINT roda executáveis compilados para plataformas MIPS (R3000). RSIM (Rice Simulator) (PAI, 1997) implementa um modelo de processador detalhado para arquitetura superescalar. Simula um sistema multiprocessador de memória compartilhada. O RSIM roda nas plataformas SPARC e Solaris. ABSS (SPARC Simulator) (SUNADA, 1998) empregado principalmente nas simulações de memória. O ABSS usa threads para simular multiprocessadores. Ele roda apenas nas plataformas SPARC e possui interface gráfica derivada do MINT. Proteus (BREWER, 1991) permite a simulação de multiprocessadores com interconexões do tipo: bus, k-ary, n-cube e butterfly. Possui biblioteca para passagem de mensagens, gerenciamento de memória e threads, além de coleta de dados e interface gráfica sofisticada para representar as saídas da simulação. Mestrando: Luiz Arthur Feitosa dos Santos 4
  • 5. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares SIMULADOR DE ARQUITETURAS Augmint (NGUYEN, 1996) usa threads para simular um sistema multiprocessador com espaço de memória compartilhada e privada (para determinadas variáveis). Ele roda aplicações escritas em C e C++ com macros-m4. Ele roda em arquiteturas Intel x86. Tango Lite (HERROD, 1993) simula um ambiente multiprocessador com memória compartilhada. Ao contrário do seu predecessor o Tango, o Tango Lite usa threads ao invés de Unix Process. O Tango Lite roda em plataforma MIPS (R3000). MulSim (MATLOFF, 2005) é um simulador para ambiente multiprocessador com memória compartilhada, dispondo de vários tipos de interconexão entre memória e processador. Multiprocessor Enhancements of the SimpleScalar Tool Set (MANJIKIAN, 2001). Simulador funcional (não detalhado) e simulador de cache baseados na ferramenta SimpleScalar, usam threads para simular um ambiente multiprocessador. Conta com suporte à visualização gráfica do conteúdo da cache. SMINT ou Superescalar MINT (LU, 1998) é um simulador de multiprocessadores superescalares baseado no simulador MINT. Mestrando: Luiz Arthur Feitosa dos Santos 5
  • 6. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares SIMULADOR DE ARQUITETURAS SIMPLESCALAR O SimpleScalar foi desenvolvido em 1992 na Universidade de Wisconsin sob coordenação de Gurindar S. Sohi e pode emular diversos conjuntos de instruções como por exemplo: ARM, Alpha, PowerPC e x86, e devido à sua arquitetura aberta ele pode ser estendido a outros conjuntos de instruções. SMS (SIMULADOR DE MULTIPROCESSADORES SUPERESCALAR) O SMS tem como base o núcleo do simulador SimpleScalar. Atualmente a ferramenta dispõe de memória distribuída, primitivas de comunicação (Send e Receive) para troca de mensagens e uso de uma rede de interconexão com topologia de barramento compartilhado e viabiliza o desenvolvimento de aplicações e análise de desempenho de computadores paralelos. Mestrando: Luiz Arthur Feitosa dos Santos 6
  • 7. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares SIMULADOR DE ARQUITETURAS Interface Gráfica Interface para passagem de parâmetros da simulação Interface Simulador Disparador e Coletor Programas Programa Programa Programa ... Programa do Usuário 1 2 3 N Simulador Bibliotecas – Send e Receive Gerenciador de Memória Paralelo Protocolo Topologia Processador Processador Processador ... Processador 1 2 3 N Mestrando: Luiz Arthur Feitosa dos Santos 7
  • 8. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares PROGRAMAÇÃO PARALELA E ALGORITMOS PARALELOS Um algoritmo paralelo pode ser definido como um conjunto de processos (partes de um programa) que podem ser executados simultaneamente, tais processos podem se comunicar uns com os outros a fim de resolver um determinado problema. Já um algoritmo seqüencial é executado passo a passo de forma seqüencial como foi definido durante a sua programação (ZARGHAN, 1995). A construção de um algoritmo paralelo segue basicamente os seguintes passos: •Identificar pontos do programa que podem ser executados de forma paralela; •Distribuir as entradas e saídas de dados pertinentes à aplicação, bem como os dados intermediários gerados durante a execução das tarefas e que estão associados ao programa; •Gerenciar da melhor forma possível o acesso aos dados compartilhados pelos processadores, para execução de um dado problema, reduzindo a comunicação entre processos; •Sincronizar eficientemente os processadores nos mais diversos estágios de execução de um programa paralelo, de forma que os processadores não fiquem com uma carga de trabalho muito elevada ou muito baixa. Mestrando: Luiz Arthur Feitosa dos Santos 8
  • 9. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares AVALIAÇÃO DE DESEMPENHO Historicamente o tempo de execução ou o tempo decorrido (elapsed time) é uma das métricas mais populares para verificar a performance em um dado sistema. O speedup é a referência de quão melhor é um sistema paralelo em relação ao sistema seqüencial ou outro sistema podendo ser até mesmo outro paralelo. TempoExecuçãoSeqüencial TempoExecuçãoParalelo1 Aceleração = Aceleração = TempoExecuçãoParalelo TempoExecuçãoParalelo N Speedup Absoluto Speedup Relativo Eficiência é uma medida da fração de tempo na qual um processador é realmente usado. A eficiência é considerada uma métrica que investiga a escalabilidade dos algoritmos. Tal métrica é obtida pela fórmula E = S/p, sendo S o speedup e p o número de processadores. Mestrando: Luiz Arthur Feitosa dos Santos 9
  • 10. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO PARALELO DE MULTIPLICAÇÃO DE MATRIZES Mestre Escravos 01. #include </usr/sms/com.h> 01. struct _matriz matriz; 02. struct _matriz matriz; 02. struct _vetor vetor; 03. struct _vetor vetor; 03. void main(void){ 04. void main(void) { 04. openchanel(); 06. openchanel(); 05. /*recebe matriz B para suas colunas serem multiplicadas 07. sendbc(((char *)&matriz),sizeof(_matriz)); 06. recv_be(((char *)&matriz),sizeof(_matriz)); 08. recv_be(((char *)&matriz),sizeof(_matriz)); 07. for (;;){ 09. for (i=0;i<N;++i){ 08. for(i=0;i<N;++i){ 10. for (t=0;t<N; ++t){vetor.X[t]=A[i][t];} 09. vtaux[i]=0;} 11. vetor.linha=i; 10. recv_be(((char *)&vetor), sizeof(_vetor)); 12. send(((char *)&vetor), sizeof(_vetor),p); 11. /* realiza a multiplicacao */ 13. if (p==P) p=1;else p++; 12. for (t=0;t<N;++t){ 14. } 13. for (i=0;i<N;++i){ 15. /*recebe e monta vetores nas matrizes*/ 14. vtaux[t]=vtaux[t]+(vetor.X[i]*matriz.B[i][t]);} 16. for (i=0;i<N;++i){ 15. } 17. recv_be(((char *)&vetor), sizeof(_vetor)); 16. /*atribui os calculos ao vetor para devolver ao mestre*/ 18. for (t=0;t<N;++t) { 17. for (t=0;t<N;++t){vetor.X[t]=vtaux[t];} 19. C[vetor.linha][t]=vetor.X[t]; 18. /*Envia vetor calculado ao mestre*/ 20. } 19. send(((char *)&vetor), sizeof(_vetor),0); Mestrando: Luiz Arthur Feitosa dos Santos 10
  • 11. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO PARALELO DE MULTIPLICAÇÃO DE MATRIZES # total simulation time in seconds sim_elapsed_time 53410 # total number of instructions executed sim_total_insn_00 23773083318 sim_total_insn_01 12126038543 # total simulation time in cycles sim_cycle 11878967426 # total number of ocupance cycles inet_ocupance_cycles_00 2560800 inet_ocupance_cycles_01 320400 # total number of bytes received inet_received_bytes_00 5123200 inet_received_bytes_01 3841600 # total number of bytes sended inet_sended_bytes_00 10243200 inet_sended_bytes_01 1281600 Saída reduzida de uma simulação no SMS Mestrando: Luiz Arthur Feitosa dos Santos 11
  • 12. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO PARALELO DE MULTIPLICAÇÃO DE MATRIZES Multiplicação de Matrizes 50x50 Multiplicação de Matrizes 100x100 16 160 14 140 Tempo em segundos Tempo em segundos 1 1 12 120 2 2 10 100 4 4 8 80 8 8 6 60 16 16 4 40 32 32 2 20 0 0 Processadores Processadores Multiplicação de Matrizes 600x600 Multiplicação de Matrizes 800x800 40000 90000 35000 80000 Tempo em segundos Tempo em segundos 1 70000 1 30000 2 60000 2 25000 4 50000 4 20000 8 40000 8 15000 16 30000 16 10000 20000 32 32 5000 10000 0 0 Processadores Processadores Tempo de execução do algoritmo de multiplicação de matrizes Mestrando: Luiz Arthur Feitosa dos Santos 12
  • 13. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO PARALELO DE MULTIPLICAÇÃO DE MATRIZES Multiplicação de Matrizes Speedup apresentado 30 pelo algoritmo 25 paralelo de 50x50 20 multiplicação de Speedup 100x100 15 matrizes 600x600 10 800x800 5 0 1 2 4 8 16 32 Processadores Multiplicação de Matrizes 1,8 1,6 1,4 50x50 Eficiência apresentada 1,2 Eficiência 1 100x100 pelo algoritmo paralelo 0,8 600x600 de multiplicação de 0,6 800x800 0,4 matrizes 0,2 0 1 2 4 8 16 32 Processadores Mestrando: Luiz Arthur Feitosa dos Santos 13
  • 14. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO PARALELO PARA CÁLCULO DO π O π é um número irracional expresso por uma dízima infinita não periódica. A busca incansável por esse número surgiu devido ao fato dele estar ligado a dois problemas fundamentais do universo matemático. Existem diversas maneiras de se calcular o π, tais como: série de Fourier, Mclaurin, Taylor e via integração. O método utilizado para a construção do algoritmo aqui proposto será o de integração 1 4 π =∫ 0 1+ x2 Entrada: Nº iterações N, Total de Entrada: Número do processador NP. processadores TP. Saída: Valor parcial de Saída: Valor global de pi_global recv_be(N,TP) send_bc(N,TP) w = 1.0/n for (x=1; x<=TP; x++) for (i=NP; i<=N; i=i+TP) recv_be(pi) x = w * (i – 0,5) pi_global=pi_global+pi pi = pi + (4.0 / (1.0 + (x * x))) mostra (pi_global) pi = pi * w send(pi) Mestre Escravo Mestrando: Luiz Arthur Feitosa dos Santos 14
  • 15. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO PARALELO PARA CÁLCULO DO π Cálculo do pi (n=10.000) Cálculo do pi (n=20.000) 70 140 60 120 Tempo em segundos Tempo em segundos 1 1 50 2 100 2 40 4 80 4 30 8 60 8 20 16 40 16 32 32 10 20 0 0 Processadores Processadores Cálculo do pi (n=100.000) Cálculo do pi (n=1.000.000) 700 8000 600 7000 Tempo em segundos Tempo em segundos 1 1 500 6000 2 2 5000 400 4 4 4000 300 8 8 3000 200 16 16 2000 32 32 100 1000 0 0 Processadores Processadores Tempo de execução do algoritmo do cálculo do π Mestrando: Luiz Arthur Feitosa dos Santos 15
  • 16. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO PARALELO PARA CÁLCULO DO π Cálculo do pi 16 14 12 10.000 Speedup 10 20.000 8 100.000 6 4 1.000.000 2 0 1 2 4 8 16 32 Processadores Cálculo do pi 1,2 1 0,8 10.000 Eficiência 20.000 0,6 100.000 0,4 1.000.000 0,2 0 1 2 4 8 16 32 Processadores Mestrando: Luiz Arthur Feitosa dos Santos 16
  • 17. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO TRAPEZOIDAL RULE Para demonstrar a semelhança entre a biblioteca SMS de passagem de mensagem e o MPI, foi desenvolvido o algoritmo Trapezoidal Rule. Sendo que tal algoritmo determina a integral de um ponto a para b em uma função não negativa f(x) através da área restrita por um eixo x. y y f(x) f(x) b ∫ a f ( x)dx a b x (a) (b) Uma forma de se estimar a área ou integral é dividir a região em figuras geométricas, neste caso em trapézios, sendo que cada trapézio é a base do eixo x, e em seu ápice existem dois pontos que juntam a figura. Mestrando: Luiz Arthur Feitosa dos Santos 17
  • 18. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO TRAPEZOIDAL RULE 02. #include </usr/sms/com.h> 03. struct _rank { // estrutura que informa passar o número do processador 2. #include "mpi.h" 05. int meu; } _rank; 3. double Trap(double local_a, double local_b, int local_n, double h); 07. struct _integral 4. double f(double x); 08. { double num; /* intervalo integral - local */ } _integral; 5. int main(int argc, char** argv) { 13. double Trap(double local_a, double local_b, int local_n, double h); … 14. double f(double x); 20. MPI_Status status; 15. int main(int argc, char** argv) { 21. MPI_Init(&argc, &argv); 30. openchanel(); /*sincroniza os processos mestre e escravo*/ 22. MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); 31. p=2; //numero do processador 23. MPI_Comm_size(MPI_COMM_WORLD, &p); 32. for (i=0; i<p; i++) 24. h = (b-a)/n; /* h é o mesmo em todos os processadores */ 33. {// determinar o rank de cada processador 25. local_n = n/p; /* número de trapezoids por nós */ 34. rank.meu=i; 26. local_a = a + my_rank*local_n*h; 35. send(((char *)&rank), sizeof(_rank),i); 27. local_b = local_a + local_n*h; 36. recv(((char *)&rank), sizeof(_rank)); 28. integral = Trap(local_a, local_b, local_n, h); 37. } 29. if (my_rank == 0) { 38. my_rank=rank.meu; 30. total = integral; 41. recv(((char *)&rank), sizeof(_rank)); 31. for (source = 1; source < p; source++) { 42. h = (b-a)/n; 32. MPI_Recv(&integral, 1, MPI_DOUBLE, source, tag, 43. local_n = n/p; 33. MPI_COMM_WORLD, &status); 44. local_a = a + my_rank*local_n*h; 34. total = total + integral; 45. local_b = local_a + local_n*h; 35. } 46. integral.num = Trap(local_a, local_b, local_n, h); 36. } else { 47. if (my_rank == 0) { 37. MPI_Send(&integral, 1, MPI_DOUBLE, dest, 48. total = integral.num; tag, MPI_COMM_WORLD); 49. for (source = 1; source < p; source++) { 38. } 50. recv_be(((char *)&integral), sizeof(_integral)); 39. if (my_rank == 0) { 51. total = total + integral.num; 40. printf("With n = %d trapezoids, our estimaten",n); 52. } 41. printf("of the integral from %f to %f = %23.16en", 53. } else {send(((char *)&integral), sizeof(_integral),dest);} a, b, total); 56. if (my_rank == 0) { 42. } 57. printf("With n = %d trapezoids, our estimaten", n); 43. MPI_Finalize(); 58. printf("of the integral from %f to %f = %23.16en", a, b, total); 44. return 0; 59. } 45. } 60. return 0; 61. } /* main */ MPI SMS 18
  • 19. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO TRAPEZOIDAL RULE Trapezoidal Rule (n=250.000) Trapezoidal Rule (n=750.000) 25 70 60 Tempo em Segundos Tempo em Segundo 20 1 1 2 50 2 15 40 4 4 10 8 30 8 16 20 16 5 32 32 10 0 0 Processadores Processadores Trapezoidal Rule (n=1.000.000) 90 80 Tempo em Segundos 70 1 60 2 50 4 40 8 30 16 20 32 10 0 Processadores Trapezoidal Rule (n=2.000.000) Trapezoidal Rule (n=4.000.000) 180 400 160 350 Tempo em Segundos Tempo em Segundos 140 1 1 300 120 2 2 250 100 4 4 200 80 8 8 150 60 16 16 40 100 32 32 20 50 0 0 Processadores Processadores Mestrando: Luiz Arthur Feitosa dos Santos 19
  • 20. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO TRAPEZOIDAL RULE Trapezoidal Rule 35 30 250.000 25 750.000 Speedup 20 1.000.000 15 2.000.000 10 4.000.000 5 0 1 2 4 8 16 32 Processadores Trapezoidal Rule 1,4 1,2 250.000 1 Eficiência 750.000 0,8 1.000.000 0,6 2.000.000 0,4 4.000.000 0,2 0 1 2 4 8 16 32 Processadores Mestrando: Luiz Arthur Feitosa dos Santos 20
  • 21. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO PARA TESTES DA REDE DE INTERCONEXÃO DO SIMULADOR SMS Numa arquitetura paralela, a rede de interconexão tem papel fundamental sobre o desempenho de todo sistema paralelo. Neste contexto, é relevante que a ferramenta de simulação viabilize a investigação da arquitetura simulada em função da rede de interconexão. Portanto, o estudo sobre as tecnologias de transmissão de dados em redes de interconexão é extremamente relevante em ambientes paralelos, pois a rede tem influência direta sobre o desempenho das aplicações. Tornando necessário que existam algoritmos que viabilizem testes para a rede de interconexão utilizada na ferramenta SMS. O primeiro algoritmo implementado com este fim é chamado de Round- Trip, que é um algoritmo que mede a taxa de transferência dos dados na rede de interconexão do simulador. Entrada: Tamanho em bytes da mensagem. Entrada: msg (mensagem do mestre) Saída: Taxa de transmissão da rede de Saída: msg (mensagem par o mestre) interconexão em bytes por segundo (bps) Recv_be(msg); Send (msg, mestre); T1=tempo inicial; Msg= 1000; // bytes Send (msg, escravo); Recv_be(msg); T2=tempo final; Tempo_total=T2-T1; Calcula taxa de taxa de trasferencia(); Mostra taxa de transferência em bps. (a) (b) Mestrando: Luiz Arthur Feitosa dos Santos 21
  • 22. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO PARA TESTES DA REDE DE INTERCONEXÃO DO SIMULADOR SMS Bytes msg 1.000 2.000 Bytes msg 4.000 fc 1 10.243.802 11.046.794 11.794.191 fc 2 5.799.589 5.829.884 6.308.472 3 4.086.971 4.193.892 4.302.806 4 3.013.319 3.084.535 3.208.439 5 2.535.703 2.557.434 2.541.619 10 1.312.808 1.283.974 1.313.513 20 0.650653 0.667792 0.627479 30 0.440441 0.437780 0.444038 100 0.135112 0.137166 0.112469 200 0.067977 0.068447 0.069002 bps Mestrando: Luiz Arthur Feitosa dos Santos 22
  • 23. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO DE ORDENAÇÃO ODD-EVEN É muito comum tanto em aplicações científicas quanto comerciais a utilização de métodos de ordenação de dados. Define-se como um algoritmo de ordenação, o que contenha funções para rearranjar uma lista desordenada de elementos de maneira que tais elementos fiquem ordenados de forma crescente ou decrescente. O algoritmo Odd-Even ordena n elementos em n fases (sendo n ímpar), cada qual requer n/2 operações de comparação e troca. Mestrando: Luiz Arthur Feitosa dos Santos 23
  • 24. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO DE ORDENAÇÃO ODD-EVEN O algoritmo de ordenação Odd-Even proposto para o simulador SMS, segue o mesmo princípio. Com a diferença de que o arranjo será dividido pelo número de processadores (n/p), em que n e p são múltiplos de dois. Cada nó então conterá um sub-arranjo, durante a fase ímpar, os nós irão enviar seus sub-arranjos para seus vizinhos à direita e os seus vizinhos à direita irão da mesma forma enviar seus sub-arranjos para seus vizinhos ímpares da esquerda. Em posse desses sub- arranjos cada nó que compõe a operação ímpar irá ordenar os dois sub-arranjos. Mestrando: Luiz Arthur Feitosa dos Santos 24
  • 25. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO DE ORDENAÇÃO ODD-EVEN Odd-Even Sort (n=2048) Odd-Even Sort (n=4096) Odd-Even Sort (n=8192) 8 16 40 7 14 35 Tempo em Segundos Tempo em Segundos Tempo em Segundos 1 1 1 6 12 30 2 2 2 5 10 25 4 4 4 4 8 20 8 8 8 3 6 15 16 16 16 2 4 10 32 32 32 1 2 5 0 0 0 Processadores Processadores Processadores Odd-Even Sort (n=16384) Odd-Even Sort (n=32768) Odd-Even Sort (n=65536) 90 200 450 80 400 Tempo em Segundos Tempo em Segundos Tempo em Segundos 70 1 1 350 1 150 60 2 2 300 2 50 4 4 250 4 100 40 8 8 200 8 30 16 16 150 16 20 50 100 32 32 32 10 50 0 0 0 Processadores Processadores Processadores Mestrando: Luiz Arthur Feitosa dos Santos 25
  • 26. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO DE ORDENAÇÃO ODD-EVEN Odd-Even Sort 10 8 2048 4096 Speedup 6 8192 4 16384 32768 2 65536 0 1 2 4 8 16 32 Processadores Odd-Even Sort 1,2 1 2048 0,8 4096 Eficiência 8192 0,6 16384 0,4 32768 0,2 65536 0 1 2 4 8 16 32 Processadores Mestrando: Luiz Arthur Feitosa dos Santos 26
  • 27. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares ALGORITMO DE ORDENAÇÃO ODD-EVEN Como o algoritmo Odd-Even tem como objetivo principal o teste da rede de interconexão, tal algoritmo atinge este objetivo claramente. Para isto basta comparar o fluxo da rede de interconexão dos algoritmos Odd-Even e do π. Envio de mensagens cálculo do pi Recebimento de mensagens cálculo do pi 0 0 Processadores Processadores 1 1 2 2 3 3 4 4 5 5 6 6 7 7 0 20 40 60 80 100 120 0 10 20 30 40 50 60 70 8 8 Bytes Bytes Uso da rede de interconexão do algoritmo de cálculo do π Envio de Mensagens do Odd-Even Sort Recebimento de Mensagens do Odd-Even Sort 0 Processadores 0 Processadores 1 1 2 2 3 3 4 4 5 5 6 6 7 7 0 50000 100000 150000 200000 250000 300000 0 50000 100000 150000 200000 250000 300000 8 8 Bytes Bytes Uso da rede de interconexão do algoritmo Odd-Even sort Mestrando: Luiz Arthur Feitosa dos Santos 27
  • 28. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares SIMULAÇÃO DE OUTRAS ARQUITETURAS COM O SMS O SMS possibilita a alteração de inúmeros itens de hardware de um processador superescalar, de forma que é possível configurar e simular vários aspectos. Um exemplo de alteração de simulação é trocar o tamanho da memória cache, tal experimento foi feito com o algoritmo do π /usr/sms/sms 3 -cache:dl1_00 dl1:4096:32:1:l -cache:dl1_01 dl1:4096:32:1:l -redir:sim PIParalelo-d4096-10.000-3.sim PIP Linha de comando para executar o programa de cálculo do π com cache de dados de tamanho de 4096 No exemplo do algoritmo do π foi modificado o tamanho da memória cache de dados de todos os processadores, sendo então colocada em cada processador uma cache de dados com o tamanho de 4096 bytes (ver figura 39), sendo que o simulador tem como padrão uma cache de dados com tamanho de 128 bytes, que foi o tamanho utilizado nas simulações com o algoritmo do cálculo do π anteriormente. Mestrando: Luiz Arthur Feitosa dos Santos 28
  • 29. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares SIMULAÇÃO DE OUTRAS ARQUITETURAS COM O SMS Algoritmo cálculo do pi com cache alterada 25 20 10.000 cache 128 Speedup 15 100.000 cache 128 10 10.000 cache 4096 100.000 cache 4096 5 0 1 2 4 8 16 32 Processadores Algoritmo cálculo do pi com cache alterada 1,4 1,2 1 10.000 cache 128 Eficiência 0,8 100.000 cache 128 0,6 10.000 cache 4096 0,4 100.000 cache 4096 0,2 0 1 2 4 8 16 32 Processadores Mestrando: Luiz Arthur Feitosa dos Santos 29
  • 30. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares SIMULAÇÃO DE OUTRAS ARQUITETURAS COM O SMS Outro algoritmo submetido a uma mudança de arquitetura simulada foi o Trapezoidal rule. Para este algoritmo foi alterado o previsor de desvios, trocando o bimod (padrão do simulador) para o algoritmo 2lev. Tal modificação foi realizada em todos os processadores, mas poderia ser feita individualmente simulando ambientes heterogêneos, para isso seria necessário especificar via linha de comando, por exemplo: sms 2 –bpred_00 bimod –bpred_01 2lev trapezoide. #sms 2 -bpred_00 2lev -bpred_01 2lev -redir:sim trapezoide-2lev-44440.000-2.sim trapezoide Mestrando: Luiz Arthur Feitosa dos Santos 30
  • 31. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares SIMULAÇÃO DE OUTRAS ARQUITETURAS COM O SMS Alteração do sistema de previsão de desvio do algoritmo Trapezoidal rule 30 1.000.000 2lev 25 2.000.000 2lev Speedup 20 4.000.000 2lev 15 1.000.000 bimod 10 2.000.000 bimod 5 4.000.000 bimod 0 1 2 4 8 16 32 Processadores Alteração do sistema de previsão de desvio do algoritmo Trapezoidal rule 1,2 1.000.000 2lev 1 2.000.000 2lev Eficiência 0,8 4.000.000 2lev 0,6 1.000.000 bimod 0,4 2.000.000 bimod 0,2 2.000.000 0 1 2 4 8 16 32 Processadores Mestrando: Luiz Arthur Feitosa dos Santos 31
  • 32. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares SIMULAÇÃO DE OUTRAS ARQUITETURAS COM O SMS O algoritmo de ordenação Odd-Even proposto tem como característica marcante o intenso uso da rede de interconexão, foram realizadas simulações com duas arquiteturas, uma com uma rede de interconexão com 1Mb/s de largura de banda e outra com 10Mb/s. Odd-Even sort com rede de interconexão de Odd-Even sort com rede de interconexão de 1 Mb/s(n=32768) 10 Mb/s (n=32768) 200 200 Tempo em segundos Tempo em segundos 1 1 150 150 2 2 4 4 100 100 8 8 50 16 16 50 32 32 0 0 Processadores Processadores Odd-Even sort com rede de interconexão de Odd-Even sort com rede de interconexão de 1 Mb/s (n=65536) 10 Mb/s (n=65536) 500 500 Tempo em segundos Tempo em segundos 400 1 1 400 2 2 300 4 300 4 200 8 200 8 16 16 100 100 32 32 0 0 Processadores Processadores Mestrando: Luiz Arthur Feitosa dos Santos 32
  • 33. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares TRABALHOS FUTUROS Memória Compartilhada: O desenvolvimento de tal modulo tornará o SMS uma ferramenta de simulação completa, simulando ambientes de memória distribuída e compartilhada; Desenvolvimento de Algoritmos Paralelos para memória compartilhada: Com a implementação do modulo de memória compartilhada faz se necessário o desenvolvimento de algoritmos para testes neste ambiente; Interface Gráfica: A criação de tal modulo possibilitará uma melhor interação entre o usuário e a ferramenta, e facilitará o controle das simulações; Redes de Interconexão: Outras redes de interconexão devem ser implementadas com diferentes topologias e protocolos de controle. Mestrando: Luiz Arthur Feitosa dos Santos 33
  • 34. Desenvolvimento de Algoritmos Paralelos para Simulador de Multiprocessadores Superescalares CONCLUSÃO Foram executados intensos exercícios de simulação. Esses exercícios de simulação mostraram que a ferramenta viabiliza a implementação de algoritmos paralelos e a análise de desempenho de arquiteturas paralelas. A ferramenta permite realizar simulações, nas quais é possível alterar características físicas de baixo nível e alto nível. Os algoritmos implementados permitem ainda que usuários que estejam iniciando suas pesquisas em computação paralela, possam primeiramente analisar os algoritmos já implementados, estudando- os e alterando-os, para posteriormente desenvolver seus próprios algoritmos. Tais algoritmos também permitiram validar a ferramenta, mostrando que ela é uma ótima alternativa para testes de avaliação de desempenho em ambientes paralelos e como ferramenta de auxílio ao ensino e pesquisa em Arquiteturas Paralelas. Mestrando: Luiz Arthur Feitosa dos Santos 34