Capítulo 1. Introdução



Documentos relacionados
P4-MPS.BR - Prova de Conhecimento do Processo de Aquisição do MPS.BR

3 Qualidade de Software

Guia de utilização da notação BPMN

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

c. Técnica de Estrutura de Controle Teste do Caminho Básico

1 Introdução simulação numérica termoacumulação

SISTEMAS ADMINISTRATIVOS

GUIA DE PROJECTO INTEGRADO PARA O CLIENTE VERSÃO FINAL

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Avaliação de Desempenho de Sistemas

1. Introdução. 1.1 Contextualização do problema e questão-problema

Diretrizes para determinação de intervalos de comprovação para equipamentos de medição.

Descrição do processo de priorização para tomada de tempos: Pesquisa ação em uma empresa job shop de usinados aeronáuticos.

PLANEJAMENTO ESTRATÉGICO

Arquitetura de processadores: RISC e CISC

Inovação aberta na indústria de software: Avaliação do perfil de inovação de empresas

PLANEJAMENTO OPERACIONAL - MARKETING E PRODUÇÃO MÓDULO 16 AS QUATRO FASES DO PCP

No capítulo 3 estão concentrados todos os assuntos relacionados à metodologia utilizada nesse trabalho de pesquisa. Ou seja, tipo de pesquisa, método

Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento

Base Nacional Comum Curricular Lemann Center at Stanford University

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Plano de Continuidade de Negócios

PROCEDIMENTOS DE AUDITORIA INTERNA

Sistemas de Informação I

Teste de Software Parte 1. Prof. Jonas Potros

Sobre o Sistema FiliaWEB

Processos de gerenciamento de projetos em um projeto

Metodologia para seleção de amostras de contratos de obras públicas (jurisdicionados) utilizando a programação linear aplicativo Solver

Engenharia de Software II

Cartilha do ALUNO EMPREENDEDOR POLITÉCNICA

PROJETO DE COOPERAÇÃO TÉCNICA INTERNACIONAL. Projeto 914 BRA PRODOC-MTC/UNESCO DOCUMENTO TÉCNICO Nº 03

Tipos de malha de Controle

REQUISITOS MÍNIMOS FUNCIONAIS QUANTO A CONFIGURAÇÕES DE BARRAS PARA SUBESTAÇÕES DA REDE BÁSICA DO SISTEMA INTERLIGADO BRASILEIRO.

5 CONCLUSÃO Resumo

Data 23/01/2008. Guia do Professor. Introdução

Exercícios Teóricos Resolvidos

WMS e TMS. A integração entre os sistemas de gerenciamento de armazéns e transportes é fundamental para a otimização dos fluxos de trabalho

Preparação do Trabalho de Pesquisa

Figura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001

CAPÍTULO 2. BANCOS DE DADOS DISTRIBUÍDOS

Sistema de Memórias de Computadores

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

4. Metodologia. Capítulo 4 - Metodologia

Resolução da lista de exercícios de casos de uso

Medição tridimensional

ARQUITETURA DE COMPUTADORES

Simulado Informática Concurso Correios - IDEAL INFO

INVESTIMENTO A LONGO PRAZO 1. Princípios de Fluxo de Caixa para Orçamento de Capital

Cotagem de dimensões básicas

Eixo Anhanguera-Bandeirantes virou polo lean, diz especialista

PROJETO DE PESQUISA: INDICAÇÕES PARA SUA ELABORAÇÃO

Memória cache. Prof. Francisco Adelton

O EMPREGO DOMÉSTICO. Boletim especial sobre o mercado de trabalho feminino na Região Metropolitana de São Paulo. Abril 2007

ipea políticas sociais acompanhamento e análise 7 ago GASTOS SOCIAIS: FOCALIZAR VERSUS UNIVERSALIZAR José Márcio Camargo*

4.1. UML Diagramas de casos de uso

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Roteiro SENAC. Análise de Riscos. Planejamento do Gerenciamento de Riscos. Planejamento do Gerenciamento de Riscos

b) integração de área(s) de concentração, linhas de pesquisa, projetos de pesquisa, produção intelectual e estrutura curricular de modo tal que:

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

Princípios do teste de software

Projeto de inovação do processo de monitoramento de safra da Conab

Câmara dos Deputados CCTCI: Comissão de Ciência e Tecnologia, Comunicação e Informática

MODELAGEM E SIMULAÇÃO

Paralelismo a Nível de Instrução

