Aula6 Plc Arqava

15
PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br 1 - Aula 6 - ARQUITETURAS AVANÇADAS DE COMPUTADORES 1. INTRODUÇÃO As arquiteturas dos processadores têm evoluído ao longo dos anos, e junto com ela o conceito de arquitetura avançada tem se modificado. Nos anos 60 os computadores ditos de grande porte (IBM, CDC) eram considerados exemplos de alto desempenho. Um pouco depois surgiram os supercomputadores, arquiteturas específicas para a realização de cálculos com valores reais dispostos em arranjos de matrizes e vetores. No início dos anos 80 surgiram os primeiros microcomputadores, com desempenho muito longe dos computadores de grande porte e supercomputadores. A evolução das tecnologias de integração de componentes em larga escala permitiu que esses processadores evoluíssem em desempenho, atingindo um amplo espectro de aplicações comerciais. 2. REVISÃO DE CONCEITOS 2.1. Arquitetura CISC A arquitetura CISC possui as seguintes características: - Instruções complexas demandando um número grande e variável de ciclos de máquina para sua execução. - Uso de diversos modos de endereçamento de operandos. Instruções com formato muito variável. - Diferentes tipos de instruções podem referenciar operandos na memória principal. - Cada fase do processamento da instrução pode ter duração variável em função da complexidade. Essa implementação traz alguns inconvenientes, como: - Difícil implementação com uso de pipeline - Baixas taxas médias de execução das instruções por ciclo - A unidade de controle é em geral microprogramada. - Códigos compactos podem ser gerados pelos compiladores. 2.2. Arquitetura RISC A arquitetura RISC possui as seguintes características:

