CAD Trabalho III. PThreads e OpenMP. Pedro Carvalho de Oliveira Rui André Ponte Costa
|
|
- Yasmin Van Der Vinne Caetano
- 8 Há anos
- Visualizações:
Transcrição
1 Universidade de Coimbra Faculdade de Ciências e Tecnologia Departamento de Engenharia Informática CAD Trabalho III PThreads e OpenMP Pedro Carvalho de Oliveira Rui André Ponte Costa Maio 2008
2 Resumo Neste trabalho, à semelhança do anterior, foram desenvolvidas várias soluções para a implementação de um servidor multi-tarefa. Esse servidor contem uma base de dados que é consultada/alterada por uma aplicação cliente, sendo os pedidos de consulta e alteração ordenados. O servidor tem assim de garantir a máxima eficiência no processamento dos pedidos, ao mesmo tempo garantindo a correcta ordem de execução dos mesmos. A grande diferença em relação ao trabalho anterior consiste na introdução de um novo comando, ordenamento, e na mudança de linguagem e paradigmas de programação. Neste trabalho é proposto desenvolver as nossas soluções em C/C++, utilizando as livrarias PThreads e OpenMP. Na secção 1 é feito um estudo da aplicação com vista a identificar pontos de melhoramento, sendo a secção 2 reservada á explicação das várias soluções implementadas. A secção 3 contém os testes efectuados, concluindo a secção 4 com algumas considerações finais. I
3 Conteúdos 1. Estudo da Aplicação Implementações Unithread PThreads OpenMP PThreads+OpenMP Testes Descrição dos testes Resultados Conclusões Conclusão... 6 Referências... 6 II
4 1. Estudo da Aplicação Numa primeira fase decidimos estudar o desempenho do servidor base fornecido pelo professor. Após vários testes detecta-mos valores de desempenho estranhos que variavam independentemente das execuções. Com os inputs mais exigentes fornecidos (Input 2 e 4) o tempo de execução variava drasticamente entre execuções, tendo por vezes valores muito baixos (cerca 1/2 segundos) para depois atingir valores muito elevados (na ordem das centenas de segundos). Após algum debug, chegamos à conclusão que esse facto era dependente do valor inserido como número máximo de ligações pendentes no socket do servidor. Ao alterar esse valor para um número igual ou superior ao número de pedidos pelo cliente o problema ficou resolvido. De seguida, efectua-mos um profiling do servidor para verificar quais as zonas do processamento onde deveríamos de apostar (Imagem 1). Imagem 1. Profiling, utilizando o gprof, do servidor fornecido pelo professor com o input 4. Como se pode concluir, uma grande parte do tempo é gasta nas instruções de ordenamento (função compare). Para nossa surpresa, a escrita da base de dados no disco (função save_array) parece não possuir tanta complexidade quanto a existente na versão em Java. No entanto, à semelhança do trabalho anterior, decidimos criar uma thread específica para esta função. 2. Implementações De seguida são apresentadas as 4 soluções encontradas para este problema. Procuramos encontrar soluções conceptualmente diferentes do trabalho anterior, devido à mudança de paradigma e aos resultados pouco motivadores atingidos anteriormente. 1
5 2.1. Unithread Esta versão é idêntica à versão Unithread implementada no trabalho anterior. Como o próprio nome indica, utiliza apenas uma thread para efectuar todo o trabalho no servidor, garantindo a ordem de execução através de uma PriorityQueue que vai sendo ocupada com os pedidos enviados pelos clientes. Existe uma variável que define o número do próximo pedido a ser executado, sendo esse pedido executado quando estiver na cabeça da PriorityQueue PThreads Baseado na versão Unithread, foi criada esta versão multithread utilizando PThreads. Utilizando o mesmo mecanismo de prioritização dos pedidos, é lançada uma thread para cada pedido que esteja em condições de ser processado (ou seja, que esteja em ordem). Para bloqueio da base de dados foi implementado um sistema de bloqueios parciais. Para cada pedido é detectado as gamas de execução, sendo criado uma lista em memória com as gamas actualmente a serem ocupadas por outros pedidos que estejam a executar. Quando uma thread deseja processar, primeiro verifica essa lista para verificar se existe outro pedido que esteja actualmente a trabalhar na mesma zona de memória que a sua. Devido à diferença entre tipos de pedidos, a permissão para processar baseia-se em regras distintas (Tabela 1). Tipo de Pedido Leitura (Max, Min, Avg) Sort Change sem realocação Change com realocação Pode efectuar se: A sua gama está livre A sua gama está ocupada, mas por outras leituras Não existe nenhum change a realocar memória A sua gama está livre Não existe nenhum change a realocar memória A sua gama está livre Não existe nenhum change a realocar memória Nenhum pedido está a ser executado Tabela 2. Regras de permissão do servidor. A identificação de change com/sem realocação é feita tendo em conta a gama de alteração do change e o tamanho actual da tabela (se gama ultrapassa, vai ser necessário fazer realocação) OpenMP Nesta versão utilizámos as funcionalidades disponibilizadas pelo OpenMP, de modo a paralelizar-mos os cálculos efectuados pelo servidor. Os cálculos que paralelizados foram os seguintes: mínimo, máximo, média e ordenamento. Para os três primeiros foram feitos testes nos quais o OpenMP se demonstrava ligeiramente mais eficaz, no entanto isto só se verificou para grandes dimensões (> ). Assim, forçamos com que a parelização recorrendo ao OMP só acontece-se acima de um certo valor, sendo esse valor 2
6 definido como para as funções max, min e avg, e para a função de ordenamento. Foi utilizada uma implementação paralelizada do quick sort que se encontra livremente disponível [1]. À implementação existente foi ainda adicionado o insertion sort para ser usado quando o quick sort atinge dimensões reduzidas (<= 30). Após vários testes concluímos como sendo o valor de intervalo 30 o ideal para a utilização do insertion sort dentro do quick sort. Foi possível obter uma melhoria no desempenho de cerca de 3 segundos no ordenamento de um array aleatório de elementos. É ainda de salientar que pesquisámos por vários algoritmos de ordenamento especialmente criados para uma abordagem paralela. Um deles encontra-se descrito em [2], onde obtiveram os melhores resultados até hoje para benchmarks vulgarmente usados na área, com dois cores e uma arquitectura de memória partilhada. Foi usado o algoritmo Odd-Even Mergesort que é uma variação do Merge sort e foi usado OpenMP. Enviamos um a pedir a implementação, mas não obtivemos resposta em tempo útil. Outro algoritmo muito usado na área é o Parallel Sorting by Regular Sampling [3], que é o algoritmo que até hoje obtém melhores resultados para mais do que dois cores. Em [4] encontram-se alguns testes efectuados com o código disponibilizado no repositório de código OpenMP, bem como a identificação das principais deficiências do OpenMP no que toca a paralelização de algoritmos de ordenamento. Apesar disto, como comprovam os nossos testes, o OMP torna-se vantajoso, mesmo usando o quicksort PThreads+OpenMP Esta versão reúne a versão PThreads e a OpenMP numa só. Tal como nas implementações base, o processamento de pedidos é efectuado utilizando Pthreads, sendo o processamento dos cálculos efectuado utilizando OpenMP. Após alguns testes, deparamo-nos com problemas que nos foram impossíveis de resolver. Esses problemas ocorriam da utilização simultânea dos dois paradigmas. Após mais alguns testes, concluímos que para casos onde a utilização simultânea fosse simples (ou seja, não existisse grande sincronização de threads) os dois paradigmas funcionavam bem em conjunto. Quando se aumentava a complexidade de sincronização, como é o caso do servidor PThreads, ocorriam erros de corrupção de memória provenientes da livraria de Pthreads. Visto que o próprio OpenMP utiliza Pthreads internamente, estamos em crer que existe algum bug de sincronização na estrutura do mesmo, que corrompe a memória das threads. Sendo assim, este servidor não foi utilizado nos testes a seguir descritos. 3. Testes De seguida são apresentados os testes efectuados às implementações anteriormente descritas, juntamente com as respectivas conclusões. Todos os testes foram executados numa máquina com processador Intel Core Duo T5500 de 1.66GHz, com 2GB de memória disponível. A máquina virtual JAVA da 3
7 aplicação cliente foi lançada com 512MB de memória, devido á dureza em termos de input de alguns testes Descrição dos testes Para testar as nossas soluções cria-mos vários inputs de teste com vista a testar as várias situações que podem acontecer num servidor deste tipo. De seguida é apresentada uma descrição sumária de cada um. 1. Input nº1 fornecido pelo professor. 2. Input nº2 fornecido pelo professor. Bastantes leituras e algumas escritas. 3. Input nº3 fornecido pelo professor. Várias escritas. 4. Input nº4 fornecido pelo professor. Várias escritas, leituras e ordenamentos. 5. Três escritas ao inicio, seguido de 250 leituras aleatórias. 6. Cerca de 100 escritas e 100 ordenamentos, intercalados irregularmente com 20 leituras. 7. Igual ao teste nº4, mas com o cliente alterado de maneira a que os pedidos sejam lançados por ordem inversa (ou seja, o cliente primeiro lança o pedido com o número de ordem 39) 3.2. Resultados De seguida são apresentados os resultados temporais da execução das várias implementações para os vários testes. Os valores apresentados são a média de 30 execuções, em milésimos de segundo (ms). Input\Imp. Unithread Pthreads OpenMP Input 1 1,8 13,2 1,6 Input ,1 1351, Input 3 216,8 244,2 225,6 Input ,3 3252,4 1879,3 Input ,9 2814,8 Input , , ,7 Input ,2 5363,8 5267,8 Tabela 2. Resultados temporais (ms). 4
8 Imagem 2. Gráfico de resultados temporais (ms) Conclusões A primeira conclusão a retirar destes testes, em relação ao trabalho anterior, é os tempos de execução serem bastante inferiores. Com a versão Unithread, utilizando o Input 3, os tempos de execução foram de 216ms, tendo a versão em Java cerca de 1612ms. Esta diferença não se deve a optimizações do servidor, mas sim em relação à linguagem C que demonstra ser muito mais rápida no processamento. As versões multithread obtiveram resultados mais satisfatórios do que no trabalho anterior. Essa melhoria é mais evidente quando a carga do servidor com sorts e changes é elevada (Input 6). Curiosamente, os resultados das Pthreads e do OpenMP foram muito idênticos neste teste, mesmo sendo o seu funcionamento interno totalmente diferente. Por essa razão, estamos em crer que caso o servidor Pthreads+OpenMP funcionasse, teríamos obtido resultados ainda melhores, aproveitando a complementaridade das duas soluções. O Input 4 e 6 obtiveram algumas melhorias utilizando a versão OpenMP. Visto que essa melhoria não ocorreu no Input 2, que é muito idêntica a ambos mas sem os sorts, podemos concluir que essa melhoria advém da paralelização do ordenamento. Com o input 5, ao contrário do trabalho anterior, não houve melhoramentos de execução. Esse facto deve-se a solução do trabalho anterior estar muito optimizada para o processamento de leituras, aproveitando o excelente mecanismo de ReadWriteLocks do Java. Apesar dos resultados de paralelização deste trabalho serem melhores que no anterior, esses melhoramentos ocorreram principalmente nos inputs que utilizam uma função não utilizada anteriormente (sort). Nos inputs utilizados em ambos os trabalhos (Input 1, 2 e 3) os resultados em relação à versão Unithread foram idênticos. Com tudo isto podemos concluir, novamente, que este problema é de difícil paralelização. Com a adição do comando sort os resultados já melhoram em relação à versão Unithread, principalmente se a quantidade de sorts for elevada. A necessidade de 5
9 garantir uma ordem que não a de chegada demonstrou novamente ser muito difícil de paralelizar processamento. Tendo em conta os testes efectuados, podemos concluir que a melhor solução foi a versão com OpenMP. Tal como provado em [5], o OpenMP além de garantir resultados bastantes bons, está muito optimizado para as funcionalidades para as quais foi desenhado, sendo muito mais fácil de programar e depurar. No código anexo a este relatório seguem as 4 versões implementadas, incluindo a versão PThreads+OpenMP. 4. Conclusão Este trabalho permitiu-nos utilizar as principais capacidades das PThreads e do OpenMP. Durante a sua execução, tivemos de testar várias abordagens utilizando esses paradigmas, tendo feito uma pesquisa intensiva sobre a sua utilização neste problema concreto. Tal como no trabalho anterior, este problema permitiu-nos explorar um problema de difícil paralelização. Consciencializou-nos para o facto de nem todos os problemas serem de trivial paralelização, tendo sempre de se estudar bem os prós e contras de uma solução paralela antes de partir para a sua aplicação no mundo real. Referências [1] compunity, The Community of OpenMP users, researchers, tool developers and providers, [2] E. Herruzo et al., A New Parallel Sorting Algorithm based on Odd-Even Mergesort, Proceedings of the 15th Euromicro International Conference on Parallel, Distributed and Network-Based Processing, 2007, pp [3] H. Shi and J. Schaeffer, Parallel sorting by regular sampling, Journal of Parallel and Distributed Computing, vol. 14, 1992, pp [4] M. Suß and C. Leopold, A User s Experience with Parallel Sorting and OpenMP, Proceedings of the Sixth Workshop on OpenMP (EWOMP 04), October, [5] B. Kuhn, P. Petersen, and E. O Toole, OpenMP versus Threading in C/C+, Concurrency: Pract. Exper, vol. 12, 2000, pp
Computação Adaptativa
Departamento de Engenharia Informática Faculdade de Ciências e Tecnologia Universidade de Coimbra 2007/08 Computação Adaptativa TP2 OCR Optical Character Recognition Pedro Carvalho de Oliveira (MEI) Nº
Leia maisModelo Cascata ou Clássico
Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação
Leia maisInstituto Politécnico de Beja. Escola Superior de Tecnologia e Gestão
Instituto Politécnico de Beja Escola Superior de Tecnologia e Gestão Curso de Engenharia Informática Disciplina de Estrutura de dados e Algoritmos 2º Ano - 1º Semestre Relatório Connected Component Labeling
Leia mais5.1 Exemplos de uso Mediante a instanciação de componentes específicos, o OiL pode ser configurado
5 Avaliação Decidimos avaliar a arquitetura de componentes para o OiL proposta neste trabalho em duas dimensões diferentes. Na primeira, demonstramos a capacidade de configuração do middleware com alguns
Leia mais4 Implementação e Resultados Experimentais
4 Implementação e Resultados Experimentais Com o objetivo de fazer a criação automática de visões materializadas, ou seja, prover uma solução on-the-fly para o problema de seleção de visões materializadas,
Leia maisDadas a base e a altura de um triangulo, determinar sua área.
Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares
Leia maisTECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO
TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite
Leia maisItinerários de Ônibus Relatório Final
CENTRO UNIVERSITÁRIO SENAC Itinerários de Ônibus Relatório Final Grupo 5 Caio Roque Daniel Nunes Elise Roese José Caneiro Marcos Grignani São Paulo Junho de 2007 1 ÍNDICE 1. Introdução... 3 2. Desenvolvimento...
Leia maisCurso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:
Trabalho elaborado por: Carlos Palma nº5608 Curso de Eng. Informática Linguagens de Programação C Sharp University Data Processing (C Sharp Universidade de Processamento de Dados) Docente: José Jasnau
Leia maisPdP. Autor: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 26/12/2005 Última versão: 18/12/2006
TUTORIAL Servo-motor Autor: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 26/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br
Leia maisIMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET
1 IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET Daniel da Silva Carla E. de Castro Franco Diogo Florenzano Avelino daniel.silva1@ext.mpsa.com
Leia maisServidores Virtuais. Um servidor à medida da sua empresa, sem investimento nem custos de manutenção.
es Virtuais Um servidor à medida da sua empresa, sem investimento nem custos de manutenção. O que são os es Virtuais? Virtual é um produto destinado a empresas que necessitam de um servidor dedicado ligado
Leia maisGIAE VERSÃO 2.1.1 28 JUNHO DE 2011 MUITO IMPORTANTE
GIAE VERSÃO 2.1.1 28 JUNHO DE 2011 MUITO IMPORTANTE Devido a um bug detectado no motor da base de dados, situação agora corrigida pelo fabricante, esta nova actualização do GIAE é disponibilizada numa
Leia maisUsando o Excel ESTATÍSTICA. Funções
Funções Podemos usar no Excel fórmulas ou funções. Anteriormente já vimos algumas fórmulas. Vamos agora ver o exemplo de algumas funções que podem ser úteis para o trabalho de Excel. Para começar podemos
Leia maisComparativo de desempenho do Pervasive PSQL v11
Comparativo de desempenho do Pervasive PSQL v11 Um artigo Pervasive PSQL Setembro de 2010 Conteúdo Resumo executivo... 3 O impacto das novas arquiteturas de hardware nos aplicativos... 3 O projeto do Pervasive
Leia maisO protocolo MODBUS define também o tipo diálogo entre os equipamentos, define por exemplo quem pode enviar dados e em que altura.
Universidade de Aveiro Departamento de Engenharia Mecânica Informática Industrial 2010/2011 5 PROTOCOLO DE COMUNICAÇÃO MODBUS 5.1 Protocolo de comunicação MODBUS Este protocolo foi proposto em 1979 pela
Leia maisCriação de Páginas Web - MS Word 2000
Gestão Comercial e da Produção Informática I 2003/04 Ficha de Trabalho N.º 9 Criação de Páginas Web - MS Word 2000 1. Criação de uma página Web (HTML): Escreva o seu texto e introduza as imagens pretendidas
Leia maisO que é RAID? Tipos de RAID:
O que é RAID? RAID é a sigla para Redundant Array of Independent Disks. É um conjunto de HD's que funcionam como se fosse um só, isso quer dizer que permite uma tolerância alta contra falhas, pois se um
Leia maisLicenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de 2005 2º Semestre, 2004/2005
Departamento de Informática Faculdade de Ciências e Tecnologia UNIVERSIDADE NOVA DE LISBOA Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de 2005 2º Semestre, 2004/2005
Leia maisUtilização do SOLVER do EXCEL
Utilização do SOLVER do EXCEL 1 Utilização do SOLVER do EXCEL José Fernando Oliveira DEEC FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO MAIO 1998 Para ilustrar a utilização do Solver na resolução de
Leia maisComputação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.
Computação Paralela Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro 2005 Desenvolvimento de Aplicações Paralelas Uma Metodologia
Leia maisSistemas Operativos 2005/2006. Arquitectura Cliente-Servidor Aplicada A Uma Biblioteca. Paulo Alexandre Fonseca Ferreira Pedro Daniel da Cunha Mendes
Sistemas Operativos 2005/2006 Arquitectura Cliente-Servidor Aplicada A Uma Biblioteca Turma 3EIC3 Grupo 5 Paulo Alexandre Fonseca Ferreira Pedro Daniel da Cunha Mendes O trabalho efectuado, consiste numa
Leia maisPlataforma de Benefícios Públicos Acesso externo
Índice 1. Acesso à Plataforma... 2 2. Consulta dos Programas de Beneficios Públicos em Curso... 3 3. Entrar na Plataforma... 4 4. Consultar/Entregar Documentos... 5 5. Consultar... 7 6. Entregar Comprovativos
Leia maisAvanços na transparência
Avanços na transparência A Capes está avançando não apenas na questão dos indicadores, como vimos nas semanas anteriores, mas também na transparência do sistema. Este assunto será explicado aqui, com ênfase
Leia maisProgramação Concorrente em java - Exercícios Práticos Abril 2004
Programação Concorrente em java - Exercícios Práticos Abril 2004 1. Introdução As threads correspondem a linhas de controlo independentes no âmbito de um mesmo processo. No caso da linguagem JAVA, é precisamente
Leia maisCPU Unidade Central de Processamento. História e progresso
CPU Unidade Central de Processamento História e progresso O microprocessador, ou CPU, como é mais conhecido, é o cérebro do computador e é ele que executa todos os cálculos e processamentos necessários,
Leia maisPERIVER PLATAFORMA SOFTWARE REQUIREMENT SPECIFICATION. Periver_SoftwareRequirementSpecification_2008-03-31_v1.0.doc. Versão 1.0
PLATAFORMA Versão 1.0 31 de Março de 2008 TABELA DE REVISÕES Versão Autores Descrição da Versão Aprovadores Data António Rocha Cristina Rodrigues André Ligeiro V0.1r Dinis Monteiro Versão inicial António
Leia maisOrganização de Computadores
Organização de Computadores Marcelo Lobosco DCC/UFJF Avaliando e Compreendendo o Desempenho Aula 09 Agenda Avaliando e Compreendendo o Desempenho Introdução Definindo Desempenho Medindo o Desempenho Desempenho
Leia maisDescrição dos Módulos
XDDisco XDPEOPLE Descrição dos Módulos Terminal de Caixa Terminal de Consulta O terminal de caixa do XDDisco é o executável principal instalado com o XDDisco e é utilizado para efectuar o registo dos produtos.
Leia maisGrupo I [4v] b. [0,6v] De que forma é que o escalonador do Linux tenta minimizar o impacto desta limitação?
Número: Nome: LEIC/LERC 2011/12-2º Exame de Sistemas Operativos 3/Fevereiro/2012 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 2h30m Grupo I [4v] 1. [0,6v] A
Leia maisControladores Lógicos Programáveis 2
Escola Superior de Tecnologia Instituto Politécnico de Castelo Branco Departamento de Informática Curso de Engenharia Informática Automação e Controlo Industrial Ano Lectivo de 2004/2005 Controladores
Leia maisManual do GesFiliais
Manual do GesFiliais Introdução... 3 Arquitectura e Interligação dos elementos do sistema... 4 Configuração do GesPOS Back-Office... 7 Utilização do GesFiliais... 12 Outros modos de utilização do GesFiliais...
Leia maisWEBSITE DEFIR PRO WWW.DEFIR.NET
MANUAL DO UTILIZADOR WEBSITE DEFIR PRO WWW.DEFIR.NET 1. 2. PÁGINA INICIAL... 3 CARACTERÍSTICAS... 3 2.1. 2.2. APRESENTAÇÃO E ESPECIFICAÇÕES... 3 TUTORIAIS... 4 3. DOWNLOADS... 5 3.1. 3.2. ENCOMENDAS (NOVOS
Leia maisMANUAL DO UTILIZADOR
MANUAL DO UTILIZADOR Versão 1.6 PÁGINA DE PESQUISA A página principal do PacWeb permite a realização de um número muito variado de pesquisas, simples, ou pelo contrário extremamente complexas, dependendo
Leia maisTrabalho de Fundamentos da Computação Gráfica
Trabalho de Fundamentos da Computação Gráfica Melhorias para o Ray Tracing 1. Níveis de pré-visualização 2. Paralelização com Buckets (na CPU) 3. Anti-aliasing (Supersampling) 4. Passes a. Mapa de Profundidade
Leia maisFCT Faculdade de Ciências e Tecnologia Serviço Técnico de Informática STI SGCD Sistema Gerenciador de Conteúdos Dinâmicos
FCT Faculdade de Ciências e Tecnologia Serviço Técnico de Informática STI SGCD Sistema Gerenciador de Conteúdos Dinâmicos Manual do Usuário Presidente Prudente, outubro de 2010 Índice 1. Introdução e Instruções
Leia maisTUTORIAL PRÁTICO SOBRE Git. Versão 1.1
TUTORIAL PRÁTICO SOBRE Git por Djalma Oliveira Versão 1.1 "Git é um sistema de controle de revisão distribuida, rápido e escalável" (tradução rápida do manual). Basicamente é
Leia maisJogo de Tabuleiro - Mancala Relatório Final
Jogo de Tabuleiro - Mancala Relatório Final Inteligência Artificial 3º ano do Mestrado Integrado em Engenharia Informática e Computação Elementos do Grupo: Bruno Lima 080509068 bruno.lima@fe.up.pt Pedro
Leia maisAnálise de Sistemas. Conceito de análise de sistemas
Análise de Sistemas Conceito de análise de sistemas Sistema: Conjunto de partes organizadas (estruturadas) que concorrem para atingir um (ou mais) objectivos. Sistema de informação (SI): sub-sistema de
Leia maisIntrodução ao Processamento Paralelo
Introdução ao Processamento Paralelo Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h Introdução Crescente aumento de desempenho dos PCs (máquinas convencionais). Existem aplicações que requisitam
Leia maisTECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO
TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO ACCESS 2010 Conceitos Básicos Ficha Informativa Professor : Vanda Pereira módulo didáctico Conceitos Básicos Necessidade das base de dados Permite guardar dados
Leia maisMúltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II
O seguinte exercício contempla um processo com três estágios. Baseia-se no Inquérito de Satisfação Fase II, sendo, por isso, essencial compreender primeiro o problema antes de começar o tutorial. 1 1.
Leia maisUdesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso alexandre.matos@udesc.br
Programação Concorrente [Parte 2] Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais Prof. Alexandre Veloso alexandre.matos@udesc.br Condição de Corrida Uma forma de um processo comunicar-se
Leia maisOBI2014 Caderno de Tarefas
OBI2014 Caderno de Tarefas Modalidade Universitária, Fase 2 16 de agosto de 2014 A PROVA TEM DURAÇÃO DE 5 HORAS Promoção: Patrocínio: Olimpíada Brasileira de Informática OBI2014 1 Instruções LEIA ATENTAMENTE
Leia maisDOCBASE. 1. Conceitos gerais. 2. Estrutura da pasta de associações. 3. A área de documentos reservados. 4. Associação de Imagens
Documentação, Informática e Desenvolvimento 1 DOCBASE ASSOCIAÇÔES MULTIMÉDIA 1. Conceitos gerais 2. Estrutura da pasta de associações 3. A área de documentos reservados 4. Associação de Imagens 5. Procedimentos
Leia maisSistema LigaMagic de Torneios
Sistema LigaMagic de Torneios O Sistema LigaMagic de Torneios (www.ligamagic.com.br) tem como objetivo fortalecer as lojas e organizadores de Magic no Brasil. Para isto estamos criando um sistema de torneios
Leia mais5. Métodos ágeis de desenvolvimento de software
Engenharia de Software 5. Métodos ágeis de desenvolvimento de software Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Desenvolver e entregar software o mais rapidamente possível é hoje em dia um dos
Leia maisArquitecturas de Software Licenciatura em Engenharia Informática e de Computadores
UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores Primeiro Teste 21 de Outubro de 2006, 9:00H 10:30H Nome: Número:
Leia mais5 Mecanismo de seleção de componentes
Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisPossui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.
3. Tabelas de Hash As tabelas de hash são um tipo de estruturação para o armazenamento de informação, de uma forma extremamente simples, fácil de se implementar e intuitiva de se organizar grandes quantidades
Leia maisLicenciatura em Eng.ª Informática Complementos de Redes - 3º Ano - 2º Semestre. Trabalho Nº 4 - VoIP
Trabalho Nº 4 - VoIP 1. Introdução A utilização de tecnologia VoIP como alternativa às redes telefónicas tradicionais está a ganhar cada vez mais a aceitação junto dos utilizadores, e está sobretudo em
Leia maisManual do Visualizador NF e KEY BEST
Manual do Visualizador NF e KEY BEST Versão 1.0 Maio/2011 INDICE SOBRE O VISUALIZADOR...................................................... 02 RISCOS POSSÍVEIS PARA O EMITENTE DA NOTA FISCAL ELETRÔNICA.................
Leia maisRelatório de Instalação do Windows 2003 Server
Curso Profissional de Gestão e Programação de Sistemas Informáticos Relatório de Instalação do Windows 2003 Server Instalação do Windows 2003 Server quarta-feira, 3 de dezembro de 2013 Índice Introdução...
Leia maisBase de Dados para Administrações de Condomínios
Base de Dados para Administrações de Condomínios José Pedro Gaiolas de Sousa Pinto: ei03069@fe.up.pt Marco António Sousa Nunes Fernandes Silva: ei03121@fe.up.pt Pedro Miguel Rosário Alves: alves.pedro@fe.up.pt
Leia maisNovo Formato de Logins Manual de Consulta
Gestão Integrada de Acessos Novo Formato de Logins Manual de Consulta Gestão Integrada de Acessos Histórico de Alterações Versão Descrição Autor Data 1.0 Versão inicial DSI/PPQ 2014-07-11 Controlo do documento
Leia maisA história do Processadores O que é o processador Características dos Processadores Vários tipos de Processadores
A história do Processadores O que é o processador Características dos Processadores Vários tipos de Processadores As empresas mais antigas e ainda hoje no mercado que fabricam CPUs é a Intel, AMD e Cyrix.
Leia maisP HC XL - Nem calcula o produto que temos para si...
P HC XL - Nem calcula o produto que temos para si... Documento FAQs Poderão ser contemplados campos de utilizadores da ML? Essa possibilidade não existe. Os campos disponíveis são os campos base da tabela
Leia maisComo Gerar documento em PDF com várias Imagens
Como Gerar documento em PDF com várias Imagens Para Gerar documento em PDF com várias Imagens, temos que seguir dois passos: 1. Inserir Imagens no Word 2. Gerar PDF a partir de documento do Word 1- Inserir
Leia maisDemonstração da técnica de detecção sensível à fase: uma aplicação óptica. Davi R. Ortega, Túlio C. Rizuti da Rocha Orientador: Flávio Caldas da Cruz
Demonstração da técnica de detecção sensível à fase: uma aplicação óptica I - Introdução Davi R. Ortega, Túlio C. Rizuti da Rocha Orientador: Flávio Caldas da Cruz No relatório parcial, mostramos a teoria
Leia maisNa medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.
1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade
Leia maisTecnologia PCI express. Introdução. Tecnologia PCI Express
Tecnologia PCI express Introdução O desenvolvimento de computadores cada vez mais rápidos e eficientes é uma necessidade constante. No que se refere ao segmento de computadores pessoais, essa necessidade
Leia maisNovidades no Q-flow 3.02
Novidades no Q-flow 3.02 Introdução Um dos principais objetivos do Q-flow 3.02 é adequar-se às necessidades das grandes organizações. Por isso, o Q-flow 3.02 possui uma versão Enterprise que inclui funcionalidades
Leia maisEsta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi
5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem
Leia maisAplicação Prática de Lua para Web
Aplicação Prática de Lua para Web Aluno: Diego Malone Orientador: Sérgio Lifschitz Introdução A linguagem Lua vem sendo desenvolvida desde 1993 por pesquisadores do Departamento de Informática da PUC-Rio
Leia maisIFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira
IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários
Leia maisProgramação de Sistemas
Programação de Sistemas Introdução à gestão de memória Programação de Sistemas Gestão de memória : 1/16 Introdução (1) A memória central de um computador é escassa. [1981] IBM PC lançado com 64KB na motherboard,
Leia mais4 Segmentação. 4.1. Algoritmo proposto
4 Segmentação Este capítulo apresenta primeiramente o algoritmo proposto para a segmentação do áudio em detalhes. Em seguida, são analisadas as inovações apresentadas. É importante mencionar que as mudanças
Leia maisRedes de Acesso Telefone VoIP WiFi baseado em Windows Mobile
Telefone VoIP WiFi baseado em Windows Mobile Trabalho realizado pelos alunos: Grupo 17 Índice A Introdução...3 B Objectivos...3 C Especificações, Desenvolvimento e Testes...3 C.1 Especificações...3 C.2
Leia maisBalanceamento de Carga
40 4. Balanceamento de Carga Pode-se entender por balanceamento de carga uma política a ser adotada para minimizar tanto a ociosidade de utilização de alguns equipamentos quanto a super utilização de outros,
Leia maisCálculo Aproximado do número PI utilizando Programação Paralela
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Cálculo Aproximado do número PI utilizando Programação Paralela Grupo 17 Raphael Ferras Renan Pagaiane Yule Vaz SSC-0143 Programação
Leia maisManual SAGe Versão 1.2 (a partir da versão 12.08.01)
Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação
Leia maisALGORITMOS DE ORDENAÇÃO. Algoritmos de comparação-e-troca. Bubble Sort Merge Sort Quick Sort
ALGORITMOS DE ORDENAÇÃO ALGORITMOS DE ORDENAÇÃO Algoritmos de comparação-e-troca Bubble Sort Merge Sort Quick Sort 1 BUBBLE SORT Usa a estratégia de comparação-e-troca É constituído por várias fases Cada
Leia maisEngenharia de Software. Enunciado da Segunda Parte do Projecto
LEIC-A, LEIC-T, LETI, MEIC-T, MEIC-A Engenharia de Software 2 o Semestre 2013/2014 Enunciado da Segunda Parte do Projecto 1. Segunda Parte do Projecto ES A segunda parte do projecto consiste na realização
Leia maisEngenharia de Software. Enunciado da Quarta Parte do Projecto
LEIC-A, LEIC-T, LERC, MEIC-T, MEIC-A Engenharia de Software 2 o Semestre 2012/2013 Enunciado da Quarta Parte do Projecto 1. Introdução Nesta parte final do projecto de ES e SD pretende-se: Estender a solução
Leia maisProgramação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto
Mestrado Integrado em Engenharia Electrotécnica e de Computadores Programação 2º Semestre 2010/2011 Enunciado do projecto O projecto a desenvolver pelos alunos consistirá numa sistema de monitorização,
Leia maisSistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação
Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 2 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,
Leia maisSISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA
SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA 1. INTRODUÇÃO O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis. O sistemas multiprogramáveis
Leia maisUniversidade do Minho Licenciatura em Engenharia Informática
Universidade do Minho Licenciatura em Engenharia Informática Disciplina de Desenvolvimento de Sistemas de Software Trabalho Prático Fase 1 Ano Lectivo de 2009/10 GereComSaber Grupo 15 Cláudio Manuel Rigueiro
Leia maisManual do Utilizador
Faculdade de Ciências e Tecnologia da Universidade de Coimbra Departamento de Engenharia Electrotécnica e Computadores Software de Localização GSM para o modem Siemens MC35i Manual do Utilizador Índice
Leia maisTarefa Orientada 18 Tabelas dinâmicas
Tarefa Orientada 18 Tabelas dinâmicas Análise de dados através de tabelas dinâmicas. Conceitos teóricos As Tabelas Dinâmicas são tabelas interactivas que resumem elevadas quantidades de dados, usando estrutura
Leia maisIntrodução ao Modelos de Duas Camadas Cliente Servidor
Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos
Leia maisEngenharia de Software I
Engenharia de Software I Curso de Desenvolvimento de Software Prof. Alessandro J de Souza ajdsouza@cefetrn.br 1 Rational Unified Process RUP Fase Construção 2 VISÃO GERAL Fase Construção. Visão Geral 3
Leia maisProgramação Paralela e Distribuída (DCC/UFRJ)
Programação Paralela e Distribuída (DCC/UFRJ) Aula 7: Programação com memória compartilhada usando OpenMP 1, 8, 10 e 15 de abril de 2015 OpenMP (Open MultiProcessing) Projetado para sistemas de memória
Leia maisGestão do Risco e da Qualidade no Desenvolvimento de Software
Gestão do Risco e da Qualidade no Desenvolvimento de Software Questionário Taxinómico do Software Engineering Institute António Miguel 1. Constrangimentos do Projecto Os Constrangimentos ao Projecto referem-se
Leia maisSAFT para siscom. Manual do Utilizador. Data última versão: 07.11.2008 Versão: 1.01. Data criação: 21.12.2007
Manual do Utilizador SAFT para siscom Data última versão: 07.11.2008 Versão: 1.01 Data criação: 21.12.2007 Faro R. Dr. José Filipe Alvares, 31 8005-220 FARO Telf. +351 289 899 620 Fax. +351 289 899 629
Leia maisTutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word
Tutorial Gerar arquivo PDF. Com o objetivo de simplificar e diminuir o tamanho de arquivos anexos nos projetos, elaboramos um pequeno tutorial mostrando como gerar um único arquivo no formato pdf contendo
Leia maisSistema de Informação Integrado da Universidade de Évora
Sistema de Informação Integrado da Universidade de Évora Perfil Candidato MANUAL DE UTILIZAÇÃO Módulo: Candidaturas online (2.º/3.º Ciclo, e outros Cursos não conferentes de Grau) O Módulo de Candidaturas
Leia maisÁrvores Binárias de Busca
Árvores Binárias de Busca Uma Árvore Binária de Busca T (ABB) ou Árvore Binária de Pesquisa é tal que ou T = 0 e a árvore é dita vazia ou seu nó contém uma chave e: 1. Todas as chaves da sub-árvore esquerda
Leia maisActualização para a IPBrick v6.0. 12 de Setembro de 2014
Actualização para a IPBrick v6.0 12 de Setembro de 2014 1 1 Introdução Este documento aborda a processo de migração para a nova IPBrick v6.0. Não é possível fazer o upgrade de uma IPBrick 4.x ou v5.x para
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 07 Arquitetura de Sistemas Operacionais Prof. Maxwell Anderson www.maxwellanderson.com.br Introdução Conceitos já vistos em aulas anteriores: Definição de Sistemas Operacionais
Leia maisEspecificação do 3º Trabalho
Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,
Leia maisAPROG - Civil. Excel. Técnicas de pesquisa de informação em tabelas. Instituto Superior de Engenharia do Porto 2000-2007
APROG - Civil Excel Técnicas de pesquisa de informação em tabelas Instituto Superior de Engenharia do Porto 2000-2007 Elaborado por: António Silva (DEI-ISEP) Pesquisa de Informação em Tabelas O Excel
Leia maisGUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR
Curso Engenharia Informática Ano letivo 2012-2013 Unidade Curricular Arquitectura de Computadores ECTS 6 Regime Obrigatório Ano 2º Semestre 2ºsem Horas de trabalho globais Docente (s) Luis Figueiredo Total
Leia maisRelatório SHST - 2003
Relatório da Actividade dos Serviços de Segurança, Higiene e Saúde no Trabalho Relatório SHST - 2003 Programa de Validação e Encriptação Manual de Operação Versão 1.1 DEEP Departamento de Estudos, Estatística
Leia maisA memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande
A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande região de armazenamento formada por bytes ou palavras, cada
Leia maisGereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios
Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática 3ºAno Disciplina de Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/2010 GereComSaber Sistema de
Leia maisSISTEMA DE PROCESSAMENTO DE AVALIAÇÕES INTERMÉDIAS SPAI
SISTEMA DE PROCESSAMENTO DE AVALIAÇÕES INTERMÉDIAS SPAI Resumo de Configurações e Parametrização Optimizado para EXCEL 2007 Aplicação de suporte e gestão das operações de registo e processamento de avaliações
Leia mais