1 Introdução. Componentes Usuários. Provedor de Serviços. Figura 1.1 Ambiente de oferecimento de serviços

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

Eventos independentes

Eng Civil Washington Peres Núñez Dr. em Engenharia Civil pela Universidade Federal do Rio Grande do Sul

Processos de Software

Cálculo da distância mínima a um. obstáculo para produção de eco

3 Gerenciamento de Projetos

Segurança e Saúde dos Trabalhadores

5 TENDÊNCIAS ATUAIS DE CONTRATAÇÃO E GERENCIMENTO DE OBRAS SUBTERRÂNEAS

Teste de Software: Um Breve Estudo do Importante Processo no Desenvolvimento de Softwares

A NECESSIDADE DE UMA NOVA VISÃO DO PROJETO NOS CURSOS DE ENGENHARIA CIVIL, FRENTE À NOVA REALIDADE DO SETOR EM BUSCA DA QUALIDADE

AMOSTRAGEM ESTATÍSTICA EM AUDITORIA PARTE ll

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

ALGORITMO PARA CÁLCULO DO VOLUME DE CARGA E POTÊNCIA DE ENERGIA ELÉTRICA Vanessa dos Anjos BORGES 1 Camila Pires Cremasco GABRIEL 2

Auditoria nos termos do Regulamento da Qualidade de Serviço Relatório resumo EDP Serviço Universal, S.A.

Relato de Caso: Formação de Monitores da Oficina Desafio

6.1 A Simulação Empresarial tem utilização em larga escala nos cursos de Administração, em seus diversos níveis de ensino no Brasil?

MELHORES PRÁTICAS DA OCDE

Infra-estrutura para inovação e desenvolvimento

3. Fase de Planejamento dos Ciclos de Construção do Software

Gerenciamento de Qualidade. Paulo C. Masiero Cap SMVL

Sistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery

REFERÊNCIA Transporte Rodoviário Agenda Setorial 2012 Acompanhamento/Monitoramento da política pública de transporte rodoviário

Resultados da Pesquisa Perfil dos Organismos Governamentais de Políticas para as Mulheres

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

5 Considerações finais

Normas Internacionais de Avaliação. Preço Custo e valor Mercado Abordagem de valores Abordagens de avaliação

Como vender a Gestão por Processos em sua organização?

TRANSIÇÃO DAS CERTIFICAÇÕES DOS SISTEMAS DE GESTÃO DA QUALIDADE E SISTEMAS DE GESTÃO AMBIENTAL, PARA AS VERSÕES 2015 DAS NORMAS.

2 Investimentos em Tecnologia da Informação

CAPÍTULO 25 COERÊNCIA REGULATÓRIA

NÚCLEO DE APOIO ESPECIALIZADO EM PROGRAMAÇÃO. Lucas Schwendler; Darlei Feix; Andreia Sias Rodrigues

Porque estudar Gestão de Projetos?

Transcrição:

Capítulo 1 Introdução O presente trabalho aborda aspectos de arquitetura relacionados à exploração de paralelismo no "hardware" desenvolvido para o Projeto Ômicron. Iniciado em 1989, sob a coordenação do Prof. Dr. Geraldo Lino de Campos, o Projeto Ômicron visa a projetar, detalhar e construir um Supercomputador junto ao Instituto de Física Teórica, da UNESP - Universidade Estadual Paulista. O superomputador resultante do Projeto Ômicron pretende, dentro de características próprias e inovadoras, tirar partido adequadamente dos diversos níveis de paralelismo possíveis dentro de uma arquitetura. Neste documento utilizam-se os termos "micro", "meso" e "macrogranularidade" para se denotar, respectivamente: microgranularidade - é o paralelelismo que pode ser explorado por múltiplas unidades funcionais dentro de um processador, operando sob um único fluxo de controle. mesogranularidade - é o paralelismo que provem do funcionamento simultaneo de diversas unidades funcionais. Fluxos de controle distintos operando sobre unidades funcionais altamente acopladas, eventualmente compartilhando os registradores; 1