Transcript of Aula6 Plc Arqava

  • PROJETO LGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

    http://www.ricardobarcelar.com.br

    1

    - Aula 6 -

    ARQUITETURAS AVANADAS DE COMPUTADORES

    1. INTRODUO

    As arquiteturas dos processadores tm evoludo ao longo dos anos, e junto com ela o conceito de arquitetura avanada tem se modificado.

    Nos anos 60 os computadores ditos de grande porte (IBM, CDC) eram considerados exemplos de alto desempenho.

    Um pouco depois surgiram os supercomputadores, arquiteturas especficas para a realizao de clculos com valores reais dispostos em arranjos de matrizes e vetores.

    No incio dos anos 80 surgiram os primeiros microcomputadores, com desempenho muito longe dos computadores de grande porte e supercomputadores.

    A evoluo das tecnologias de integrao de componentes em larga escala permitiu que esses processadores evolussem em desempenho, atingindo um amplo espectro de aplicaes comerciais.

    2. REVISO DE CONCEITOS

    2.1. Arquitetura CISC

    A arquitetura CISC possui as seguintes caractersticas: - Instrues complexas demandando um nmero grande e varivel de ciclos de mquina

    para sua execuo. - Uso de diversos modos de endereamento de operandos. Instrues com formato muito varivel. - Diferentes tipos de instrues podem referenciar operandos na memria principal. - Cada fase do processamento da instruo pode ter durao varivel em funo da

    complexidade.

    Essa implementao traz alguns inconvenientes, como: - Difcil implementao com uso de pipeline - Baixas taxas mdias de execuo das instrues por ciclo - A unidade de controle em geral microprogramada. - Cdigos compactos podem ser gerados pelos compiladores.

    2.2. Arquitetura RISC

    A arquitetura RISC possui as seguintes caractersticas:

  • PROJETO LGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

    http://www.ricardobarcelar.com.br

    2

    - Instrues mais simples demandando um nmero fixo de ciclos de mquina para sua execuo;

    - Uso de poucos modos simples de endereamento de operandos; - Poucos formatos diferentes de instrues; - Apenas as instrues de load e store referenciam operandos na memria principal; - Cada fase de processamento da instruo tem a durao fixa igual a um ciclo de

    mquina.

    Assim como na arquitetura CISC, esta trs algumas conseqncias, como: - So implementadas com o uso do pipeline; - A taxa mdia de execuo de instrues por ciclo de mquina tambm baixa, porm

    superior a arquitetura CISC; - A unidade de controle em geral hardwired; - Processo de compilao complexo e requer cuidados especiais para otimizao do

    desempenho do cdigo gerado.

    Essas arquiteturas so teis para dar solues as mais diversas necessidades do dia-a-dia. No entanto, algumas aplicaes nas reas de cincia, engenharia e na indstria demandam computadores com alto potencial de processamento (alta performance), mas a velocidade de operao dos circuitos eletrnicos est limitada, por alguns fatores:

    - A velocidade dos sinais eltricos aproximadamente igual velocidade da luz; - A proximidade dos componentes aumenta a dissipao de calor; - Tamanho dos transistores tem limite fsico (princpio da incerteza de Heisenberg).

    3. ARQUITETURAS COM DESEMPENHO SUPERIOR A UMA INSTRUO POR CICLO

    Existem diversas formas de melhorar o desempenho de computadores para atender necessidades de reas especficas da cincia, engenharia e da indstria. Dentre elas podemos citar: - Arquitetura superescalares: Possibilitam a execuo de mltiplas instrues, escalonadas por hardware e/ou software, concorrentemente. - Arquitetura VLIW (Very Long Instruction Word): Possibilitam a execuo de mltiplas operaes, escalonadas por software, concorrentemente. - Arquitetura Multithreading e SMT: Permitem a execuo simultnea de mais de uma thread no processador. - Arquiteturas Multicore: Permite o uso de vrios processadores em um mesmo encapsulamento, compartilhando ou no a cache de nvel 2. Todas essas arquiteturas possibilitam a otimizao na execuo de instrues e/ou operaes por meio de hardware ou de software.

  • PROJETO LGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

    http://www.ricardobarcelar.com.br

    3

    3.1. Arquiteturas Superescalares

    As mquinas superescalares so conhecidas por possurem mais de um pipeline em paralelo em sua arquitetura. Isso gera problemas de acesso aos recursos comuns, que precisam ser duplicados em sua maioria. Os barramentos devem possuir largura suficiente para a busca de mais de uma instruo por ciclo.

    O uso de caches separadas para dados e instrues uma soluo para permitir leitura e escrita simultneas memria. comum, tambm a existncia de vrias portas de leitura e de escrita no banco de registradores.

    Devido a problemas de dependncias de dados e controle pode acontecer que em alguns ciclos no haja instrues prontas para serem executadas. Esquemas mais simples de despacho, simplesmente congelam o pipeline nesse caso. Esquemas mais sofisticados continuam a busca e tentam executar as instrues fora-de-ordem, com mecanismos que posteriormente permitam a retirada dessas instrues, e atualizao do estado da mquina, na mesma ordem estabelecida pelo programa objeto.

    3.2. Arquiteturas VLIW (Very Long Instruction Word)

    Estas so mquinas que exploram o paralelismo no nvel das instrues. Vrias operaes so executadas em paralelo em diferentes unidades funcionais, tais como em mquinas superescalares. A diferena est no controle do despacho e na terminao das operaes.

    Nas mquinas superescalares as dependncias so resolvidas em tempo de execuo por um hardware dedicado, nas mquinas VLIW as dependncias so resolvidas em tempo de compilao pelo compilador.

    Em uma mquina VLIW, vrias operaes so codificadas em uma mesma instruo. A palavra de instruo bastante longa, podendo conter vrias operaes (que operam sobre vrios operandos) independentes. A posio de cada operao dentro da palavra VLIW determina a unidade funcional que ser usada. Deste modo, o hardware de despacho simples.

    Em uma mquina VLIW o compilador responsvel por determinar as operaes que sero executadas em paralelo. As operaes que possam ser executadas em paralelo so atribudas a uma mesma palavra de instruo. Dentro de um mesmo bloco bsico (seqencial) as instrues podem ser escalonadas com base na dependncia de dados.

    3.3. Arquiteturas SMT

    SMT uma tcnica que permite mltiplas threads despacharem mltiplas instrues a cada ciclo para unidades funcionais de um processador superescalar.

    O SMT combina a capacidade de despacho de mltiplas instrues das arquiteturas superescalares, com a habilidade de esconder latncia das arquiteturas multithreading.

    A cada instante de tempo instrues de diferentes threads podem estar sendo executadas simultaneamente. Busca reduzir o nmero de slots de despacho no ocupados a cada ciclo (elevado em arquiteturas multithreading) e o nmero de ciclos em que nenhuma instruo despachada (elevado em arquiteturas superescalares).

  • PROJETO LGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

    http://www.ricardobarcelar.com.br

    4

    As arquiteturas SMT podem ser de trs tipos bsicos: - Full Simultaneous issue: modelo ideal, mas de difcil realizao, onde no h restrio

    sobre o nmero de instrues de cada thread que pode ser despachada a cada ciclo. - Limited Simultaneous Issue: apenas um nmero limitado (1 a 4 tipicamente) de instrues

    de cada thread pode ser despachado a cada ciclo. - Limited Connection: restringem o nmero de unidades funcionais de cada tipo que podem

    estar conectadas a cada contexto.

    Figura 1 - Threads

  • PROJETO LGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

    http://www.ricardobarcelar.com.br

    5

    Figura 2 - Thread

    3.3. Arquiteturas Multicore

    Vrios processadores encapsulados em uma mesma pastilha, podendo compartilhar ou no a cache de nvel. Normalmente so processadores idnticos, tanto em termos de arquitetura quanto em velocidade de processamento. As tarefas podem ser executadas indistintamente em cada um dos processadores.

    O sistema operacional responsvel pelo escalonamento das tarefas (processos e/ou threads) para cada um dos processadores. uma alternativa muito adotada recentemente devido aos ganhos de consumo de energia que podem ser obtidos, sem perda de desempenho quando h um nmero adequado de tarefas para serem executadas em paralelo.

    4. PROJETO DE MQUINAS PARALELAS

    Possveis solues para aumento de performance seriam o uso de paralelismo em nvel de instrues (~10x), atravs de pipeline ou arquitetura superescalar, ou o paralelismo real (~100x, 1000x), onde vrios processadores trabalham juntos e com eficincia.

    Os projetos de computadores paralelos diferem basicamente na quantidade de elementos (processadores e memrias), no tamanho desses elementos, no tipo de elementos usados e na maneira de interconect-los.

  • PROJETO LGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

    http://www.ricardobarcelar.com.br

    6

    4.1. Aspectos Importantes

    Os Sistemas de Memria, em computao paralela esto divididos em mdulos que operam de modo independente entre si, porm em paralelo para permitir que vrios processadores acessem as informaes simultaneamente. Com isso, podem estar integrados ao processador ou localizados em placas separadas, sendo possvel serem projetados com 2, 3 ou, s vezes, 4 nveis de cache.

    Os esquemas de interconexo podem ser, a grosso modo, de dois tipos: - Estticos: ligam os componentes do sistema de maneira fsica: em estrela, em anel ou

    em grade. - Dinmicos: componentes esto ligados a elementos comutadores que roteiam mensagem

    entre eles. Outro aspecto importante a granularidade no paralelismo, pois se refere aos tipos de

    algoritmos e softwares (aplicaes) que so rodados no computador e tem reflexo direto no hardware e podem ser:

    - Paralelismo de granularidade alta (ou grossa): existentes nos sistemas que rodam programas grandes em paralelo com pouca, ou nenhuma, comunicao entre eles. Rodam em regime de tempo compartilhado e podem atender a milhares de usurios remotos. So exemplos deste tipo de paralelismo sistemas de transio de bancos, de empresas areas, etc.

    - Paralelismo de granularidade baixa (ou fina): implementado nos sistemas de processamento vetorial, onde se usa um alto grau de processamento pipeline, ou por meio de vrias UALs operando sobre a mesma instruo ao mesmo tempo. O objetivo ganhar velocidade na soluo de um nico tipo de problema. So exemplos computadores que rodam jogo de xadrez, previso de tempo, etc.

    - Paralelismo de granularidade mdia: possui as caractersticas dos dois modelos anteriores.

    Alm do paralelismo no processamento, h que se considerar o nvel de acoplamento no paralelismo que se relaciona as caractersticas de hardware:

    - Sistemas fracamente acoplados: possuem pequena quantidade de processadores grandes, independentes e com conexes de baixa velocidade entre si.

    - Sistemas fortemente acoplados: compostos de processadores de pouca potncia computacional, fisicamente prximos uns dos outros e que interagem freqentemente por meio de redes de comunicao de alta velocidade.

    4.2. Modelos de Comunicao

    O Modelo de Comunicao refere-se maneira como os processadores se comunicam entre si para trocar informaes quando da execuo de diferentes partes de uma mesma tarefa. Nesse sentido, importante separar a forma como se d a comunicao de acordo com a organizao do processamento:

  • PROJETO LGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

    http://www.ricardobarcelar.com.br

    7

    4.2.1. MULTIPROCESSADORES (ou Sistemas de Memria Compartilhada)

    Neste modelo todos os processadores compartilham de uma nica memria fsica. Dois processos se comunicam escrevendo/lendo (Load/Store) dados na memria compartilhada. A Figura abaixo ilustra que cada processador responsvel pelo processamento de uma parte da imagem. Essa arquitetura requer algum tipo de coordenao na execuo da tarefa, pois alguns objetos ocupam mais do que uma seo da imagem.

    Figura 3 - (a) Sistema multiprocessador com 16 processadores compartilhando uma nica memria. (b) Imagem

    dividida em 16 sees, cada uma delas sendo analisada por um processador diferente

    4.2.2. MULTICOMPUTADORES (ou Sistemas de Memria Distribuda)

    Diferente do modelo anterior, cada processador tem sua prpria memria, com exclusividade para leitura e escrita diretas. Dois processos trocam mensagens entre si usando a rede de interconexo e as primitivas send e receive, implementadas por software.

    Quando um processador A precisa de dados de outro processador B: - O processador A envia (send) uma mensagem requisitando uma cpia da memria de B. - O processador A fica bloqueado at receber (receive) uma resposta do processador B.

    A diviso correta dos dados e sua colocao em posies timas um aspecto muito importante para eficincia dos multicomputadores. Isto responsabilidade do programador.

  • PROJETO LGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

    http://www.ricardobarcelar.com.br

    8

    Figura 4 - (a) Sistema multicomputador com 16 processadores, cada qual com a sua prpria memria. (b) O mapa de

    bits da Figura 1 dividido entre as 16 memrias do sistema.

    importante observar que programar um multicomputador muito mais difcil do que programar um multiprocessador.

    Multicomputadores de grande porte so muito mais simples de serem construdos, e muito mais baratos do que multiprocessadores com o mesmo nmero de processadores

    Assim, muito complicado implementar compartilhamento de memria para centenas de processadores e, mais simples construir multicomputadores com 10.000 processadores.

    Assim sendo, soluo hbrida seria uma alternativa interessante como forma de combinar dos pontos fortes de cada arquitetura, ou seja, a busca de computadores fceis de construir e de programar.

    A figura abaixo demonstra algumas solues que podem ser usadas para implementao de memria compartilhada em diferentes nveis da mquina.

  • PROJETO LGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

    http://www.ricardobarcelar.com.br

    9

    Figura 5 - As diversas camadas nas quais a memria compartilhada pode ser implementada.

    (a) hardware. (b) O sistema operacional. (c) O ambiente de execuo da linguagem.

    4.3. Redes de Interconexo

    As redes de interconexo usam mecanismos de troca de mensagens (pacotes) para implementar a comunicao entre seus componentes. Alm dos processadores e dos mdulos de memria possuem outros trs componentes:

    - Interfaces - Links - Comutadores

    As interfaces so dispositivos responsveis pelo envio e recepo das mensagens. So representados pelos chips ou placas ligadas a cada barramento local dos processadores. Podem se comunicar tanto com o processador quanto com a memria local e faz a leitura e escrita em vrias memrias, o que possibilita a transferncia de blocos de dados.

    Os links so canais fsicos sobre os quais os bits se movimentam. Consiste em banda passante mxima (# de bits que pode ser transferidos por segundo). A transferncia dos dados pode ocorrem de trs modos distintos, transmisses em uma, duas ou ambas as direes simultaneamente:

    - Simplex - Half duplex - Full duplex

    Os comutadores so dispositivos com vrias portas de entrada e de sada (transferem entradas para determinadas sadas).

  • PROJETO LGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

    http://www.ricardobarcelar.com.br

    10

    Ao se projetar ou analisar uma rede de interconexo deve-se considerar, ainda, a topologia, o funcionamento dos comutadores e o algoritmo de roteamento de mensagens.

    4.3.1. TOPOLOGIA

    A topologia de uma rede de interconexo descreve a organizao de seus links e de seus comutadores. Geralmente so modelados como grafos, com os links sendo os arcos e os comutadores os ns.

    Figura 6 - Diversas topologias. Os pontos representam os comutadores. Os processadores e as memrias no

    aparecem na figura. Topologia: (a) em rede. (b) rede totalmente conectada. (c) em rvore. (d) em anel. (e) em

    grade. (f) double torus. (g) em cubo. (h) hipe

    - Cada n da rede tem certo nmero de links ligados a ele, conhecido como grau do n. - O dimetro da rede definido como a distncia, medida em nmeros de links a serem

    percorridos, entre dois ns mais afastados.

  • PROJETO LGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

    http://www.ricardobarcelar.com.br

    11

    - A dimenso da rede determinada pelo nmero de escolhas que podem ser feitas para se ir de uma fonte para um destino. Quando se tem uma nica escolha, a dimenso zero. A dimenso n-1 quando se tem n escolhas.

    4.3.2. COMUTADORES

    Uma rede de interconexo composta de comutadores e de fios que os conectam. Sua tarefa aceitar pacotes que chegam a qualquer uma das portas de entrada, enviando-os para a porta de sada correta, de acordo com seu destino final.

    Cada porta de sada ligada a uma porta de entrada de outro comutador por intermdio de um link serial ou paralelo, conforme linhas pontilhadas abaixo.

    Figura 7 - Rede de interconexo em forma de uma grade quadrada com 4 comutadores.

    Somente dois dos quatro processadores aparecem na figura

    Os comutadores podem ser empregados de diversas formas de acordo com as estratgias de uso dos comutadores.

    4.3.2.1. Comutao de circuitos

    Reservam-se, a priori, todos os recursos (portas e buffers) do caminho entre a origem e o destino antes que o pacote possa ser enviado. Assim, os bits so enviados pela fonte na velocidade mxima, passando por todos os comutadores at chegar ao seu destino. A Figura 7, exposta acima, ilustra bem essa estratgia onde so reservadas trs portas de entrada e trs de sada.

  • PROJETO LGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

    http://www.ricardobarcelar.com.br

    12

    A desvantagem desta abordagem que os recursos alocados ficam bloqueados para outras transmisses at que a transmisso corrente termine. 4.3.2.2. Comutao de pacotes store-and-forward:

    Nesta abordagem no h a necessidade de reserva antecipada de recursos.

    Figura 8 - Rede de comutao de pacotes store-and-forward

    Na ilustrao acima os comutadores utilizam buffers para armazenar os pacotes evitando perda de informao. Existem trs estratgias de armazenamento:

    - Armazenamento na entrada: O pacote armazenado em 1 fila (FIFO) e espera porta de sada ser liberada. O problema nesta abordagem o bloqueio pelo cabea da fila que segura outros pacotes at que sua porta seja liberada.

    - Armazenamento na sada: Na medida em que os bits vo chegando, eles vo sendo armazenados nos buffers das respectivas portas de sada. Isso evita o bloqueio pelo cabea de fila, pois pacotes da porta m no so bloqueados pelos da porta n. Este modelo pode ter problemas com tamanhos dos buffers com perdas de pacotes.

    - Armazenamento comum: Um nico pool de buffers alocado dinamicamente s portas, conforme o necessrio. O problema que implementa um modelo de gerenciamento mais complexo. Sofre, ainda, o problema de latncia (retardo) ao longo da rede de interconexo, uma vez que cada pacote s pode mudar de buffer aps ter sido armazenado por completo no buffer anterior.

    - Soluo hbrida: A Comutao de pacotes divide o pacote em subpacotes

    4.3.3 ALGORITMOS DE ROTEAMENTO

    A regra para se determinar qual a sequncia de ns que um pacote deve seguir para sair da fonte e chegar ao destino chamado de algoritmo de roteamento.

  • PROJETO LGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

    http://www.ricardobarcelar.com.br

    13

    Um bom algoritmo de roteamento deve dividir a carga da rede sobre seus diversos links, de maneira a utilizar totalmente a banda passante disponvel. O algoritmo de roteamento deve evitar ocorrncia de deadlock. Um deadlock ocorre quando vrios pacotes em trnsito requisitam, ao mesmo tempo, um conjunto de recursos, mas nenhum deles consegue obter todos os recursos. Nesse caso todos os pacotes ficam bloqueados (travados) para sempre.

    Figura 9 - Ocorrncia do deadlock em uma rede de comutao de circuitos

    4.4. Desempenho

    O desempenho de mquinas paralelas pode seguir duas abordagens de medida: por hardware ou por software.

    4.4.1. MEDIDAS NO HARDWARE

    Na medida no hardware considera-se - Velocidade do processador - Velocidade dos dispositivos de E/S - Performance da rede de interconexo

    Essa ltima depende das medidas de desempenho conhecidas como latncia e da banda passante.

    A Latncia total o tempo gasto por um processador para enviar um pacote e receber uma resposta (depende da topologia da rede e dos tempos de inicializao e de transmisso).

  • PROJETO LGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

    http://www.ricardobarcelar.com.br

    14

    A Banda passante agregada a quantidade mxima de bits que podem transitar pela rede de uma s vez.

    A Banda passante mdia de cada processador limita a quantidade de dados que cada processador pode alocar em sua sada.

    Nesse contexto a latncia mais importante que a banda passante.

    4.4.2. MEDIDAS DO SOFTWARE

    Para o usurio interessa saber quo mais rpido seu programa vai rodar numa arquitetura em paralelo, em relao a um nico processador utilizaremos a figura baixo para ilustrar a performance de 3 programas e o quanto eles se afastam do ganho perfeito.

    Figura 10 - Os programas reais no conseguem chegar ao ganho perfeito, indicado pela linha pontilhada.

    A razo de no se ter um ganho perfeito deve-se : - Componentes sequenciais (nas inicializaes, leitura de dados e obteno de resultados)

    de programas - Latncias nas comunicaes - Bandas passantes finitas - Nem todos os processadores so usados - Ineficincias de algoritmos: nem todos os algoritmos timos so paralelizveis

  • PROJETO LGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

    http://www.ricardobarcelar.com.br

    15

    4.5. Software

    Sem um software paralelo, o hardware paralelo tem pouco ou nenhum uso. Dessa forma de suma importncia que os programas e aplicativos sejam construdos para suportar hardware que opera em paralelo.

    Existem quatro metodologias para produo de software para mquinas paralelas:

    a) Adicionam-se bibliotecas para tratamento de nmeros s linguagens de programao seqencial, como inversores de matrizes, solues para equaes diferenciais, etc. Os Clculos podem ser realizados por diversos processadores, em paralelo. O problema que somente os clculos especiais so realizados em paralelo, o resto do programa seqencial.

    b) Adicionam-se bibliotecas especiais com primitivas de comunicao e controle. O programador responsvel por criar e gerenciar o paralelismo, usando as primitivas

    c) Adicionam-se linguagem de programao convencional, algumas estruturas especiais para criao de processos paralelos, execuo de operaes aritmticas sobre todos os elementos de um vetor ao mesmo tempo e execuo, em paralelo, das iteraes de um loop.

    d) Desenvolve-se uma linguagem de programao nova, totalmente voltada para a programao paralela. A vantagem que se tem uma linguagem dedicada programao paralela, poremos desenvolvedores de programas devem aprender essa nova linguagem.

    Existem cinco aspectos que formam o corao de todos os softwares para computadores paralelos, a saber:

    - Modelos de Controle - Granularidade do paralelismo - Paradigmas computacionais - Mtodos de comunicao - Primitivas de sincronizao