Técnicas de processamento paralelo

Slides:



Advertisements
Apresentações semelhantes
PROJETO DE PESQUISA Alexandre Godoy Dotta
Advertisements

Introdução a Algoritmos
Introdução aos Sistemas Distribuídos
Barramentos Introdução.
UML Visões – Parte 2.
Prototipação de Software
Redes Neurais Artificiais
Padrão MPI – Message Passing Interface
Sistemas Operacionais
SISTEMAS DISTRIBUÍDOS
Sistema Web para Departamentos
SSC SISTEMAS OPERACIONAIS I Aula 1 – Apresentação da disciplina
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
Rganização de Computadores Multiprocessadores Capítulo 9 – Patterson & Hennessy Organização de Computadores Multiprocessadores Capítulo 9 – Patterson &
Sistemas Operacionais de Rede
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Threads.
Sistemas Operacionais I
Sistema Cliente-servidor ou Sistema Client-server
Introdução ao Processamento de Dados
Rodrigo de Souza Couto Redes de Computadores II
Bolsista: João Teixeira de Carvalho Neto.
Algoritmos paralelos eficientes para alguns problemas de processamento de Cadeia de Caracteres Alunos: Diego Alencar dos Santos Melo Felipe Formagini Brant.
Linguagem de Programação IV
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tópicos em redes e sistemas distribuídos
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Carlos Oberdan Rolim Ciência da Computação
Engenharia de Software
Cluster Beowulf.
MapReduce Conceitos e Aplicações
Arquitetura do Software
SISTEMAS OPERACIONAIS
Análise e Projeto de Sistemas de Informação 2o. Semestre de 2014
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 26 (1) Troca de Mensagens Troca de Mensagens Tópicos: Características de Mensagens Implementação.
BD Distribuído Conceitos Iniciais.
Universidade de Mogi das Cruzes Tec
Augusto Martins e José Luís Zem Universidade Metodista de Piracicaba - UNIMEP Curso de Bacharelado em Sistemas de Informação Utilização de Cluster de Computadores.
Introdução à Engenharia de Software
Paradigmas de Linguagens de Programação Aula 2
Experimentação Algorítmica
Ética Social na Implementação dos Sistemas de Informação e Gestão
PROGRAMAÇÃO DISTRIBUÍDA Aula 01 Prof. Henrique Mongelli
Programação de Sistemas Distribuídos e Concorrentes
Processos.
Sistemas Operacionais
Sistemas Distribuídos
Sistemas Operacionais
Engenharia de Software
MPI - Message Passing Interface Mestrado em Matemática Computacional 2003.
MO801: Tópicos em Arquitetura e Hardware 1 Tópicos em System-Level Design Tecnologia de Projeto Sandro Rigo
Métodos de Computação Paralela em Álgebra Linear
Integração de Ferramentas CASE
Infra-Estrutura de Software
Processo e Qualidade.
Análise e Projeto de Sistemas
Estrutura de Interconexão
Engenharia de Software
Ensino – Pesquisa – Extensão
Arquitetura de computadores
Sistemas Distribuídos Nadilma Nunes Aula Inicial – Apresentação da disciplina.
Jorge Zavaleta PVM vs MPI. Introdução Objetivos do MPI Implementações e definições processos dinâmicos Contextos Operações não bloqueantes Portabilidade,heterogeneidade.
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Paradigmas de Processamento Paralelo na Resolução do Fractal de Mandelbrot Bruno Pereira dos Santos Dany Sanchez Dominguez Universidade Estadual de Santa.
Aula: Arquiteturas de redes: modelo de referência OSI 04/12/2010.
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Projeto do CBPF Grid SSOLAR Bruno Lima Felipe da Matta Roberto Kishi Thagor Baiocco Tiago Olimpio
Bruna Cavallero Martins Universidade Católica de Pelotas.
Matheus Stigger Sistemas operacionais em carros. Eletrônica Embarcada A eletrônica embarcada consiste da eletrônica desenvolvida para uma aplicação móvel.
Transcrição da apresentação:

Técnicas de processamento paralelo Autor: Tyago de Medeiros Silva – tyago@natalnet.br Orientador: Umberto Souza da Costa – umberto@dimap.ufrn.br CCET – DIMAp Introdução Desde que os computadores seriais foram inventados sua capacidade de processamento tem aumentado continuamente com o objetivo de atender à crescente demanda computacional. Contudo, observando-se as tendências atuais, conclui-se que o desempenho dos computadores seriais já está alcançando um nível de saturação devido às limitações físicas que impedem o aumento do desempenho pela melhoria de hardware. É nesse contexto que surge a técnica de processamento paralelo e distribuído como um método para solucionar os problemas mais rapidamente, dividindo uma tarefa grande entre diversos processadores que cooperam entre si. Um algoritmo seqüencial consiste de uma seqüência de passos a ser seguida para se solucionar um problema em um computador serial. Um algoritmo paralelo também, porém usando diversos processadores. A diferença entre o desenvolvimento de um algoritmo paralelo para um seqüencial é que na construção do paralelo temos diversos outros fatores que devem ser levados em conta. Temos, principalmente, o fator concorrência que torna necessário especificar as diversas tarefas que podem ser executadas ao mesmo tempo [1]. Outro aspecto que o programador deve conhecer para que possa escrever programas paralelos rápidos e aptos para executar em diversos processadores é o funcionamento do hardware. Devido a estes fatores adicionais, escrever um algoritmo paralelo é, normalmente, mais difícil que escrever um algoritmo seqüencial. Contudo, os benefícios de desempenho são normalmente compensadores. Resultados Com o estudo das abordagens e técnicas de processamento paralelo e distribuído, obtivemos um importante aprendizado teórico relativo ao foco da pesquisa. O estudo de metodologias e ambientes de paralelização, buscando identificar a forma de paralelização mais viável e adequada ao projeto em questão, resultou na decisão por manter-se o foco no método de passagem de mensagens utilizando MPI. A participação no grupo de trabalho da plataforma STORM culminou na idealização e atual implementação de uma biblioteca MPI. A implementação consiste, atualmente, de uma camada de abstração consistindo das funções básicas do MPI, as quais são responsáveis por inicialização e finalização das tarefas, atribuição de identificadores e envio e recebimento de mensagens. Os experimentos apontaram pontos passíveis de melhoria, indicando aperfeiçoamentos necessários e os próximos passos do desenvolvimento da biblioteca de paralelização. Objetivos Esta pesquisa é direcionada à criação de uma biblioteca de paralelização baseada no padrão MPI para uma plataforma multiprocessada de sistemas embarcados. Especificamente, o objetivo é a criação de uma biblioteca de paralelização baseada em MPI para a STORM, uma plataforma composta por processadores, cache, memória e diretório interligados por redes de interconexão e embarcados em um único chip. O projeto de concepção e implementação de uma biblioteca MPI para a STORM além de favorecer um firme aprendizado das técnicas de paralelização, permite o desenvolvimento de aplicações paralelas a ser embarcadas em hardware, podendo ser útil a muitas aplicações. A área de computação de alto desempenho é um importante campo de pesquisa da Ciência da Computação e é do interesse do Departamento de Informática e Matemática Aplicada (DIMAp) da UFRN formar pessoal e fortalecer seu grupo de pesquisadores envolvidos com processamento paralelo, nosso segundo objetivo. Conclusões Os experimentos foram bem-sucedidos e indicaram melhorias na programabilidade e padronização de aplicações paralelas sobre a STORM. Os experimentos serviram, também, para apontar os aperfeiçoamentos necessários e os próximos passos de desenvolvimento, como a necessidade de módulos auxiliares que forneçam as funcionalidades de um sistema operacional, ausente na STORM, em conjunto com o acréscimo de novas funções à biblioteca, já que apenas as funções básicas de comunicação foram desenvolvidas. Os conhecimentos sobre paralelização e arquitetura de computadores abrem espaço para pesquisas sobre sistemas paralelos embarcados. O projeto de concepção e implementação de uma biblioteca MPI para a STORM permite o desenvolvimento de aplicações que poderão ser embarcadas em hardware, podendo ser útil a muitas outras aplicações. Metodologia A pesquisa iniciou-se pelo estudo de abordagens e técnicas de processamento paralelo e distribuído. Em seguida, escolheu-se a STORM como estudo de caso e o projeto passou a explorar a criação de uma biblioteca MPI para a plataforma. A necessidade de desenvolvimento de uma biblioteca de paralelização justificou-se pela baixa compatibilidade entre as aplicações desenvolvidas para a STORM e outras arquiteturas. A adoção de um padrão bem estabelecido dá maior programabilidade e portabilidade aos programas desenvolvidos. O estudo inicial deu-se por meio da leitura da dissertação de mestrado que apresenta a STORM e de monografias de graduação de alunos que a aperfeiçoaram. O embasamento foi reforçado por discussões sobre o projeto com parte do pessoal envolvido. A pesquisa concentrou-se na definição de requisitos de software de paralelização e na investigação de um modelo de paralelização adequado à STORM. Uma grande restrição ao desenvolvimento da biblioteca de paralelização na plataforma é a inexistência de um sistema operacional e, conseqüentemente, de facilidades como a gerência de memória e de processos. Funções de inicialização, envio e recebimento de mensagens bloqueantes, consulta de identificadores e finalização foram desenvolvidas e integradas à STORM. Programas paralelos foram, então, implementados e executados sobre a STORM utilizando a biblioteca de comunicação desenvolvida. Bibliografia [1] GRAMA, Ananth, GUPTA, Anshul, KARYPIS, George, KUMAR, Vipin. Introduction to Parallel Computing: Addison Wesley, Ed. 2, 2003. [2] Message Passing Interface Forum. The Message-Passing Interface (MPI) Standard. MCS Division at Argonne National Laboratory. Disponível em http://www-unix.mcs.anl.gov/mpi/. [3] REGO, Rodrigo Soares de Lima Sá. Projeto e Implementação de uma Plataforma MP-SoC usando SystemC. Dissertação de Mestrado, UFRN, 2006. [4] OLIVEIRA, Bruno Cruz de. Manutenção da consistência de dados em uma plataforma MP-SoC baseada em NoC: Projeto do Diretório. Monografia de Graduação, UFRN, 2006. [5] SILVA, Gustavo Girão Barreto da . Manutenção da consistência de dados em uma plataforma MP-SoC baseada em NoC: Projeto da Cache. Monografia de Graduação, UFRN, 2006. APOIO: UFRN, PROPESQ e CNPq