1.1---- Considerações macrogranularidade - processadores distintos, operando em fluxos de controle também diversos. Tipicamente, nesse nível de paralelismo, apenas a memória central é o recurso compartilhável. Na presente tese, são examinados os motivantes de várias das decisões em termos de arquitetura que foram tomadas no decorrer do projeto e apresentadas as soluções propostas. sobre avaliação de desempenho É fundamental, para uma avaliação dos resultados que se podem esperar de um projeto em andamento, que se realizem simulações e estimativas de seu desempenho em situações de aplicação real. No decorrer deste documento serão feitas análises e comparações do desempenho esperado do processador em projeto, eventualmente comparando-o com de outras maquinas existentes. Estas estimativas de desempenho refletem a situação do projeto Ômicron em sua fase atual e, portanto, podem vir a sofrer variações até a maturação final deste projeto. Por outro lado, deve-se ter em mente as hipóteses assumidas e os limitantes das simulações efetuadas, de forma a encarar seus resulados com o devido enfoque e reserva. Em primeiro lugar, é muito difícil conseguir-se um "conjunto de teste" - um "benchmark" - que reflita extamente situações reais existentes em centros de computação voltados ao processamento numérico intenso; mesmo porque tais cenários não são algo claramente definível e podem variar de país a país, ou mesmo de instituição a instituição. Desta forma, o que se tem de melhor a fazer e valer-se de trabalhos prévios de laboratórios de pesquisa renomados e que tenham se dedicado exaustivamente a avaliar desempenho de supercomputadores para seu próprio uso. Será dada preferência, também, a testes que já tenham sido aplicados ao maior número possível de máquinas, de forma a se obter uma boa figura de comparação. 2

Um caso típico destas avaliações refere-se aos "Lawrence Livermore Kernels". Este laboratório (Lawrence Livermore, nos EUA), selecionou, experimentalmente, 24 núcleos típicos de programas diversos, com características distintas, mas que representavam grande parte do dispêndio de tempo de processador requerido pelos aplicativos daquela instituição. São, portanto, núcleos típicos, laços de programação onde, geralmente, uma aplicação científica aplica grande parcela do tempo de processador que venha a utilizar. Este tipo de "benchmark" é, sem dúvida, significativo e representativo, mas pode se desviar bastante do que será obtido na prática quando se tratar de verificar o desempenho em uma aplicação específica. Um segundo ponto a ser observado é que os "Lawrence Livermore Kernels" fornecerão desempenhos assintóticos, isto é, válidos para laços ("loops") muito grandes, já que não se considera o tempo envolvido em inicializações. Desta forma, nas comparações que envolvam o projeto Ômicron, foram utilizados laços de 461 elementos, que é o número de elementos testados, por exemplo, na máquina CRAY-XMP, que pode ser considerada um supercomputador típico. Deve ser feito aqui um comentário de importância quanto ao porque da validade do desempenho assintótico. Um processo é composto por trechos de código puramente serial, ou escalar, e trechos que podem ser executados em paralelo. Ao ser assumida a hipótese de que o desempenho será medido apenas na parte paralela do processo, desprezam-se os tempos referentes ao seu trecho escalar, que podem ser significativos no cômputo geral. A explicação para essa atitude, entretanto, é simples: com a disponibilidade de maior poder de processamento, o que ocorre, normalmente, é que sistemas antes utilizáveis para a resolução de problemas de uma dada dimensão, agora passam a ser aaplicados a problemas de dimensão cada vez maior. Isso é feito aumentando-se exatamente os trechos de código responsáveis pelo grosso do processamento numérico, que são os trechos de código paralelo. A parte escalar, que envolverá inicializações e preparativos para o processamento numérico em si, pouco ou nada se altera com o 3

aumento da dimensão do problema. Logo, o que realmente importa quando se tratar de avaliar-se desempenho de supercomputadores, é seu comportamento em regime executando os laços típicos de um programa numericamente intensivo. O ponto mais importante, entretanto, é a consideração sobre a validade das hipóteses adotadas para avaliação do desempenho. Serão consideradas duas hipóteses principais, sobre as quais repousam todas as futuras conclusões: O projeto Ômicrom produzirá uma máquina capaz de operar num ciclo de 10 ns; Existirá, à época da conclusão do projeto, um compilador suficientemente maduro e apto a realizar todas as otimizações razoáveis, da forma como a simulação o fez através de compilação mmanual. Estas duas condições são difíceis de satisfazer numa primeira versão. Assim, o próprio Cray XMP, paradigma dos testes, foi inicialmente concebido para um ciclo de 6 ns e, dadas as dificuldades emergentes, chegou a ser cogitado um ciclo tentativo de 14 ns. A primeira máquina foi liberada com um ciclo de relógio de 10 ns e, somente alguns anos mais tarde, foram produzidas máquinas com o valor originariamente pretendido - 8,5 ns. O aspecto da influência do "software" também aparece nitidamente quando é examinado o resultado de sucessivas aplicações de um "benchmark" (no caso, o Linpack 100 x 100 - um sistema de resolução de equações lineares), ao Cray-XMP/4 (com um processador) no decorrer de alguns anos. O exame dos resultados deste teste ao longo do tempo mostra que o desempenho varia de 39 a 82 MegaFlops, no período de 1988 a 1990 [Don88], [Don90]. Como se trata essencialmente do mesmo "hardware" e a máquina não sofreu nenhuma alteração arquitetônica no período, esta diferença explica-se, simplesmente, pelos constantes aperfeiçoamentos no compilador FOR- TRAN utilizado (CFT77 versão 1.2 em 1988, CF77 versão 3.0 em 1990), que passou 4

