Juliano Benvenuto Piovezan. Desenvolvimento de uma Linguagem para Ensino de Programação Paralela
|
|
- Victoria Aranha Salazar
- 5 Há anos
- Visualizações:
Transcrição
1 Juliano Benvenuto Piovezan Desenvolvimento de uma Linguagem para Ensino de Programação Paralela Florianópolis 2008
2 Juliano Benvenuto Piovezan Desenvolvimento de uma Linguagem para Ensino de Programação Paralela Trabalho de Conclusão de Curso apresentado como requisito parcial para obtenção do grau de bacharel em Ciências da Computação. Orientador: José Mazzuco Júnior Co-orientador: Ricardo Azambuja Silveira Florianópolis 2008
3 Sumário 1 Introdução p Apresentação p Objetivos p Objetivo Geral p Objetivos Específicos p. 5 2 Metodologia p Sumário Provisório p Introdução p Programação Concorrente p Descrição da Linguagem p Máquina Alvo p Construção do Compilador p Conclusão p Anexos p Identificação das Fontes p. 7 3 Cronograma p Análise Léxica e Sintática p Análise Semântica p Gerador de Código p Testes p. 10
4 3.5 Redação do Texto Científico p Conclusão p. 11 Referências Bibliográficas p. 12
5 4 1 Introdução 1.1 Apresentação No segundo trimestre de 2005 apareciam no mercado de desktops os primeiros processadores com múltiplos núcleos 1. Mais precisamente, o primeiro processador a aparecer no mercado para computadores pessoais com tal característica fora o Pentium D, fabricado pela Intel Corporation. Seguindo a tendência, a AMD (Advanced Micro Devices) lançaria, pouco tempo depois, sua versão com dois núcleos para o Athlon 64, o Athlon 64 X2. Desde então, novas tecnologias vêm sendo desenvolvidos, como a microarquitetura Intel Core, que apresentou avanços significativos, principalmente quanto ao número de núcleos e um melhor gerenciamento dos recursos, como a divisão da memória cache entre os núcleos. Com a expectativa da produção de chips com a tecnologia de 32 nm, podendo-se chegar a 22 nm até 2011, espera-se que o número de núcleos nos processadores cresça exponencialmente durante os próximos anos. De acordo com estudos do Forrester Research, espera-se processadores com 64 núcleos para servidores até 2009, e para computadores pessoais até 2012 [1]. A tecnologia com múltiplos núcleos surgiu como solução para o problema do aquecimento excessivo, enfrentado em decorrência da tentativa do aumento da freqüência. Estudos demonstraram que a freqüência máxima segura, para os processadores produzidos com a tecnologia de 65 nm, era de 4 Ghz, a qual fora alcançada na metade da década atual. Iniciava, então, uma nova corrida entre as fabricantes, não mais pelo aumento da freqüência, mas sim por uma solução para tal problema. O ponto chave da fabricação de processadores com múltiplos núcleos está na paralelização de processos, ou seja, execução de várias tarefas no mesmo instante de tempo. Nos processadores com único núcleo, a paralelização é feita atráves de software, pelo Sistema Operacional, através de algoritmos de escalonamento. Enquanto que, para os processadores de múltiplos núcleos, a paralelização é definida a nível de hardware, permitindo uma diminuição na freqüência sem perda de eficiência. 1 multi-core
6 5 Embora o mercado dos processadores com múltiplos núcleos tenha se firmado, um sério problema assola a indústria: a baixa taxa de utilização dos núcleos. Uma das causas para este fenômeno está no fato de que muitos programadores não conhecem os princípios básicos de programação paralela, continuando a produzir os programas de forma seqüêncial, sem fazer uso dos benefícios do paralelismo. Com isso, grandes empresas, como Intel e Microsoft, têm investido massissamente para capacitação de pessoas e também na criação de linguagens de programação que se adequem ao mundo paralelo. Em meados deste ano, as duas gigantes doaram, conjuntamente, 20 milhões de dólares, a serem divididos pela Universidade da Califórnia e pela Universidade de Illinois em pesquisas, como a criação de linguagens de programação que auxiliem a programação paralela [2]. A mesma Intel desenvolveu uma biblioteca denominada Threading Building Blocks (TBB), a qual visa isolar o programador de certos problemas que envolvem a programação paralela, como as incompatibilidades entre Sistemas Operacionais. Verifica-se, então, que a programação paralela possuirá um importante papel no desenvolvimento de sistemas computadorizados. Baseado nisso, esse trabalho terá como foco o desenvolvimento de uma linguagem a ser utilizado no ensino de conceitos básicos da programação concorrente. Servirá como base um trabalho já realizado por Alan Burns e Geoff Davies, que desenvolveram a linguagem conhecida como Pascal-FC, um subconjunto da conhecida linguagem Pascal, com adição de estruturas de sincronismo, como semáforos, monitores e variáveis de condição 2 [3]. 1.2 Objetivos Objetivo Geral Este trabalho tem como objetivo o desenvolvimento de uma linguagem que permita o ensino de programação paralela Objetivos Específicos Criação de linguagem que permita a criação de execução concorrente; Inlcuir de estruturas de sincronização; Definir uma sintaxe simples, como as utilizadas por linguagens de script, exemplo Ruby; Tornar a linguagem multi plataforma. 2 condition variable
7 6 2 Metodologia 2.1 Sumário Provisório Pretende-se, no trabalho, dar uma visão geral sobre os benefícios da programação paralela, bem como os desafios a serem enfrentados, como sincronização de threads, condições de corrida, entre outros. Além de uma especificação formal das principais características da linguagem, uma visão geral sobre a Máquina Virtual JAVA, a qual será utilizada como máquina alvo para a linguagem. As próximas subseções demonstram a estruturação provisória do sumário Introdução Uma breve introdução sobre o assunto de programação concorrente, além de informações sobre o contexto no mercado atual. Como seções, serão apresentados os objetivos específicos e o objetivo geral Programação Concorrente Neste capítulo serão apresentados benefícios e dificuldades encontradas na utilização de paralelismo. Será discutido em profundidade o problema de condição de corrida, bem como as melhores soluções para tal. Além disso, problemas com deadlock será outro assunto abordado neste capítulo Descrição da Linguagem Toda a estrutura básica da linguagem será especificada neste capítulo. Incluindo declaração de variáveis, tipos básicos presentes e estruturas de controle. Será definido também o conceito de processo na linguagem, a ativação concorrente dos mesmos, entre outras especificações.
8 Máquina Alvo Neste capítulo será apresentado detalhes com relação à máquina virtual, para a qual o compilador irá gerar código. Será dada uma visão geral, como a estrutura básica da máquina, seu conjunto de instruções, além de outros detalhes Construção do Compilador A construção do compilador será detalhada nesta parte do trabalho. Aspectos como ferramentas utilizadas, tipo do analisador sintático utilizado, detalhes da implementação, entre outros Conclusão Neste capítulo serão apresentadas as conclusões referentes ao trabalho, bem como trabalhos futuros que poderão ser realizados com base neste trabalho Anexos Nos anexos será apresentado a especificação formal da linguagem, além de outros assuntos pertinentes. 2.2 Identificação das Fontes Após pesquisas com relação à bibliografia clássica nos assuntos relacionados a linguagens de programação, construção de compiladores e programação paralela, chegou-se a seguinte lista de referências: 1. HOARE, C. A. R. Monitors: An operating system structuring concept. Advanced Research Projects Agency, FINKEL, R. A. Advanced Programming Language Design. [S.l.]: Addison-Wesley, HOPCROFT, J. E.; MOTWANI, R.; ULLMAN, J. D. Introduction to Automata Theory, Language, and Computation. 2nd edition. ed. [S.l.]: Addison Wesley, 2001.
9 8 4. AHO, A. V.; SETHI, R.; ULLMAN, J. D. Compilers: Principles, Techniques and Tools. [S.l.]: Addison-Wesley Publishing, TURBAK, F.; GIFFORD, D. Design Concepts in Programming Languages. [S.l.]: The MIT Press, FRIEDMAN, D. P.; WAND, M. Essentials of Programming Languages. 3rd. ed. [S.l.]: The Mit Press, HOARE, C. A. R. Hints on programming language design. Advanced Research Projects Agency, LINDHOLM, T.; YELLIN, F. The Java Virtual Machine Specification. [S.l.]: Sun Microsystems, Inc., TANENBAUM, A. S. Modern Operating Systems. 2nd edition. ed. [S.l.]: Person Education Inc., PETERSON, J.; SILBERSCHATZ, A. Operating Systems Concepts. 7th edition. ed. [S.l.]: John Wiley & Sons, Inc., DAVIES, G. Pascal-FC Language Reference Manual. 5th. ed. [S.l.], FLANAGAN, D.; MATSUMOTO, Y. The Ruby Programming Language. [S.l.]: O Reilly, 2008.
10 9 3 Cronograma A tabela 4.1 apresenta o cronograma que deverá ser seguido durante do desenvolvimento do projeto. Os meses especificados se referem ao no de Cronograma Jan. Fev. Marc. Abr. Maio Jun. Jul. Ag. Set. Out. Nov. Implementação X Analisador Léxico Implementação X Analisador Sintático Implementação Analisador Semântico X X X Implementação X X X X X do Gerador de Código Testes X X X X X X X X X X Redação do X X X X X Texto Técnico Apresentação X Tabela 3.1: Cronograma 3.1 Análise Léxica e Sintática Uma vez que a implementação dos analisadores léxico e sintático é feita de forma automatizada, a implementação dos mesmos não tomará muito tempo. Com o tempo restante, tais analisadores passarão por uma bateria de testes, que será explicado mais adiante.
11 Análise Semântica A análise semântica é conhecida por ser a etapa mais complicada no projeto de compiladores. Com isso, deverá despender um maior tempo em sua implementação. Com isso estima-se uma duração de 3 meses para seu término. 3.3 Gerador de Código Estima-se que a geração de código ocupe 5 meses do tempo, considerando a possibilidade de ocorrência de problemas durante sua implementação. 3.4 Testes Seguindo o proposto pela programação extrema 1, especificamente no desenvolvimento orientado a testes - TDD, testes serão realizados durante todo o projeto. Segundo [4], TDD é uma técnica de projeto que garante que todo o código fonte foi completamente testado de forma unitária. Por conseqüência, a ocorrência de problemas diminui consideravelmente, e caso venha a ocorrer, novos testes devem ser definidos para cobrir o problema. 3.5 Redação do Texto Científico Espera-se produzir parte do texto científico no início do projeto, continuando após o início da implementação do gerador de código e finalizando o mesmo no último mês antes da apresentação. Uma vez que o tempo gasto na implementação dos analisadores léxico e sintático será mínimo, o primeiro mês proporcionará um tempo suficiente para redação de boa parte do texto. 1 XP - extreaming Programming
12 11 4 Conclusão Este trabalho teve como objetivo prover uma introdução ao trabalho a ser produzido como conclusão de curso. Fora apresentado o contexto atual e futuro em relação ao projeto, bem como seus objetivos gerais e específicos. As principais fontes de informação foram definidas, além de um sumário provisório. Por fim, fora apresentado o cronograma a ser seguido.
13 12 Referências Bibliográficas [1] STATEN, J.; RYMER, J. R. The multicore programming era is here. Forrester Research, [2] SERVICE, I. N. Microsoft e Intel investem US$ 20 milhões em computação paralela. Disponível em: < [3] DAVIES, G. Pascal-FC Language Reference Manual. 5th. ed. [S.l.], [4] AMBLER, S. Agile Database Techniques: Effective Strategies for the Agile Software Developer. [S.l.]: Wiley, 2003.
INE5317 Linguagens Formais e Compiladores. Ricardo Azambuja Silveira INE-CTC-UFSC URL:
INE5317 Linguagens Formais e Compiladores Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira Plano de Ensino OBJETIVO GERAL: Estudar a teoria das linguagens
Leia maisLinguagens e Compiladores
Linguagens e Compiladores Aula 1: a) Critérios b) Noções de Compiladores e Interpretadores c) Usos da tecnologia de compilação d) Compiladores, filtros e pré-processadores e) Estruturação lógica de compiladores
Leia maisProgramação de Sistemas (Sistemas de Programação) Semana 10, Aula 17
PCS3616 Programação de Sistemas (Sistemas de Programação) Semana 10, Aula 17 Linguagens e Compiladores Programação em linguagem de alto nível Escola Politécnica da Universidade de São Paulo Roteiro 1.
Leia maisCOMPILADORES PROGRAMA E BIBLIOGRAFIA
COMPILADORES PROGRAMA E BIBLIOGRAFIA Mariza A. S. Bigonha e Roberto S. Bigonha UFMG 27 de maio de 2008 Todos os direitos reservados Proibida cópia sem autorização dos autores OBJETIVOS DO CURSO Ensinar
Leia maisConcurso público de provas e títulos para professor adjunto
Concurso público de provas e títulos para professor adjunto Número de vagas: 03 Área: Ciência da Computação Matéria Específica: Ciência da Computação Informações complementares: Critérios de seleção de
Leia maisApresentação. !! Familiarização com os métodos de construção de compiladores de linguagens e com as técnicas de compilação mais habituais.
Apresentação Universidade dos Açores Departamento de Matemática www.uac.pt/~hguerra/!! Aquisição de conceitos sobre a definição de linguagens de programação.!! Familiarização com os métodos de construção
Leia maisDESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES
DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES João Ricardo Kohler Abramoski (PAIC/FUNDAÇÃO ARAUCÁRIA), Sandra Mara Guse Scós Venske (Orientadora), e-mail: ssvenske@unicentro.br
Leia maisSistemas Distribuídos
Sistemas Distribuídos Thaís Vasconcelos Batista UFRN DIMAp http://www.dimap.ufrn.br/~thais thais@ufrnet.br Programa do Curso INTRODUÇÃO Conceitos Básicos Sistemas em Rede X Sistemas Distribuídos Necessidade
Leia maisUNIVERSIDADE FEDERAL DO RIO DE JANEIRO IM DCC CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I 2010/2 PROGRAMA DA DISCIPLINA
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO IM DCC CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I 2010/2 Código: MAB366 Créditos: 04 Carga Horária: 60 horas Professor: Antonio Carlos Gay Thomé thome@nce.ufrj.br
Leia maisINE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA Identificação: Disciplina: INE5645 - Programação Paralela e Distribuída Carga horária: 72 horas-aula Teóricas: 36 Práticas: 36 Período: 2º semestre de 2014 (em
Leia maisFicha da Unidade Curricular
Ficha da Unidade Curricular Curso: Engenharia Informática Ano Lectivo: 2008/09 Unidade Curr.: Processamento de Linguagens Ano Curricular: 3º Créditos: 6 Responsável: Maria João Varanda Regime: Anual X
Leia maisArquitetura de Computadores
Arquitetura de Computadores Prof. Eduardo Simões de Albuquerque Instituto de Informática UFG 1o. Semestre / 2006 Adaptado do material do prof. Fábio Moreira Costa Programa e Introdução Assunto do curso
Leia maisCurso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg.
Sistemas Operacionais Professor Cláudio Geyer Instituto de - Sistemas Operacionais II (C. Geyer) Sincronização 1 Sistemas Operacionais Professor Cláudio Geyer Instituto de - Pg. 1 1 Tópicos ensinados no
Leia maisLinguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP
Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP Ementa Gramáticas. Linguagens Regulares, Livres-de-Contexto e Sensíveis-ao- Contexto. Tipos de Reconhecedores. Operações
Leia maisImplementação da Especificação de Tempo Real Java para o EPOS
UNIVERSIDADE FEDERAL DE SANTA CATARINA Curso de Ciências da Computação Implementação da Especificação de Tempo Real Java para o EPOS ANDERSON LUIS ZAPELLO Florianópolis, julho de 2005 ANDERSON LUIS ZAPELLO
Leia maisArquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização
Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 1 Introdução Arquitetura e Organização 1. Arquitetura
Leia maisTeoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015. (a) Descreva o programa da MT usando um pseudocódigo.
Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015 DECOM ICEB - UFOP Nome legível: Matrícula: As questões podem devem ser respondidas na própria prova, a caneta ou a lápis.
Leia maisUniversidade Federal do RGS Instituto de Informática Departamento de Informática Aplicada
Universidade Federal do RGS Instituto de Informática Departamento de Informática Aplicada Disciplina: INF01151 - Sistemas Operacionais II N Turma: A, 2 Sem/2008 Prof. Cláudio Geyer CURSOS : Ciência da
Leia maisTeoria da Computação (BBC244)
Teoria da Computação (BBC244) Professor: Anderson Almeida Ferreira anderson.ferreira@gmail.com http://www.decom.ufop.br/anderson Sala COM 10 DECOM-UFOP Ementa Gramáticas. Linguagens. Operações com Linguagens.
Leia maisLinguagens Formais e Autômatos. Tiago Alves de Oliveira
Linguagens Formais e Autômatos Tiago Alves de Oliveira Ementa Linguagens Regulares; Máquinas de Turing; O Problema da Parada da Máquina de Turing; Autômatos Finitos; Linguagens Livres de Contexto; Autômatos
Leia maisProjeto de Compiladores
Projeto de Compiladores FIR Faculdade Integrada do Recife João Ferreira 12 e 13 de fevereiro de 2007 Questionário 1. Em quais linguagens de programação você já programou? 2. O que você sabe sobre compiladores?
Leia maisProgramação Concorrente
INE 5410 Programação Concorrente Professor: Lau Cheuk Lung (turma A) INE UFSC lau.lung@inf.ufsc.br Conteúdo Programático 1. 2. Programação Concorrente 3. Sincronização 1. Condição de corrida, região critica
Leia maisSSC0640 Sistemas Operacionais I
SSC0640 Sistemas Operacionais I 1ª Aula Apresentação da disciplina Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Objetivos do curso Introduzir o estudante nos conceitos e princípios básicos dos sistemas
Leia maisUniversidade Federal do ABC Rua Santa Adélia, Bairro Bangu - Santo André - SP - Brasil CEP Telefone/Fax:
Universidade Federal do ABC Rua Santa Adélia, 166 - Bairro Bangu - Santo André - SP - Brasil CEP 09.210-170 - Telefone/Fax: +55 11 4996-3166 1. CÓDIGO E NOME DA DISCIPLINA MC3201 - COMPILADORES 2. DISCIPLINA
Leia maisPARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO - PLP
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO - PLP Professor: Rômulo César romulodandrade@gmail.com romulo.andrade@upe.br www.romulocesar.com.br Professor NOME: RÔMULO CÉSAR DIAS DE ANDRADE Mini CV: Doutorando
Leia maisSistemas Operativos I
Apresentação da Cadeira Maria João Viamonte / Luis Lino Ferreira Fevereiro de 2006 Docentes Teóricas Luis Lino Ferreira llf@dei.isep.ipp.pt Gab. 11 (G312E) Maria João Viamonte Email: viamonte@dei.isep.ipp.pt
Leia maisUM ESTUDO COMPARATIVO DE DESEMPENHO UTILIZANDO PROGRAMAÇÃO SEQUENCIAL VS PARALELA APLICADO EM ALGORITMOS GENÉTICOS 1
UM ESTUDO COMPARATIVO DE DESEMPENHO UTILIZANDO PROGRAMAÇÃO SEQUENCIAL VS PARALELA APLICADO EM ALGORITMOS GENÉTICOS 1 Eldair F. Dornelles 2, Henrique A. Richter 3, Miquéias F. M. Trennepohl 4, Taís T. Siqueira
Leia maisComputadores e Programação (DCC/UFRJ)
Computadores e Programação (DCC/UFRJ) Aula 3: 1 2 3 Abstrações do Sistema Operacional Memória virtual Abstração que dá a cada processo a ilusão de que ele possui uso exclusivo da memória principal Todo
Leia maisFerramentas para Programação em Processadores Multi-Core
Ferramentas para Programação em Processadores Multi- Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Introdução Programação multithread Ferramentas de programação Prática
Leia maisUNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular COMPILADORES Ano Lectivo 2017/2018
Programa da Unidade Curricular COMPILADORES Ano Lectivo 2017/2018 1. Unidade Orgânica Ciências da Economia e da Empresa (1º Ciclo) 2. Curso Engenharia Informática 3. Ciclo de Estudos 1º 4. Unidade Curricular
Leia maisDISCIPLINA: ELE213 Programação de Sistemas de Tempo Real. Créditos: 4. Caráter: Eletiva. Professor Regente: Prof. Walter Fetter Lages
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL ESCOLA DE ENGENHARIA DEPARTAMENTO DE ENGENHARIA ELÉTRICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA PLANO DE ENSINO PERÍODO LETIVO 201/1 DISCIPLINA: ELE213
Leia maisParadigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina)
Paradigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina) George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Informações Básicas Professor George Darmiton da Cunha Cavalcanti Monitores
Leia maisParalelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core
RSS-Verão-01/08 p.1/36 Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7 Escola de Verão 2008 Arquiteturas Multi-Core Renato S. Silva LNCC - MCT Janeiro de 2008 RSS-Verão-01/08 p.2/36 Objetivo:
Leia maisWhat is? Eduardo Viola Nicola Disciplina de IPPD
What is? Eduardo Viola Nicola evnicola@inf.ufpel.edu.br Disciplina de IPPD Sumário 1)Introdução 2)Princípio Geral de Funcionamento 3)Exemplos de Aplicações 4)Modelo de Programação 5)Linguagens Suportadas
Leia maisParadigmas de Computação
UCE- Computação Paralela e Distribuída Paradigmas de Computação João Luís Ferreira Sobral www.di.uminho.pt/~jls jls@... http://alba.di.uminho.pt/... 1 Paradigmas de Computação paralela Resultados da Aprendizagem
Leia maisPró-Reitoria Acadêmica Diretoria Acadêmica Assessoria Pedagógica da Diretoria Acadêmica
FACULDADE: CENTRO UNIVERSITÁRIO DE BRASÍLIA UniCEUB CURSO: CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: CONSTRUÇÃO DE COMPILADORES CARGA HORÁRIA: 75 H. A. ANO/SEMESTRE: 2016/02 PROFESSOR: EDUARDO FERREIRA DOS SANTOS
Leia maisSistemas Distribuídos e Paralelos
Sistemas Distribuídos e Paralelos Aula #6: Programação paralela em sistemas de memória compartilhada. ISUTIC - 2016 Eng. Alexander Rodríguez Bonet Aula de hoje Regiões paralelas. Cláusulas de âmbito. Partilha
Leia maisAluno de Pós-Graduação em Engenharia de Software para Dispositivos Móveis pela UNINTER
COMPARAÇÃO DE DESEMPENHO NA PROGRAMAÇÃO PARALELA HÍBRIDA (MPI + OPENMP) NA BUSCA DE TEXTO EM ARQUIVOS 1 COMPARISON OF PERFORMANCE IN HYBRID PARALLEL PROGRAMMING (MPI + OPENMP) IN SEARCH OF TEXT IN FILES
Leia maisHardware. Organização Funcional de um. Computador. Arquitetura de Multiprocessadores. UCP Unidade Central de Processamento AMD. Sistema Central CPU
Hardware UCP Unidade Central de Processamento AMD Disciplina: Organização e Arquitetura de Computadores Prof. Luiz Antonio do Nascimento Faculdade Nossa Cidade Organização Funcional de um Computador Unidade
Leia maisAULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação PROGRAMAÇÃO PARALELA
Leia maisSO: SISTEMAS OPERACIONAIS Curso: Sistemas de Informação
SO: SISTEMAS OPERACIONAIS Curso: Sistemas de Informação - Definições - Ementa - Objetivos - Unidades de Ensino - Bibliografia - Processo de Avaliação Paulo César do Amaral Pereira SISTEMA COMPUTACIONAL
Leia maisIntel Thread Building Blocks (TBB)
Intel Thread Building Blocks (TBB) MCZA020-13 - Programação Paralela Emilio Francesquini e.francesquini@ufabc.edu.br 2019.Q1 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Disclaimer
Leia maisIntrodução aos Conceitos de Computação Paralela através da estimativa de Pi
Introdução aos Conceitos de Computação Paralela através da estimativa de Pi Diego da Silva Pereira 1 1 Professor de Redes de Computadores IFRN Câmpus Currais Novos. e-mail: diego.pereira@ifrn.edu.br Resumo:
Leia maisApresentação da disciplina. Programação em ambiente Linux prof: Taisy Silva Weber
Apresentação da disciplina Programação em ambiente Linux prof: Taisy Silva Weber Página da disciplina endereço http://www.inf.ufrgs.br/~taisy/disciplinas/ conteúdo da página: listas de exercícios conceitos
Leia maisSCC-5832 Teoria da Computação
Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos
Leia maisARQUITETURA DE COMPUTADORES
RCM00014 Haswell wafer ARQUITETURA DE COMPUTADORES Prof. Luciano Bertini Site: http://www.professores.uff.br/lbertini/ Objetivos do Curso Entendimento mais aprofundado do funcionamento
Leia maisUNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA DISCIPLINA: CÓDIGO: CURSOS/PRE-REQUISITO: CIC Linguagens formais e autômatos N COMPILADORES INF01147
Leia maisFerramentas para Programação em Processadores Multi-Core
Ferramentas para Programação em Processadores Multi-Core Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Introdução Arquiteturas multi-core Ferramentas de programação Prática
Leia maisSíntese de programas utilizando a linguagem Alloy
Universidade Federal de Pernambuco Centro de Informátiva Graduação em Ciência da Computação Síntese de programas utilizando a linguagem Alloy Proposta de Trabalho de Graduação Aluno: João Pedro Marcolino
Leia maisRuby e JRuby em... Paralelos e Distribuídos. Felipe Barden Lucas Fialho Zawacki
Ruby e JRuby em... Paralelos e Distribuídos Felipe Barden 151343 Lucas Fialho Zawacki 172072 Sobre o que vamos falar? A linguagem Ruby e suas aplicações em programação paralela e distribuída. A implementação
Leia maisA IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES
A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES Euzébio da Costa Silva 1, Victor Pereira Ribeiro 2, Susana Brunoro Costa de Oliveira 3 1 29520-000, euzebioprogramacao@gmail.com 2 29520-000, victor3ifes@gmail.com
Leia maisParalelização do Método de Jacobi em Memória Compartilhada 1
Paralelização do Método de Jacobi em Memória Compartilhada 1 Claudio Schepke cschepke@inf.ufrgs.br 1 PPGC - Instituto de Informática - UFRGS Introdução ao Processamento Paralelo e Distribuído Professor
Leia maisUSO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO DE IMAGENS
Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas - ICEB Departamento de Computação - DECOM USO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO
Leia maisUMA HIERARQUIA DE MEMÓRIA PARA UM MODELO RTL DO PROCESSADOR RISC-V SINTETISÁVEL EM FPGA
UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO UMA HIERARQUIA DE MEMÓRIA PARA UM MODELO RTL DO PROCESSADOR RISC-V SINTETISÁVEL EM FPGA PROPOSTA DE TRABALHO
Leia maisSISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Prof. Carlos Eduardo de B. Paes Departamento de Ciência da Computação Pontifícia Universidade Católica de São Paulo Objetivos
Leia maisUma proposta de implementação de árvores rubro-negras em Haskell de forma concorrente
Uma proposta de implementação de árvores rubro-negras em Haskell de forma concorrente AUTOR: THAÍS S. HÜBNER BOLSISTA PBIP/UFPEL EMAIL: TSHUBNER@INF.UFPEL.EDU.BR ORIENTADOR ANDRÉ RAUBER DU BOIS Sumário
Leia maisOrganização de Computadores Computação paralela; Sistema de entrada e saída (I/O); Suporte a Sistema operacional. Professor: Francisco Ary
Organização de Computadores Computação paralela; Sistema de entrada e saída (I/O); Suporte a Sistema operacional Professor: Francisco Ary Computação Paralela Capacidade de um sistema computacional executar
Leia maisMINISTÉRIO DA EDUCAÇÃO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS DIRETORIA DE GRADUAÇÃO
DISCIPLINA: Linguagens de Programação CÓDIGO: 2ECOM.031 Data de Elaboração: Janeiro/2012 Carga Horária: Total: 30 h/a; Semanal: 02 aulas; Créditos: 02 Modalidade: Prática Classificação do Conteúdo pelas
Leia maisProgramação concorrente (processos e threads)
Programação concorrente (processos e threads) Programação concorrente Por que precisamos dela? Para utilizar o processador completamente Paralelismo entre CPU e dispositivos de I/O Para modelar o paralelismo
Leia maisSSC510 Arquitetura de Computadores. 6ª aula
SSC510 Arquitetura de Computadores 6ª aula PARALELISMO EM NÍVEL DE PROCESSOS PROFA. SARITA MAZZINI BRUSCHI Tipos de Paralelismo Instrução (granulosidade fina) Paralelismo entre as instruções Arquiteturas
Leia maisAtol Fortin, Bruno da Hora, Lucas Piva, Marcela Ortega, Natan Lima, Pedro Raphael, Ricardo Sider, Rogério Papetti. 28 de novembro de 2008
Reinventando a Computação Atol Fortin, Bruno da Hora, Lucas Piva, Marcela Ortega, Natan Lima, Pedro Raphael, Ricardo Sider, Rogério Papetti Universidade de São Paulo 28 de novembro de 2008 Introdução Dr.
Leia maisCOMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1
COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1 Márcia Da Silva 2, Igor Gamste Haugg 3, Eliézer Silveira Prigol 4, Édson L. Padoin 5, Rogério S. M. Martins
Leia maisCP Compiladores I Prof. Msc.. Carlos de Salles
CP 5017.9 Prof. Msc.. Carlos de Salles 1 - EMENTA O Processo de Compilação. Deteção e Recuperação de Erros. Introdução à geração de Código Intermediário. Geração de Código de Máquina. Otimização. Uma visão
Leia maisArquitetura de Microprocessadores
Arquitetura de Computadores UNIDADE 4 Arquitetura de 26-02-2019 Sumário Técnicas de processamento paralelo; Pipeline; Hyper-Threading; Processadores de vários núcleos; O aumento de velocidade de processamento
Leia maisOrganização de Computadores Sistema de entrada e saída (I/O) e computação paralela. Professor: Francisco Ary
Organização de Computadores Sistema de entrada e saída (I/O) e computação paralela Professor: Francisco Ary Computação Paralela Capacidade de um sistema computacional ser executado de forma simultânea,
Leia maisSCC Introdução à Teoria da Computação
SCC-0505 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis/ joaoluis@icmc.usp.br
Leia maisArquitetura e Organização de Computadores
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores 1- Introdução Prof. Sílvio Fernandes Arquitetura
Leia maisProgramação Concorrente. Prof. Hugo Vieira Neto
Programação Concorrente Prof. Hugo Vieira Neto Concorrência Um programa concorrente descreve diversas atividades que ocorrem simultaneamente, de modo diferente de programas comuns, que descrevem apenas
Leia maisInformática Aplicada. Introdução
Informática Aplicada Introdução Breve histórico da computação moderna Principais eventos 1000ac - Ábaco 1614 - Logaritmos (John Napier) 1623 - Sistema Binário (Francis Bacon) 1642 - Máquina de Turing 1946
Leia maisQuestões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO
Questões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO QUESTÃO 1 : Enviada por: Francisco Carlos Moraes Junior Duvidas: Thaise Domínios de programação são áreas onde os computadores são usados.
Leia maisParallel Computing Paradigms
João Luís Ferreira Sobral www.di.uminho.pt/~jls jls@... Web: Elearning 1 At the end of the course, students should be able to: Design and optimise parallel applications that can efficiently run on a wide
Leia maisHCT1 HISTÓRIA DA CIÊNCIA E TECNOLOGIA. Professor: Kleber Manrique Trevisani Aluno: João Jakybalis Neto
HCT1 HISTÓRIA DA CIÊNCIA E TECNOLOGIA Professor: Kleber Manrique Trevisani Aluno: João Jakybalis Neto INTEL 4004 LANÇADO EM 1971 COM CAPACIDADE DE PROCESSAMENTO DE 8 bits. Lançado em 1974 Primeiro sucesso
Leia maisPARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1
PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1 Jessica De Almeida Berlezi 2, Janiel Ceretta Foletto 3, Edson Luiz Padoin 4, Rogério S. M. Martins 5. 1 Trabalho realizado
Leia maisOrganização de Sistemas de Computadores
Organização de Sistemas de Computadores Cap. 2 (Tanenbaum), Cap. 3 (Weber) 2.1 Processadores 1 CPU UC = buscar instruções na memória principal e determinar o seu tipo ULA = adição e AND Registradores =
Leia maisUniversidade Federal de Roraima Departamento de Matemática Introdução à Ciência da Computação
Universidade Federal de Roraima Departamento de Matemática Introdução à Ciência da Computação Tema nº1: Entrada e saída de dados Assunto: Elemos básicos sobre Arquitetura de Computadores Conceito de Hardware,
Leia maisSistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional
Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional ARQUITETURA E IMPLEMENTAÇÃO Pacote de Threads Conjunto de rotinas disponíveis para que uma aplicação utilize as facilidades dos threads.
Leia maisPROGRAMA DE DISCIPLINA
DIVISÃO DE ASSUNTOS ACADÊMICOS Secretaria Geral de Cursos PROGRAMA DE DISCIPLINA DEPARTAMENTO DE CIÊNCIAS EXATAS CÓDIGO: EXA832 DISCIPLINA: SISTEMAS DISTRIBUÍDOS CARGA HORÁRIA: 60h EMENTA: Conceitos e
Leia maisConstrução de Compiladores
Construção de Compiladores Parte 1 Introdução Linguagens e Gramáticas F.A. Vanini IC Unicamp Klais Soluções Motivação Porque compiladores? São ferramentas fundamentais no processo de desenvolvimento de
Leia maisUniversidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores
Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores 2013-2 Compilador para a Linguagem Cafezinho Especificação dos trabalhos: T2 (Geração da Representação Intermediária e Análise
Leia maisFERRAMENTA DE AUXÍLIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE INTEGRANDO TECNOLOGIAS OTIMIZADORAS
FERRAMENTA DE AUXÍLIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE INTEGRANDO TECNOLOGIAS OTIMIZADORAS Acadêmico: Roger Anderson Schmidt Orientador : Marcel Hugo Supervisor : Ricardo de Freitas Becker Empresa
Leia maisThe future is parallel but it may not be easy
The future is parallel but it may not be easy Adriano Tabarelli, Alex Morinaga, Caio Silva, Cássia Ferreira, Daniel Santos, Eduardo Apolinário, Hugo Posca, Thiago Batista, Paulo Floriano Universidade de
Leia maisUniversidade Federal do Rio de Janeiro Pós-Graduação em Informática. Introdução. Gabriel P. Silva. Gabriel P. Silva
Universidade Federal do Rio de Janeiro Pós-Graduação em Informática Microarquiteturas de Alto Desempenho Introdução Introdução Bibliografia: Computer Architecture: A Quantitative Approach. John L. Hennesy,
Leia maisSistemas Distribuídos
Sistemas Distribuídos Classificação de Flynn Fonte: Professoras. Sarita UFRJ e Thais V. Batista - UFRN Arquiteturas Paralelas Computação Paralela Conceitos Permite a execução das tarefas em menor tempo,
Leia maisParadigmas de Linguagem de Programação. Aspectos Básicos
Paradigmas de Linguagem de Programação Aspectos Básicos Introdução Nesta segunda etapa de nossos estudos, veremos: aspectos básicos de programa e linguagem de programação; revisão de conceitos de compilador
Leia maisINE 5645 Programação Paralela e Distribuída. Prof. João Bosco M. Sobral INE-UFSC
INE 5645 Programação Paralela e Distribuída Prof. João Bosco M. Sobral INE-UFSC bosco@inf.ufsc.br INE 5645 - Conteúdo Programático UNIDADES I. Introdução II. Programação Paralela III. Controle de Concorrência
Leia maisPONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA DEPARTAMENTO: Fundamentos da Computação CURSO: Ciência da Computação DISCIPLINA: Organização e Arquitetura de Computadores
Leia maisComputadores não funcionam sem Sistemas Operacionais (SO); Diversas técnicas de programação, como programação paralela, surgiram nos SO;
BC1518 - Sistemas Operacionais Apresentação da Disciplina Plano de trabalho 3 Quadrimestre de 2010 Prof. Marcelo Z. do Nascimento Email: marcelo.nascimento@ufabc.edu.br Roteiro Motivação Apresentação Programa
Leia maisSCC Teoria da Computação e Linguagens Formais
SCC-0205 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis/ joaoluis@icmc.usp.br
Leia maisFerramenta para Desenvolvimentode Sistemas EmbarcadosUtilizando Linguagem de Alto Nível p.1/25
Universidade Federal do Rio Grande do Sul Escola de Engenharia - Instituto de Informática Graduação em Engenharia de Computação Ferramenta para Desenvolvimento de Sistemas Embarcados Utilizando Linguagem
Leia maisUNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular COMPILADORES Ano Lectivo 2011/2012
Programa da Unidade Curricular COMPILADORES Ano Lectivo 2011/2012 1. Unidade Orgânica Ciências da Economia e da Empresa (1º Ciclo) 2. Curso Informática 3. Ciclo de Estudos 1º 4. Unidade Curricular COMPILADORES
Leia maisPLANO DE APRENDIZAGEM
PLANO DE APRENDIZAGEM 1. DADOS DE IDENTIFICAÇÃO Curso: Bacharelado em Sistemas de Informação Disciplina: Linguagens Formais e Compiladores Código: SIF5N191 Professor: Jamilson Ramalho Dantas e-mail: jamilson.dantas@fasete.edu.br
Leia maisBrilliant Solutions for a Safe World
Componente Biométrico - Íris Componentes do lado do servidor (multi-plataforma): Licenças do Matching Server Licenças do MegaMatcher Accelerator Extended (mecanismo de íris) Licenças do MegaMatcher Accelerator
Leia maisLicenciatura em Informática
Licenciatura em Informática Unidade Curricular Arquitetura de Computadores Computer Architecture Objetivos -Compreender o hardware e software de sistema (SO); -Entender os sistemas de numeração e aritmética
Leia maisSISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS Introdução a Sistemas Operacionais Andreza Leite andreza.leite@univasf.edu.br Plano de Aula Introdução aos Sistemas Operacionais Fundamentação Teórica Evolução Histórica Características
Leia maisProf. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018
22 de Fevereiro de 2018 Motivação O que é um computador? O que é um algoritmo? Para que serve um algoritmo? Quando um algoritmo é bom? A análise de um algoritmo depende do computador? Motivação Em teoria
Leia maisOrganização de Computadores Processadores. Professor: Francisco Ary
Organização de Computadores Processadores Professor: Francisco Ary Introdução O que vimos no último encontro: O que é um computador; Arquitetura Três partes principais: Processador; Memória; e Sistema
Leia maisUM FRAMEWORK DE CONECTIVIDADE PARA APLICAÇÕES MÓVEIS EM JAVA ME
Universidade Federal de Pernambuco Graduação em Ciência da Computação Centro de Informática UM FRAMEWORK DE CONECTIVIDADE PARA APLICAÇÕES MÓVEIS EM JAVA ME PROPOSTA DE TRABALHO DE GRADUAÇÃO Aluno: Carlos
Leia maisINE5318 Construção de Compiladores. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:
INE5318 Construção de Compiladores Ricardo Azambuja Silveira INE CTC UFSC E Mail: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira Identificação da disciplina Código: INE 5426 Nome: Construção de Compiladores
Leia mais