1.2---- O assim a tirar mais proveito das características do "hardware" existente, seja quanto ao processamento vetorial, seja quanto ao paralelismo. Assim, os níveis de desempenho apresentados são valores que devem ser considerados como valores-objetivo e que, provavelmente, não serão atingidos num primeiro protótipo, quer pela eventualidade de não se chegar, no "hardware", ao tempo de ciclo desejado, quer pela possibilidade de não se dispor, num primeiro momento, de todos os recursos necessários de compilação para que se gere automaticamente um programa-objeto suficientemente otimizado. É bastante realista esperar-se que um protótipo inicial atinja a metade do desempenho estimado, o que já corresponderá, como será visto mais adiante, a um resultado bastante satisfatórios, mesmo em termos internacionais. De qualquer forma, estas considerações não interferem diretamente com a comparação de alternativas, uma vez que são praticamente independentes da arquitetura adotada. É claro que uma arquitetura mais complexa tem maior probabilidade de não atingir o tempo de ciclo desejado, mas, no presente caso, a arquitetura final é bastante simples, de forma que este efeito só pode ser favorável. projeto Ômicron O projeto ômicron iniciou-se em maio de 1989 baseado em uma proposta de supercomputador que se apoiava, essencialmente numa arquitetura vetorial. Com o evoluir do projeto, por considerações que serão explicitadas adiante, foi adotada uma arquitetura básica diferente da inicial e introduzidas inovações visando a operação com um grau cada vez maior de paralelismo. 5

A partir de um estudo crítico das arquiteturas existentes, concluiu-se que a arquitetura vetorial, apesar do excelente desempenho que oferece nos casos em que se aplica, restringe-se apenas a um número relativamente reduzido de casos muito regulares, isto é, quando não há recorrências, comandos condicionais e situações assemelhadas. Dentre as alternativas examinadas, apenas a arquitetura com palavras de instrução muito grandes (VLIW - Very Long Instruction Word) apresentava potencialidade de uso, pela sua simplicidade e possibilidade de aproveitamento do microparalelismo na execução das instruções. A arquitetura policíclica é uma variante da arquitetura VLIW, caracterizada por um mecanismo de endereçamento que torna a execução eficiente de laços em programas, natural e automática. De certa forma, é uma arquitetura dual da vetorial. Enquanto esta carrega todos os elementos de dois vetores sobre os quais operará em registradores internos, realiza a operação em modo "linha de produção" e repete esta operação sobre todos os vetores utilizados em um laço, a arquitetura policíclica considera todos os vetores de um laço, e traz para registradores de acesso rápido um elemento de cada vetor, realizando em seqüência as operações contidas em um laço. Esta estratégia permite a execução em modo "linha de produção" de um número bem maior de laços, oferecendo um desempenho superior. Anteriormente, a arquitetura policíclica só havia sido usada com um número mínimo de unidades aritméticas, particularmente de ponto flutuante, de modo que não existiam estudos sobre a possibilidade de aproveitamento de um grau maior de paralelismo. Ocorre que existem hoje unidades aritméticas de ponto flutuante, com palavra de 64 bits e tecnologia ECL, integradas em um único componente ("chip"). Assim, procedeu-se a um estudo de variação de desempenho com um maior número dessas unidades aritméticas, já definida a arquitetura policíclica como sendo a mais adequada ao projeto Ômicron. 6

O resultado, coerente com outros estudos sobre paralelismo, é que existe uma evolução significativa no desempenho ao se passar de uma para duas unidades aritméticas, e pouca melhora para incrementos posteriores. Isto, associado às dificuldades de execução física de um processador com um número maior de unidades aritméticas devido ao número muito alto de portas necessárias no conjunto de registradores do processador, limita a dois o número de unidades aritméticas que convem utilizar diretamente. Consequentemente, o pico de desempenho que pode ser atingido em cada processador tembém fica definido. Investigou-se a seguir a possibilidade de dividir as unidades funcionais em "grupos", cada um com duas unidades aritméticas, um número adequado de unidades de acesso a memória e uma unidade de controle independente. O resultado foi excelente: não só tornou-se possível obter um desempenho significativamente maior, como observou-se, pela programação experimental, que há um relacionamento muito reduzido entre os grupos. Esta última característica permite que cada grupo tenha um conjunto de registradores próprio, com um número de portas reduzido, o que viabiliza a utilização de um número maior de grupos. Chegou-se a quatro grupos por processador como limite fisicamente factível e arquitetônicamente adequado para um desempenho final no nível dos melhores supercomputadores da época. Em paralelo com o estudo da arquitetura, o subsistema de memória foi simulado para um número bastante grande de alternativas, acompanhando a evolução do estudo de como particionar os diversos componentes do processador. Conclui-se, assim, que o projeto Ômicron apresentaria: Processador utilizando tecnologia ECL com ciclo de 10 ns; 7

Memória memória principal, executada com componentes MOS convencionais e banda passante compatível com as exigências do processador; Quatro grupos funcionais por processador, uma vez que a partir deste ponto o aumento de desempenho é bastante reduzido. Em particular, aumentando-se o número de grupos de quatro para oito não se nota aumento de desempenho que justifique essa expansão. No "benchmark" LLK ("Lawrence Livermore Kernels"), embora a diferença conseguida no desempenho máximo de pico seja de quase 100%, a média geométrica - que é considerada a medida central mais significativa - cresce apenas de 20%. O gráfico a seguir (figura 1.1), baseado em [Mah88], apresenta a evolução temporal dos valores típicos do desempenho dos melhores supercomputadores em cada época no "benchmark" LLK e, também, os valores esperados para o processador Ômicron, em seus parâmetros atuais de projeto. Considerando-se que a época prevista para o término do projeto Ômicron é 1992, pode-se concluir que o desempenho estará na mesma classe dos supercomputadores da época, mesmo aventando-se a possibilidade que valores esperados não sejam imediatamente atingidos. Uma vez definidas as características de um processador individual, passou-se a estudar como um grande número desses processadores poderia ser interligado, formando sistemas maiores. A conexão de múltiplos processadores com visão comum a uma memória central única é um caso de paralelismo macrogranular. Deste modo, o sistema assim formado apresentará os tres níveis de paralelismo visados. Esta tese procurará responder a duas questões fundamentais, interrelacionadas, e referentes ao paralelismo macrogranular: 8

1.3---- Organização Quais as características que o processador de um supercomputador deve oferecer para permitir sua interligação em grande número? Qual é a forma de interligação de um grande número de processadores, dada a arquitetura básica já estabelecida para o supercomputador? da Tese Esta tese está organizada em 6 capítulos e um anexo. O capítulo 2 descreve a arquitetura básica do processador, onde já estão incluídos, por uma questão de coerência, os principais recursos arquitetônicos que serão utilizados para sua interligação. O capítulo 3 estuda as principais técnicas de exploração de mesogranularidade no processador, sob os aspectos de "hardware", interligação entre grupos e implantação do paralelismo. O capítulo 4 descreve em detalhe a solução adotada para o paralelismo macrogranular, introduzindo contribuições originais, já que os estudos pré-existentes referem-se essencialmente à interligação de microcomputadores onde problemas de dimensão física e tempo de propagação de sinais são irrelevantes. O capítulo 5 analise aspectos de "software" referntes à geração de código para as unidades aritméticas e para os grupos funcionais. O capítulo 6 apresenta as conclusões a que chegou no presente trabalho e pontos a serem abordados em trabalhos futuros. O anexo 1 contem simulações efetuadas, incluindo a geração manual de código para avaliação das diversas hipóteses arquitetônicas aventadas. São 9

Desempenho em MFlops Ordem das marcas: Desempenho máximo Média aritmética 1000 Média geométrica Média harmônica Desempenho mínimo 100 10 1 0.1 1961 1969 1977 1985 1993 IBM 7090 CDC 7600 CRAY-1 CRAY XMP-4 ÔMICRON Figura 1.1 Evolução do desempenho de supercomputadores também apresentados resultados de comparação dos "benchmarks" simulados com os disponíveis na literatura. 10