Estudo sobre a aplicação da Computação Paralela na resolução de sistemas lineares

Tamanho: px
Começar a partir da página:

Download "Estudo sobre a aplicação da Computação Paralela na resolução de sistemas lineares"

Transcrição

1 Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Pós-Graduação em Ciência da Computação Estudo sobre a aplicação da Computação Paralela na resolução de sistemas lineares Aluno: Cleber Roberto Milani Orientador: Prof. Dr. Luiz Gustavo Leão Fernandes Introdução à Pesquisa I Porto Alegre, junho de 2008

2 Conteúdo LISTA DE FIGURAS LISTA DE SÍMBOLOS E ABREVIATURAS iv v Capítulo 1: Introdução Objetivos Organização do trabalho Capítulo 2: Álgebra Linear e Equações Diferenciais Equações Diferenciais Sistemas de Equações Lineares Algébricas Solução de Sistemas de Equações Lineares Métodos Diretos Métodos Iterativos Aplicações práticas de modelagem baseada em EDs e SELAs Método dos Elementos Finitos aplicado à Odontologia EDs e Método dos Elementos Finitos aplicados à Engenharia EDs aplicadas à Física e Matemática Conclusão i

3 Capítulo 3: Computação paralela Contextualização Geral Modelagem de programas paralelos Medidas em Computação Paralela Complexidade de tempo em algoritmos especificados por um DAG Encontrando um DAG ótimo SpeedUP e Eficiência Granulosidade e Escalabilidade Classificação das arquiteturas paralelas Classificações Acadêmicas Classificações Comerciais Paradigmas de programação paralela Task-Farming (ou Master/Slave) Single Program Multiple Data (SPMD) Data Pipelining Divide and Conquer Speculative Parallelism Conclusão Capítulo 4: Computação Paralela aplicada os Métodos Numéricos Paralelização de algoritmos numéricos simples Adição de escalares Produto Interno Adição e Multiplicação de Matrizes Potência de uma Matriz Paralelização dos Métodos Iterativos para resolução de SELAs Paralelização do Método de Jacobi Paralelização de Gauss-Seidel Implementação da paralelização dos métodos iterativos clássicos ii

4 4.4 Conclusão Capítulo 5: Bibliotecas e pacotes para resolução numérica de SELAs com alto desempenho BLAS Basic Linear Algebra Subprograms LINPACK LAPACK Linear Algebra PACKage scalapack - Scalable LAPACK HPL - High Performance Linpack Capítulo 6: Conclusão 64 BIBLIOGRAFIA 65 iii

5 Lista de Figuras 3.1 DAG de um algoritmo para avaliação da expressão (x1 + x2)(x2 + x3). Fonte: [8] DAG de outro algoritmo para avaliação da expressão (x1+x2)(x2+x3). Fonte: [8] Classificação segundo o compartilhamento de memória. Fonte: [Hwa98] apud [19] DAG para soma de 16 escalares utilizando 8 processadores. Fonte: [8] DAG para soma de 16 escalares com 4 processadores. Fonte: [8] Computação paralela da potência de uma matriz n x n. Fonte: [8] Em (a) Grafo de dependências e (b) DAG para função com o grafo de dependências definido por (a). Fonte: Adaptação de [8] DAG para possíveis iterações de Gauss-Seidel Fonte: Adaptação de [8] Grafo para iterações Gauss-Seidel com coloração. Fonte: Adaptação de [8] iv

6 Lista de Símbolos e Abreviaturas ED Equação Diferencial 4 SELA Sistema de Equações Lineares Algébricas 4 EDO Equação Diferencial Ordinária 4 EDP Equação Diferencial Parcial 4 MDF Método das Diferenças Finitas 6 MEF Método dos Elementos Finitos 6 SOR Sucessive Overrelaxation 14 ED Equação Diferencial 16 SISD Single Instruction Stream Single Data Stream 30 SIMD Single Instruction Stream Multiple Data Streams 31 MISD Multiple Instruction Streams Single Data Stream 31 MIMD Multiple Instruction Streams Multiple Data Streams 31 PVM Parallel Virtual Machine 32 MPI Message Passing Interface 32 UMA Uniform Memory Access 32 NUMA Non-Uniform Memory Access 33 NORMA Non-Remote Memory Access 33 RPC Remote Procedure Call 37 SPMD Single Program Multiple Data 37 v

7 SPMD Single Program Multiple Data 38 BLAS Basic Linear Algebra Subprograms 57 vi

8 Resumo Diversos problemas das mais variadas áreas podem ser modelados através de Equações Diferenciais (EDs) e Sistemas de Equações Lineares. Uma equação diferencial é definida em um conjunto infinito de pontos (espaço contínuo), entretanto, para que ela possa ser resolvida computacionalmente, é necessário discretizá-la (criar um espaço discreto e finito), processo esse que implica na solução de sistemas de equações lineares. Um sistema linear é tipicamente composto por "n"equações com "n"variáveis, sendo que quando empregados para discretização de EDs ou modelagem de problemas, os sistemas resultantes costumam apresentar um número elevado de variáveis, o que torna seu processo de solução bastante complexo. Nesse contexto, a computação de alto desempenho surge como ferramenta essencial para viabilizar a execução em tempo viável dos algoritmos que resolvem tais sistemas. Neste trabalho é feita, inicialmente, uma revisão dos conceitos da Álgebra Linear envolvidos na solução de sistemas lineares. Na seqüência é apresentada uma revisão dos diversos aspectos da computação paralela, desde as arquiteturas até os paradigmas de programação existentes. Feita essa contextualização discutese a aplicação da computação paralela nos métodos numéricos e, ao final, são apresentadas as bibliotecas e pacotes de software mundialmente mais utilizados e que representam o estado da arte na solução de sistemas lineares por métodos numéricos.

9 1 Introdução Nos últimos anos tem-se observado que os processadores disponíveis no mercado atingiram freqüências de clock bastante próximas do limite suportado pelas atuais tecnologias, o que tem dificultado crescimentos maiores de sua velocidade. Os fatores que levam a esse cenário de dificuldade são diversos, destacando-se, dentre eles, o aumento do consumo de energia e seus respectivos efeitos colaterais, como dissipação térmica e fenômenos de capacitância e indutância parasitas, por exemplo. Tal situação faz com que o aumento da freqüência dos clocks seja um esforço com custos muito elevados e ganhos, proporcionalmente, muito baixos [20]. Além disso, é importante observar que o crescimento da freqüência do clock, isoladamente, não proporciona aumento considerável no desempenho do computador. Outros aspectos, como a eficiência no acesso à memória, devem acompanhar o crescimento do clock. O comportamento conhecido como Gargalo de von Neumann define que o poder de processamento disponibilizado é limitado em função da taxa de transferência de dados e instruções entre a memória e o processador. Assim, o uso de paralelismo nas arquiteturas é uma estratégia para superar essas limitações [34]. Nesse contexto, a solução encontrada pelas fabricantes tem sido empacotar diversos processadores em um único processador, criando os chamados processadores multi-core [20]. Esse processo deu início à popularização das arquiteturas paralelas entre os usuários domésticos. Em complemento a isso, sabe-se que os fenômenos naturais são inerentemente paralelos, logo, nada mais natural que expressar as computações pertinentes aos mesmos de forma paralela. Em algumas situações a ordem de execução é importante para o melhor entendimento do problema real, mesmo que em outras ela seja irrelevante [32]. Todavia, na computação seqüencial não é possível trabalhar com essa flexibilidade, pois faz-se sempre necessário definir uma 1

10 ordem para a execução das ações. De fato, o nicho original da computação paralela é a computação científica, dado que, além das características de paralelismo inerente, o estudo desses fenômenos exige grande poder de processamento para resolução dos mais diversos algoritmos numéricos. A necessidade original da computação de alto desempenho na computação numérica veio de uma série de contextos envolvendo equações diferenciais parciais, como dinâmicas de fluídos, previsão do tempo, processamento de imagens entre outros. Nessas aplicações existe uma quantidade massiva cálculos a serem realizados, os quais podem ser facilmente decompostos, tornando-os, portanto, candidatos naturais à paralelização [8]. Nos últimos anos tem crescido também o interesse em outros tipos de computação de larga escala, como, por exemplo, análise, simulação e otimização de sistemas de larga escala interconectados, simuladores de filas, dentre outros. Outra categoria de problemas abrange a solução de sistemas de equações gerais, programação matemática e problemas de otimização. Em alguns casos desses problemas, eles podem ser decompostos, porém, a quantidade de subtarefas obtidas na decomposição tende a ser menor e as tarefas mais complexas do que aquelas obtidas no contexto das equações diferenciais parciais. Conseqüentemente, tende-se a utilizar um número menor de processadores mais poderosos, coordenados por um mecanismo de controle mais complexo. Em ambas as classes de aplicação, a preocupação principal é a mesma, a relação entre custo e velocidade. O hardware não deve ser caro a ponto de se tornar proibitivo, entretanto a computação deve terminar em um tempo que seja aceitável para uma determinada aplicação [8]. Cabe observar que, mesmo com o crescimento da velocidade dos processadores, a computação paralela possibilita muitas vezes uma relação custo/benefício melhor que a obtida ao utilizar equipamentos com processadores de última geração. Isso porque, agrupar em um equipamento paralelo processadores mais antigos prove uma alternativa computacional com custo menor e suporte natural a técnicas de tolerância a falhas (característica inerente à redundância de hardware) [34]. Atualmente, decorridos diversos anos de ampla utilização dos sistemas de computação paralela, pode-se ter uma melhor compreensão do potencial e limitações da área. Em muitos casos, a computação paralela representa as melhores esperanças de resolver problemas maiores do que aqueles que se consegue resolver nos dias de hoje [8]. Nesse contexto, este trabalho propõe um 2

11 estudo sobre o paralelismo aplicado aos algoritmos numéricos para resolução de sistemas de equações lineares, problema esse que está presente na grande maioria dos cenários envolvendo computação em larga escala. 1.1 Objetivos Os objetivos desse trabalho consistem em: revisar os conceitos de álgebra linear e computação numérica para resolução de sistemas lineares; revisar tópicos em geral da computação paralela; relacionar a aplicação da computação paralela com sua aplicação para solução de problemas da computação numérica; investigar pacotes e bibliotecas largamente utilizados para resolução de sistemas lineares com computação paralela. 1.2 Organização do trabalho Este trabalho está dividido em seis capítulos, sendo o primeiro deles a presente introdução. O Capítulo 2 apresenta uma revisão sobre equações diferenciais e álgebra linear, focando, principalmente, na solução de sistemas de equações lineares. No Capítulo 3 é feita uma contextualização geral sobre a computação paralela, apresentando modelos de hardware e software para sua exploração e algumas medidas que auxiliam na avaliação do paralelismo. O Capítulo 4 faz a relação entre os dois anteriores, apresentando a aplicação dos conceitos da computação paralela para otimização dos algoritmos numéricos. No Capítulo 5 é feito um estudo de caso de bibliotecas e aplicações que utilizam a computação de alto desempenho para resolução de sistemas lineares. Por fim, o Capítulo 6 apresenta as conclusões resultantes do trabalho. 3

12 2 Álgebra Linear e Equações Diferenciais A Computação Científica sempre teve como uma de suas grandes aplicações possibilitar, através de técnicas de modelagem e simulação, um melhor entendimento dos problemas e fenômenos físicos. Tais fenômenos dependem de variáveis contínuas, ou seja, são funções dessas variáveis, e podem ser representados por Equações Diferenciais (ED). A variável contínua é independente e geralmente corresponde a parâmetros como tempo, velocidade, distância, entre outros. Já a função é uma variável dependente e deve descrever da maneira mais fiel possível o fenômeno que se propunha reproduzir. Essa representação matemática recebe o nome de modelagem [11]. As equações diferenciais são definidas em um conjunto infinito de pontos (espaço contínuo), entretanto, para que possam ser resolvidas computacionalmente, é necessário discretizá-las (criar um espaço discreto e finito), processo esse que implica na solução de sistemas de equações lineares algébricas (SELAs) [17, 12]. Esses sistemas, além de serem utilizados para discretizar as EDs, também podem ser utilizados para modelagem de problemas variados. Um sistema linear é tipicamente composto por n equações com n variáveis, sendo que na modelagem de problemas reais o número de variáveis costuma ser bastante elevado, resultando em sistemas bastante complexos. Este capítulo apresenta inicialmente conceitos básicos sobre as Equações Diferenciais Ordinárias (EDOs) e Equações Diferenciais Parciais (EDPs), que são, em geral, aquelas que modelam os fenômenos ou problemas. Na seqüência, é feita uma revisão sobre os sistemas de 4

13 equações lineares e alguns métodos para resolução dos mesmos. Ao final, são apresentados alguns casos que exemplificam o uso da modelagem e simulação computacional em problemas de áreas variadas do conhecimento. 2.1 Equações Diferenciais Uma Equação Diferencial é aquela cujas incógnitas são funções que aparecem na equação sob a forma das respectivas derivadas. As equações diferenciais podem ser de dois tipos [11, 17]: Equações Diferenciais Ordinárias: envolvem uma função desconhecida e algumas de suas derivadas. As incógnitas dependem de apenas uma variável independente e a equação contém apenas derivadas totais. Podem ser escritas na forma: F(x,y(x),y (x),y (x),y 3 (x),...,y n 1 (x),y n (x)) = 0,n 1 (2.1) Equações Diferenciais Parciais: envolvem funções com mais de uma variável independente, ou seja, estabelecem relações entre uma variável dependente de duas ou mais variáveis independentes. Nesse caso as derivadas são parciais. Uma equação que descreve uma variável dependente u em termos de duas variáveis x e t é escrita na forma: ( u x, u x,u,d) = A 2 u x 2 + B 2 u x t + C 2 u t 2 (2.2) onde A, B, C e D podem ser constantes ou funções das variáveis independentes. Uma derivada parcial de uma função com dois ou mais argumentos é a sua derivada em relação a uma daquelas variáveis, mantendo as demais constantes. Considerando como exemplo a fórmula para cálculo do volume de um cone [11], tem-se que ela depende da altura h e do raio r: V = r2 hπ 3 (2.3) a derivada parcial de V com relação a r define a taxa com que o volume do cone cresce conforme seu raio aumenta mantendo-se a altura constante. Pode ser escrita como: 5

14 V r = 2rhπ 3 (2.4) A solução de uma ED é uma função que, além de satisfazer a equação dada, não contém derivadas nem diferenciais e pode existir ou não e, ainda, caso exista, pode ser única ou não. Existem três tipos de soluções para EDs: a geral (solução que contém tantas constantes arbitrárias quantas forem as unidades da ordem de integração), a particular (solução deduzida da solução geral atribuindo-se valores particulares às constantes) e a solução singular (solução não deduzida da solução geral e que só existe em alguns casos). A equação 2.1 possui uma família de soluções, para especificar uma das curvas que formam a família de soluções precisamos impor condições adicionais na função Y, as quais são chamadas condições iniciais. O problema com as condições iniciais é chamado de problema de valor inicial ou problema de condições iniciais. Além dos problemas de valores iniciais, podemos ter problemas com condições de contorno, isto é, além da condição no início do fenômeno, temos também uma condição a atingir no fim do fenômeno [17]. A solução analítica de equações diferenciais é, em geral, impraticável, o que leva à grande utilização de métodos numéricos que, por sua vez, substituem a solução exata analítica por uma solução aproximada. Porém, para que as EDs possam ser resolvidas computacionalmente, faz-se necessário discretizá-las, uma vez que elas são definidas em um conjunto infinito de pontos. Existem vários métodos que podem ser utilizados para esse propósito, dentre os quais se destacam o Método das Diferenças Finitas (MDF) e Método dos Elementos Finitos (MEF), cada um apresenta vantagens e desvantagens, cabendo ao usuário definir qual será utilizado. Entretanto, os métodos têm em comum o fato de que implicam na resolução de sistemas de equações algébricas lineares [12, 18, 30], que é o foco do presente trabalho. 2.2 Sistemas de Equações Lineares Algébricas Diversos problemas da Matemática Numérica são modelados em termos de um Sistema de Equações Lineares Algébricas. Isso vale em geral para o tratamento numérico de equações funcionais lineares que ocorrem, entre outras, como equações diferenciais parciais ou ordinárias 6

15 e equações integrais. Um sistema linear é tipicamente composto por n equações com n variáveis e pode ser escrito da seguinte forma [17]: A x = y (2.5) onde A é uma matriz formada pelos coeficientes, x é o vetor das incógnitas do sistema, as quais deverão ser encontradas, e y é o vetor dos termos independentes. A teoria sobre SELAs é oriunda da álgebra linear e não será aprofundada neste trabalho, uma vez que o foco do mesmo é o tratamento numérico que a resolução desses sistemas requer. Dado que a solução numérica dos SELAs baseia-se em conceitos de matrizes, algumas definições básicas, as quais serão usadas no decorrer do trabalho, são rapidamente revisadas a seguir [17, 33]: 1. Uma matriz que possui o mesmo número de linhas m e colunas n é dita matriz quadrada; 2. Uma matriz em que todos os elementos que não compõem a diagonal principal valem zero ( (i,j),i j a ij = 0) e os elementos da diagonal principal têm valor diferente de zero ( (i,j),i = j a ij 0) é dita matriz diagonal; 3. Uma matriz onde os elementos da diagonal principal e os acima dela são diferentes de zero ( (i,j),i < j a ij 0) e aqueles abaixo da diagonal principal são iguais a zero ( (i,j),i > j a ij = 0) é dita matriz triangular superior; 4. Uma matriz onde os elementos da diagonal principal e os abaixo dela são diferentes de zero ( (i,j),i > j a ij 0) e aqueles acima da diagonal principal são iguais a zero ( (i,j),i < j a ij = 0) é dita matriz triangular inferior; 5. Se a diagonal principal tiver seus elementos nulos ( (i,j),i = j a ij = 0), as matrizes definidas nos itens 3 e 4 são ditas estritamente superior e estritamente inferior, respectivamente; 6. As matrizes quadradas têm um determinante definido por uma fórmula recursiva: det(a) ou A = a 11 M 11 a 12 M 12 + a 12 M onde M 1k é o determinante da matriz obtida de A 1 eliminando sua linha 1 e coluna k; 7

16 7. Uma matriz cujo determinante é diferente de 0 é dita matriz regular ou não singular; 8. Chama-se tranposta de A à matriz A T obtida convertendo-se as linhas de A em colunas e as colunas em linhas; 9. Se A = A T, então A é dita matriz simétrica; 10. Uma matriz que possui aproximadamente 80% ou mais de seus elementos nulos é dita matriz esparsa. Esse tipo de matriz ocorre freqüentemente nos problemas práticos, principalmente naqueles modelados por EDPs; 11. Uma matriz na qual todos os elementos não nulos concentram-se na vizinha da diagonal principal é dita matriz banda; 2.3 Solução de Sistemas de Equações Lineares Os métodos para resolver sistemas de equações lineares são divididos em duas classes: métodos diretos e indiretos. Um método é dito direto quando, através da aplicação de um número finito de operações aritméticas, chega-se a uma solução exata, ou seja, com precisão infinita. Já os métodos indiretos, mais conhecidos como iterativos, baseiam-se na repetição de uma seqüência finita de repetição de operações que objetivam aproximar a solução. A solução de sistemas lineares em uma máquina apresenta erro tanto ao utilizar os métodos diretos como utilizando os iterativos. Nos algoritmos diretos a solução apresenta erros causados pelo arredondamento, o erro total é composto pela soma do erro de entrada, ou seja, aquele resultante da representação do SELA no sistema de ponto flutuante da máquina, com o erro de aritmética, também devido à representação no sistema de ponto flutuante. No caso dos sistemas iterativos, além desses dois erros, soma-se ainda o erro de discretização que advém do fato de truncarmos (cortarmos) a seqüência infinita de repetições após um número finito de iterações [17]. 8

17 2.3.1 Métodos Diretos Os métodos diretos são aqueles que após a aplicação de um número finito de operações aritméticas elementares obtêm uma solução exata. Existem diversos métodos desse tipo, e em geral eles aplicam-se mais eficientemente a matrizes (ou sistemas lineares) densas. Serão abordados apenas apenas os métodos de Gauss, com algumas alterações do mesmo, e a Fatoração LU. Os algoritmos que implementam computacionalmente esses métodos não serão apresentados neste trabalho e podem ser encontrados em [17] e [7]. Eliminação de Gauss É o método direto mais utilizado para resolver SELAs densos de pequeno (matrizes de ordem até 30) e médio (ordem até 50) porte. Para os sistemas densos de grande porte, bem como para os sistemas esparsos de qualquer porte, existem outras técnicas mais eficientes. O algoritmo básico de Gauss, em essência, nada mais é do que a aplicação esquemática das propriedades fundamentais da álgebra linear. Pode ser dividido em duas etapas: triangularização da matriz e retrosubstituição das variáveis [17]. A triangularização consiste em transformar a matriz A em uma matriz triangular superior U aplicando para isso as seguintes operações: adição de uma linha com um múltiplo de outra linha e substituição de uma dessas linhas pelo resultado da adição; multiplicação de uma linha por uma constante; troca de linhas. A cada passo o elemento de diagonal da primeira linha da matriz-resto é chamado pivô. O segundo passo, a retrosubstituição, consiste no cálculo do vetor x, solução de A x = y através da substituição do último componente de x nas equações anteriores [17, 33]. Eliminação de Gauss com Pivotamento Dependendo do sistema, o algoritmo básico de Gauss pode apresentar problemas no que diz respeito aos resultados. Esses problemas consistem em erros causados pelos erros de arredondamento, sendo que, nos casos em que o elemento pivô for muito pequeno o erro aumenta. Visando a minimizá-lo, surge a idéia do algoritmo de Gauss com pivotamento, o qual nada mais é do que 9

18 o mesmo algoritmo anterior, porém com uma troca sistemática das linhas [17]. A idéia do algoritmo com pivotamento é buscar sempre colocar na posição de pivô o elemento com maior valor absoluto. Para isso, deve-se freqüentemente trocar linhas e colunas não somente quando o pivô tem valor zero, mas também quando seu valor for muito pequeno. Quando a escolha do pivô considera apenas determinada coluna, diz-se que o algoritmo é de Pivotamento Parcial, e, nos casos em que escolha do pivô considera toda a matriz resto, diz-se que o algoritmo é de Pivotamento Total. Cabe observar, porém, que a melhora de precisão proporcionada por este método costuma não ser vantajosa quando considerada em conjunto com o aumento que o método introduz na complexidade do algoritmo [17], ficando a cargo de que desenvolve a aplicação decidir o que é mais vantajoso em cada caso. Condicionamento de uma matriz Um problema é dito mal condicionado quando pequenas alterações nos valores de entrada acarretam em grandes erros no resultado final. No caso de SELAs de ordem 2 esse condicionamento pode ser visualizado graficamente de maneira simples, entretanto, em sistemas de ordem maior o procedimento de traçar e analisar o gráfico é muito difícil. Assim, é necessário um meio de medir o condicionamento [17]. O condicionamento é dado por: cond(a) = A. A 1 (2.6) onde A é a norma da matriz A. Quanto maior o valor de cond(a), mais sensível é o sistema. O condicionamento é uma medida interessante porque métodos como o de Gauss, mesmo com pivotamento, não produzem nenhuma estimativa sobre a exatidão da solução quando executados em uma máquina. Com o condicionamento pode-se determinar o quão confiável é a solução do SELA. O condicionamento é um número do qual interessa a ordem de grandeza e, além disso, está relacionado com a precisão de máquina usada. Se cond(a) = 10 5 mas a precisão decimal da máquina for de 17 casas, então não há problema em se perder os últimos cinco dígitos. Porém, se a precisão decimal for de apenas 6 casas decimais, então o resultado será confiável apenas até a primeira casa decimal [17]. 10

19 Existem alguns métodos que são particularmente úteis no caso de matrizes mal condicionadas, porém não serão abordados neste trabalho. Um exemplo é o Método de Kaczmarz, o qual pode ser encontrado em [9]. Método de Gauss-Jordan É um método direto complementar ao método de Gauss. Consiste em transformar a matriz A em uma matriz diagonal, o que é feito em 3 passos: transformação de A y em uma matriz triangular superior; transformar o resultado em uma matriz triangular inferior; solução do sistema diagonal resultante. Esse método requer um número maior de operações que a eliminação de Gauss sendo, portanto, menos eficiente para resolver sistemas do tipo A x = y [17]. Decomposição LU Também conhecido como Fatoração LU, esse método consiste em transformar a matriz A em um produto de duas outras matrizes L e U, onde L é a matriz triangular inferior e U a matriz triangular superior. É um dos métodos mais empregados para resolução de SELAs, principalmente para sistemas densos de grande porte. Algumas vantagens dos processos de fatoração é que eles permitem resolver qualquer sistema que tenha A como matriz de coeficientes e no caso de o vetor y ser alterado, a resolução do novo sistema é quase imediata. Em princípio seria necessário realizar cálculos com matrizes inversas para encontrar as matrizes L e U, entretanto, na prática, pode-se calcular L e U com a simples aplicação da definiçâo de produto e de igualdade de matrizes, ou seja, impondo que LU = A. Para resolução de SELAs A x = y de ordem n, se A satisfaz as condições para fatoração LU, então o sistema pode ser escrito na forma LU x = y. Faz-se então U x = b e a equação fica reduzida a L b = y. Resolve-se o sistema triangular inferior L b = y para obter o vetor b. Na seqüência b é substituído em U x = b e obtém-se o sistema triangular superior cuja solução é o vetor x. Logo, a solução de SELAs através de fatoração LU consiste na solução de dois sistemas triangulares [7]. 11

20 2.3.2 Métodos Iterativos Os métodos iterativos consistem em arbitrar valores iniciais para x 0 e, a partir deles, repetir uma seqüência de passos em que, a cada passo, a aproximação inicial é modificada para se aproximar da solução. Essas modificações são chamadas passos de relaxação. O processo é interrompido quando o vetor de soluções chegar a uma vizinhança suficientemente próxima da solução exata, o que é definido através de um parâmetro chamado critério de parada. Assim, o número de iterações que serão executadas é desconhecido e a solução do sistema será dada pelo vetor encontrado na última iteração [30, 17]. Os métodos iterativos são mais indicados do que os diretos para resolver sistemas esparsos, pois os algoritmos diretos não levam em conta uma propriedade importante desses sistemas que é o fato de que muitas operações não precisam ser feitas ao resolvê-los, fator esse que é considerado nos métodos iterativos [17]. A idéia mais simples de um algoritmo iterativo para resolver A x = y é obtida, resolvendo-se a primeira equação para x 1, a segunda para x 2 e assim sucessivamente. Generalizando temos [17]: x i = 1 a ii (y i a i1 x 1 a i2 x 2 a i,i 1 x i 1 a i,i+1 x i+1 a in x n ) (2.7) onde são conhecidos os valores x 1,x 2,...,x i 1,x i+1,...,x n usados no lado direito. Assim, os métodos iterativos podem ser facilmente deduzidos dividindo-se a matriz A da equação A x = y em uma soma de duas matrizes mais simples. Se A = S T então A x = y será o mesmo que S x = T x + y. Dessa forma podemos experimentar a seguinte iteração [33]: S x k+1 = T x k + y (2.8) Naturalmente apenas isso não garante que o método seja adequado. Para o resultado ser correto, a divisão da matriz A deve satisfazer dois requisitos: o novo vetor x k+1 deve ser fácil de computar, dessa forma, S deve ser uma matriz simples e invertível e deve também ser diagonal ou triangular; a seqüência x k deve convergir para a solução verdadeira x. A matriz S é também chamada de pré-condicionador e sua escolha é crucial na análise numérica, pois dessa escolha dependem os critérios de convergência e a eficiência do método [33]. Simplificando, pode-se 12

21 dizer que um pré-condicionador é qualquer forma de modificação de um sistema linear original, seja ela implícita ou explícita, que faz com que o sistema possa ser mais facilmente resolvido por um método iterativo [30]. A escolha da matriz S determina o método iterativo que teremos. Existem diversas alternativas para decomposição, as mais populares são os tipos L, D e U, onde L é a matriz triangular estritamente inferior; U a matriz triangular estritamente superior; D a matriz diagonal. Cabe observar que a matriz D, por definição, não pode conter zeros na diagonal principal, caso isso aconteça, deve-se trocar linhas ou colunas na matriz. Além disso, o erro contido na solução será diretamente proporcional ao tamanho dos coeficientes da equação de recorrência, ou seja, organizando-se a matriz de modo a deixar os maiores elementos na diagonal, tende-se a ter um erro menor [33]. Na seqüência são apresentados os métodos iterativos mais populares, os quais surgem de acordo com a escolha dos pré-condicionadores citados. Assim como nos métodos diretos, não serão apresentados os algoritmos que implementam esses métodos computacionalmente, os quais podem ser encontrados em [17, 30]. Cabe ainda observar que esses métodos são chamados esquemas de relaxação pontual, pois atualizam um componente por vez, e podem ser generalizados para esquemas de relaxação de blocos, onde atualiza-se um conjunto inteiro de valores a cada passo [30]. Método de Jacobi É obtido considerando-se a decomposição A = D L U. Como A = S T pode-se obter S = D e T = L + U que substituindo em (2.8) implica em D x = (L + U) x + y. Isolando-se o vetor das incógnitas e o reescrevendo de acordo com (2.7) tem-se a equação iterativa do Método de Jacobi, a qual, na forma matricial é dada por [33, 30]: x k+1 = D 1 (L + U) x k + D 1 y (2.9) Reescrevendo na forma de componentes tem-se o passo: x k+1 i = 1 a ii (y i n j=1;j i a ij x k j) i = 1,...,n. (2.10) 13

22 Um inconveniente do método de Jacobi é que ele requer que se mantenham armazenados todos os componentes de x k até que o cálculo de x k+1 esteja completo, o que dependendo do tamanho das matrizes pode ser um problema. Uma abordagem mais natural e que requer apenas a metade do armazenamento é começar a utilizar cada componente do novo vetor x k+1 conforme for computado, deixando então x k livre para ser destruído. É o que ocorre no método de Gauss-Seidel [33, 17]. Método de Gauss-Seidel Neste método considera-se S = D + L e T = -U. Portanto, a equação na forma matricial do método é definida como [33, 30]: x k+1 = (D L) 1 U x k + (D L) 1 y (2.11) Cujo passo iterativo na forma de componentes é: x k+1 i = 1 i 1 ( a ij xi k+1 a ii j=1 n j=i+1 a ij x k j + y i) i = 1,...,n. (2.12) Em geral, o método de Gauss-Seidel converge mais rapidamente do que o método de Jacobi, entretanto, há casos em que isso não acontece, bem como também há casos em que um método converge e outro não [33]. Método de Relaxamento Sucessivo O método de Gauss-Seidel obtém o valor de uma incógnita na interação k somando o valor da mesma na interação k 1 com uma correção calculada com base em todas as variáveis. Após anos de utilização desse método percebeu-se que a convergência pode ser acelerada com introdução de um fator ω de relaxamento, ou seja, atribuindo-se um peso a essa correção. Atribuindose o valor 1 para ω continuamos com Gauss-Seidel, já com valores em que ω > 1 o método passa a utilizar essa aceleração e é conhecido como Método de Relaxamento Successivo (Sucessive Overrelaxation - SOR). A escolha do melhor valor para ω depende de cada problema, embora nunca seja maior do que 2 e, em geral, fica próximo de 1.9 [33]. 14

23 Considerando-se novamente a decomposição A = L D U e ponderando a correção com ω, a equação matricial do método SOR é dada por [33, 30]: (D ωl) x k+1 = [ωu + (1 ω)d] x k + ω y (2.13) Cujo passo iterativo na forma de componentes é: x k+1 i = ω( 1 i 1 ( a ij x k+1 i a ii j=1 n j=i+1 a ij x k j + y i )) + 1(1 ω)x k i i = 1,...,n. (2.14) A busca do valor ótimo para ω foi o foco das pesquisas por diversos anos, em [33] são apresentados os passos que levaram à conclusão de que a escolha ótima é aquela que faz com que o maior autovalor de L seja o menor o possível. Em uma matriz de ordem 21, por exemplo, podese obter com um passo SOR o resultado que o método de Jacobi levaria 30 passos para alcançar e, ainda, com uma redução do erro em 25%. Esse é considerado um resultado muito bom gerado a partir de uma idéia bastante simples. Sua aplicação real, entretanto, não é em problemas de uma dimensão, pois os sistemas A x = y nesses casos são simples de serem resolvidos, mas naqueles com mais dimensões, como por exemplo na solução de equações diferenciais parciais [33]. 2.4 Aplicações práticas de modelagem baseada em EDs e SELAs Conforme colocado anteriormente, diversas são as áreas que utilizam a modelagem e simulação para resolver e obter uma melhor compreensão dos mais variados problemas. As equações diferenciais têm inúmeras aplicações práticas em medicina, engenharia, química, biologia etc, onde as soluções dessas equações são empregadas no processamento de imagens, projeto de pontes, automóveis, aviões, dentre outros. Esta seção exemplifica brevemente algumas dessas aplicações. 15

24 2.4.1 Método dos Elementos Finitos aplicado à Odontologia O desenvolvimento do Método dos Elementos Finitos iniciou-se no final do século XVIII, quando Gauss propôs a utilização de funções de aproximação para a solução de problemas matemáticos. Conforme visto anteriormente, consiste na discretização de um meio contínuo (EDs), mantendo as mesmas propriedades do meio original e seu uso só se tornou viável com o advento dos computadores para solucionar os enormes SELAs gerados na solução do MEF [29]. O MEF vem sendo utilizado há alguns anos em experimentos relacionados às mais diversas especialidades da Odontologia, em [29] os autores apontam uma série desses trabalhos. A utilização do MEF nesses casos traz diversas vantagens se comparada aos métodos tradicionais, dentre as quais cabe destacar: não há necessidade de laboratórios super equipados com instrumentos específicos, o que reduz os custos dos experimentos; as formas geométricas podem ser representadas mais próximas das reais, enquanto métodos tradicionais costumam trabalhar com formas ideais; os resultados numéricos apresentam maior exatidão, ao contrário das abordagens analíticas que costumam trazer resultados simplificados; os experimentos são mais fáceis de conduzir e reproduzir do que aqueles que utilizam seres vivos e tendem a ter resultados mais exatos devido ao maior controle da situação [29]. O MEF é aplicado na Ortodontia para: estudo da distribuição das tensões durante o movimento dentário; estudo do efeito de forças ortopédicas no complexo craniofacial; avaliação da resistência de base de braquetes e do desempenho de molas para fechamento de espaços, dentre outros. Esses estudos obtêm informações, por exemplo, sobre o comportamento dos tecidos e movimentos do complexo maxilar, o que permite otimizações no uso de aparelhos e em implantes dentários [29] EDs e Método dos Elementos Finitos aplicados à Engenharia Em todas as áreas da engenharia uma série de situações podem ser simuladas através de equações diferenciais. Um problema freqüente na engenharia civil e engenharia mecânica é análise das tensões e deformações de materiais, o qual é facilmente modelado por EDPs. Na engenharia geotécnica um fenômeno muito conhecido é o fluxo de água em meios porosos, que é 16

25 analisado, por exemplo, em casos de barragens de terra com fluxo e enchimento estacionários, ou seja, em que a carga hidráulica não varia com o tempo. Outra aplicação é a análise das barragens de terra com fluxo transiente, ou seja, em que o nível de água pode variar em condições rápidas, levando a uma variação na umidade do material e, conseqüentemente, da condutividade elétrica do mesmo. Nesse caso, a modelagem é dada por uma equação diferencial em que são definidas condições de contorno e condições iniciais [12]. A engenharia elétrica também aplica equações diferenciais em diversos estudos, dentre eles, pode-se citar a análise de capacitância, indutância e diferenças de potencial dos circuitos elétricos. Já na Engenharia Química, um procedimento bastante comum é efetuar balanceamentos de massa, volume ou energia em um determinado sistema, como um reator químico, por exemplo, modelagem que pode ser feita através de uma EDO [11] EDs aplicadas à Física e Matemática Diversas fórmulas bastante conhecidas da Física e Matemática são oriundas de ou podem ser vistas como equações diferenciais, a segunda Lei de Newton ( F = m a) é um exemplo. Outra lei de Newton que consiste em uma ED é a Lei de Resfriamento, a qual diz que a taxa de variação da temperatura de um corpo em resfriamento é proporcional à diferença entre sua temperatura atual e a temperatura constante do meio ambiente. Cálculos de trajetórias, escoamento de fluídos, a Lei de Hooke, a Equação da Onda, Equações de Maxwell, Equação do Calor, Lei de Torricelli, enfim, grande parte dos problemas cotidianos da física podem ser modelados por EDs [11]. No contexto da matemática essa situação se repete. O estudo das dinâmicas de populações baseia-se em equações diferenciais que modelam o crescimento ou decaimento da população ao longo do tempo (modelos de Malthus e Verhulst). Um exemplo da matemática financeira modelada por EDPs é o cálculo de juros e investimentos. Considerando uma caderneta de poupança que recebe um investimento inicial, o crédito dos juros mensais e também depósitos adicionais contínuos, podem-se relacionar esses parâmetros por uma ED para obter informações do tipo: qual deve ser o valor dos depósitos adicionais para atingir o objetivo de acumular um determinado valor em um período de tempo [11]. 17

26 2.5 Conclusão As equações diferenciais são uma das principais ferramentas dos cientistas nas mais variadas áreas do conhecimento. Entretanto, a solução analítica dessas equações é bastante complicada. A alternativa, que é a solução numérica, era impraticável no passado mas tornou-se viável graças aos avanços da computação, principalmente, nas últimas duas décadas, o que tem possibilitado diversos avanços na simulação e otimização de problemas. A solução numérica das EDs exige uma discretização a qual é feita, em geral, pelos Métodos das Diferenças Finitas e Métodos dos Elementos Finitos, em ambos os casos o processo resulta na necessidade de resolver sistemas de equações lineares algébricas. Além disso, muitos problemas podem ser modelados diretamente na forma de sistemas lineares, assim como a resolução de outros tipos de equações e modelos teóricos passa por passos em que é necessário resolver SELAs. Essas realidades demonstram a importância de pesquisar constantemente maneiras para otimizar os métodos de solução tanto em termos de eficiência como de precisão. 18

27 3 Computação paralela A perspectiva da exploração do paralelismo nos sistemas computacionais é tão antiga quanto os primeiros computadores. Trabalhos desenvolvidos por von Neumann, na década de 40, já ponderavam a possibilidade de utilizar algoritmos paralelos. Registros apontam que no período de 1944 a 1947 Stibitz e Williams teriam desenvolvido, nos laboratórios da Bell Telephone, aquele que é considerado um dos primeiros trabalhos envolvendo paralelismo com implementação em hardware, o sistema MODEL V. Esse sistema era formado por dois processadores e três canais de entrada e saída, possibilitando a execução simultânea de dois programas distintos [34]. Durante essa trajetória, o emprego do paralelismo já passou por fases de extremo otimismo, quando era visto como única e promissora solução para as mais complexas aplicações computacionais, bem como por fases pessimistas, nas quais foi encarado como um nicho de mercado decadente [32]. Nos últimos anos a computação paralela avançou muito e, atualmente, está presente em todos os níveis da computação indo desde o paralelismo de instruções em um pipeline, passando pelos processadores multi-core, colocados como solução para os problemas de limitação no crescimento do clock, até sistemas distribuídos de larga escala como as grades computacionais. Neste capítulo serão inicialmente abordados aspectos gerais da computação paralela e definidos alguns conceitos fundamentais da área. Na seqüência, discute-se a necessidade de modelos para desenvolvimento de software e algumas medidas utilizadas na computação paralela são descritas. Feito isso, são apresentadas as classificações dos sistemas paralelos em relação à arquitetura de hardware. Por fim, são abordados os paradigmas de programação utilizados para exploração desses sistemas. 19

28 3.1 Contextualização Geral Muitas vezes os termos computação paralela e computação distribuída são utilizados em conjunto, é importante, no entanto, saber que podem tratar-se de sistemas diferentes. Uma distinção inicial é dizer que os sistemas de computação paralela são aqueles compostos por um conjunto de processadores fisicamente próximos, os quais têm como objetivo trabalhar conjuntamente para resolver um problema e se comunicam de forma confiável e previsível. Os sistemas distribuídos, por outro lado, seriam aqueles cujos processadores podem estar geograficamente distribuídos e entre os quais a comunicação é uma questão mais problemática, dado que mensagens podem ser perdidas ou serem entregas com atraso desconhecido. A topologia do sistema distribuído pode ser alterada em tempo de execução, seja devido a problemas de comunicação como links quebrados ou nós que deixam de funcionar ou pela adição/remoção de processadores. Além disso, os sistemas distribuídos apresentam pouco ou nenhum controle centralizado, cada processador pode estar executando suas próprias atividades ao mesmo tempo que coopera com o SD [8]. Assim, pode-se dizer que os sistemas paralelos são aqueles cujo hardware é dedicado e tende a ser homogêneo, enquanto na computação distribuída o hardware é mais heterogêneo e a computação distribuída em si pode ser apenas uma atividade secundária do sistema. Essa diferenciação é importante, pois, embora não exista uma linha clara dividindo os dois, ajuda a perceber que cada caso possui questões próprias, mesmo que muitas delas sejam compartilhadas e possuam, inclusive, soluções semelhantes [8]. 3.2 Modelagem de programas paralelos A compreensão do inter-relacionamento entre as características de um algoritmo paralelo e as da arquitetura em que ele irá executar é fundamental, pois para que o processamento possa ter desempenho otimizado em uma arquitetura paralela é necessário haver equilíbrio entre as características do hardware e software. Entretanto, as arquiteturas para processamento paralelo estão em constante evolução e, portanto, nenhuma arquitetura pode ter a expectativa de se manter como solução ideal por mais do que alguns anos. Assim, buscando contornar o problema da falta 20

29 de portabilidade e curto tempo de vida útil do software paralelo, surgiu a idéia da criação de modelos suficientemente abstratos que possibilitem ocultar os aspectos da arquitetura e manter o desempenho da aplicação quando houver mudanças do hardware [34, 32]. Os autores de [32] argumentam que um modelo desse tipo pode ser construído da seguinte forma: adota-se uma máquina abstrata para a qual o software é desenvolvido e a máquina, por sua vez, é emulada pelas diferentes arquiteturas paralelas. Dessa forma, os aspectos do projeto de software podem ser desassociados daqueles de sua implementação. Argumentam ainda que um modelo ideal deve atender algumas necessidades mínimas: oferecer facilidade e metodologias para o desenvolvimento de software, ser independente de arquitetura, ser de fácil compreensão, apresentar garantias de desempenho e medidas de custo. Uma classificação dos modelos para desenvolvimento de software paralelo, utilizando como critério o nível de abstração com que o paralelismo pode ser explorado, é sugerida em [32]. As categorias apresentadas são as seguintes: Modelos nos quais o paralelismo é explorado de forma totalmente implícita; Modelos com assinalamento do paralelismo explícito; Modelos com assinalamento e decomposição do paralelismo explícitos; Modelos com assinalamento, decomposição e mapeamento do paralelismo explícitos; Modelos com assinalamento, decomposição, mapeamento e comunicação explícitos; Modelos em que o paralelismo é explorado de forma totalmente explícita [32]; Os esforços da comunidade científica têm sido direcionados para os modelos de mais alto nível, os quais buscam facilitar a programação [34]. O OpenMP, API para desenvolvimento de aplicações paralelas em arquiteturas de memória compartilhada, embora não seja um modelo, pode também ser visto como um esforço no sentido de facilitar a programação. O programador OpenMP precisa apenas delimitar, através de diretivas de compilação, os trechos paralelizáveis do código, sem se preocupar com aspectos de sincronização e comunicação. Feito isso, os compiladores geram automaticamente o código paralelo [20]. Entretanto, até os dias de hoje nenhum modelo que atendesse as necessidades propostas por [32] foi desenvolvido. Neste trabalho os algoritmos serão apresentados graficamente através de DAGs (Directed Acyclic Graphs ou Grafos Dirigidos Acíclicos), uma modelagem independente de hardware e das questões de comunicação que permite a visualização do problema em um alto grau de abstração. 21

30 Um grafo acíclico dirigido é um grafo dirigido sem ciclos, isto é, para qualquer vértice v, não há nenhum caminho dirigido começando e acabando em v. Seja G = (N,A) um DAG, onde N = {1,...,N} é o conjunto de nós e A é o conjunto dos arcos dirigidos, cada nó representa uma operação que pode ser feita pelo algoritmo e os arcos as dependências de dados. Em particular, um arco (i,j) A indica que a operação correspondente ao nó j usa o resultado da operação correspondente ao nó i. As operações podem ser elementares, como a adição de dois escalares, ou operações de alto nível, como a execução de uma subrotina. A Figura 3.1 exemplifica essa modelagem, o algoritmo representado corresponde à expressão (x1+x2)(x2+ x3). O símbolo dentro de cada nó ilustra a operação por ele realizada, sendo que S corresponde a operação elevação ao quadrado (square) [8]. Figura 3.1: DAG de um algoritmo para avaliação da expressão (x1 + x2)(x2 + x3). Fonte: [8]. Um nó i N é dito predecessor de outro nó j N se (i,j) A. Define-se como grau de entrada de um nó i N o número de predecessores desse nó e como grau de saída o número de nós dos quais i é predecessor. Os nós com grau zero de entrada são chamados nós de entrada e os nós com grau zero de saída são ditos nós de saída. O conjunto de todos os nós de entrada é representado por N 0. Um caminho positivo é uma seqüência i 0,...,i k de nós tais que (i k,i k+1 ) A para k = 0,...,K 1, onde K é dito o tamanho do caminho. Denota-se por D a profundidade de um DAG, a qual é dada pelo tamanho do maior caminho positivo. Considerando x i o resultado da operação correspondente ao i-ésimo nó do DAG, então o DAG 22

31 pode ser visto como uma representação de dependências funcionais na forma [8]: x i = f i ({x j /j precede i}) (3.1) Nessa representação, f i é uma função descrevendo a operação correspondente ao i-ésimo nó. Se i é um nó de entrada, então x i não depende de outras variáveis e é visto como uma variável de entrada externa. Assim, a operação correspondente a um nó de entrada i é essencialmente o tempo gasto para ler o valor da variável de entrada x i, o qual assume-se como insignificante. Para um nó i que não é de entrada (i N 0 ), assume-se que a operação correspondente, ou seja, a avaliação da função f i, demora uma unidade de tempo. Entretanto, essa premissa somente é razoável quando cada nó representa uma operação aritmética, pois em algoritmos numéricos mais complicados o tempo de execução em cada nó pode ser bastante diferente. Por isso, utilizase a definição auxiliar de escalonamento descrita a seguir [8]. Um DAG é uma representação apenas parcial do algoritmo, a qual especifica que operações acontecem sob quais operandos e impõe restrições de precedência entre elas. Para representar completamente o algoritmo paralelo é preciso ainda especificar qual processador será responsável por cada operação e em que tempo isso acontecerá. Para isso, assume-se p como sendo o conjunto dos processadores disponíveis e também que cada processador é capaz de fazer qualquer uma das operações desejadas. Para cada nó i que não é um nó de entrada (i N 0 ), representa-se por P i o processador para o qual foi designada a responsabilidade de realizar a operação i. Também para i N 0, assume-se t i como uma variável inteira positiva que especifica o tempo que leva para a operação correspondente ao nó i ser completada. Nenhum processador é designado para os nós de entrada e utiliza-se a convenção t i = 0 para cada nó de entrada i. Existem duas restrições que precisam ser impostas [8]: Um processador pode realizar no máximo uma operação por vez, logo (i N 0,j N 0,i j,t i = t j ) P i P j. (i,j) A t j t i +1. Ou seja, se existe uma aresta entre um nó i e outro j, a operação correspondente ao j somente pode iniciar após a operação do nó i estar completa. 23

Estudaremos métodos numéricos para resolução de sistemas lineares com n equações e n incógnitas. Estes podem ser:

Estudaremos métodos numéricos para resolução de sistemas lineares com n equações e n incógnitas. Estes podem ser: 1 UNIVERSIDADE FEDERAL DE VIÇOSA Departamento de Matemática - CCE Cálculo Numérico - MAT 271 Prof.: Valéria Mattos da Rosa As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia

Leia mais

O ENSINO DE CÁLCULO NUMÉRICO: UMA EXPERIÊNCIA COM ALUNOS DO CURSO DE CIÊNCIA DA COMPUTAÇÃO

O ENSINO DE CÁLCULO NUMÉRICO: UMA EXPERIÊNCIA COM ALUNOS DO CURSO DE CIÊNCIA DA COMPUTAÇÃO O ENSINO DE CÁLCULO NUMÉRICO: UMA EXPERIÊNCIA COM ALUNOS DO CURSO DE CIÊNCIA DA COMPUTAÇÃO Prof. Leugim Corteze Romio Universidade Regional Integrada URI Campus Santiago-RS leugimcr@urisantiago.br Prof.

Leia mais

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

Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento Ramon Pereira Lopes Rangel Silva Oliveira 31 de outubro de 2011 1 Introdução O presente documento refere-se ao relatório

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

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

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 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 Cronograma das Aulas. Hoje você está na aula Semana

Leia mais

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

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de

Leia mais

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

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 1 ARQUITETURA DE COMPUTADORES U C P Prof. Leandro Coelho Plano de Aula 2 Aula Passada Definição Evolução dos Computadores Histórico Modelo de Von-Neumann Básico CPU Mémoria E/S Barramentos Plano de Aula

Leia mais

Universidade Federal de São João Del Rei - UFSJ

Universidade Federal de São João Del Rei - UFSJ Universidade Federal de São João Del Rei - UFSJ Instituída pela Lei 0.45, de 9/04/00 - D.O.U. de /04/00 Pró-Reitoria de Ensino de Graduação - PROEN Disciplina: Cálculo Numérico Ano: 03 Prof: Natã Goulart

Leia mais

3 Qualidade de Software

3 Qualidade de Software 3 Qualidade de Software Este capítulo tem como objetivo esclarecer conceitos relacionados à qualidade de software; conceitos estes muito importantes para o entendimento do presente trabalho, cujo objetivo

Leia mais

CAPÍTULO 2. Grafos e Redes

CAPÍTULO 2. Grafos e Redes CAPÍTULO 2 1. Introdução Um grafo é uma representação visual de um determinado conjunto de dados e da ligação existente entre alguns dos elementos desse conjunto. Desta forma, em muitos dos problemas que

Leia mais

UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini priscila_pelegrini@unemat-net.br

UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini priscila_pelegrini@unemat-net.br UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini priscila_pelegrini@unemat-net.br SINOP MT 2015-1 COMO SÃO DESENVOLVIDOS OS SISTEMAS DE INFORMAÇÃO? São desenvolvimento como uma estrutura

Leia mais

Arquitetura de processadores: RISC e CISC

Arquitetura de processadores: RISC e CISC Arquitetura de processadores: RISC e CISC A arquitetura de processador descreve o processador que foi usado em um computador. Grande parte dos computadores vêm com identificação e literatura descrevendo

Leia mais

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie 1 INTRODUÇÃO 1.1 ORGANIZAÇÃO E PROCESSOS A administração está diretamente ligada às organizações e aos processos existentes nas mesmas. Portanto, para a melhor compreensão da Administração e sua importância

Leia mais

JinSol, uma interface em Java para solvers lineares.

JinSol, uma interface em Java para solvers lineares. JinSol, uma interface em Java para solvers lineares. Italo C. N. Lima, João Paulo K. Zanardi, Faculdade de Engenharia, PPGEM, UERJ, 20550-900, Rio de Janeiro, RJ E-mail: italonievinski@gmail.com, jpzanardi@gmail.com

Leia mais

Resolução de sistemas lineares

Resolução de sistemas lineares Resolução de sistemas lineares J M Martínez A Friedlander 1 Alguns exemplos Comecemos mostrando alguns exemplos de sistemas lineares: 3x + 2y = 5 x 2y = 1 (1) 045x 1 2x 2 + 6x 3 x 4 = 10 x 2 x 5 = 0 (2)

Leia mais

por séries de potências

por séries de potências Seção 23: Resolução de equações diferenciais por séries de potências Até este ponto, quando resolvemos equações diferenciais ordinárias, nosso objetivo foi sempre encontrar as soluções expressas por meio

Leia mais

Banco de Dados Orientado a Objetos

Banco de Dados Orientado a Objetos Banco de Dados Orientado a Objetos MODELAGEM, ANÁLISE, PROJETO e CLASSIFICAÇÃO Interação combinando lógica, através de objetos que contém os dados. Estes divididos conforme seus tipos e métodos (classe),

Leia mais

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU Prof. Dr. Sergio Pilling (IPD/ Física e Astronomia) II Métodos numéricos para encontrar raízes (zeros) de funções reais. Objetivos:

Leia mais

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

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle. Introdução Os principais elementos de um sistema de computação são a unidade central de processamento (central processing unit CPU), a memória principal, o subsistema de E/S (entrada e saída) e os mecanismos

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 3-1. A CAMADA DE REDE (Parte 1) A camada de Rede está relacionada à transferência de pacotes da origem para o destino. No entanto, chegar ao destino pode envolver vários saltos em roteadores intermediários.

Leia mais

Karine Nayara F. Valle. Métodos Numéricos de Euler e Runge-Kutta

Karine Nayara F. Valle. Métodos Numéricos de Euler e Runge-Kutta Karine Nayara F. Valle Métodos Numéricos de Euler e Runge-Kutta Professor Orientador: Alberto Berly Sarmiento Vera Belo Horizonte 2012 Karine Nayara F. Valle Métodos Numéricos de Euler e Runge-Kutta Monografia

Leia mais

Especificação Operacional.

Especificação Operacional. Especificação Operacional. Para muitos sistemas, a incerteza acerca dos requisitos leva a mudanças e problemas mais tarde no desenvolvimento de software. Zave (1984) sugere um modelo de processo que permite

Leia mais

Universidade Federal do Paraná

Universidade Federal do Paraná Universidade Federal do Paraná Programa de pós-graduação em engenharia de recursos hídricos e ambiental TH705 Mecânica dos fluidos ambiental II Prof. Fernando Oliveira de Andrade Problema do fechamento

Leia mais

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

3. Fase de Planejamento dos Ciclos de Construção do Software 3. Fase de Planejamento dos Ciclos de Construção do Software A tarefa de planejar os ciclos de construção do software pode partir de diretrizes básicas. Estas diretrizes visam orientar que os ciclos de

Leia mais

Cinco restrições de desenvolvimento/teste que afetam a velocidade, o custo e a qualidade dos seus aplicativos

Cinco restrições de desenvolvimento/teste que afetam a velocidade, o custo e a qualidade dos seus aplicativos Série de ebooks sobre desenvolvimento em paralelo ágil: Capítulo 2 Cinco restrições de desenvolvimento/teste que afetam a velocidade, o custo e a qualidade dos seus aplicativos Novas pressões, mais restrições

Leia mais

5 Considerações finais

5 Considerações finais 5 Considerações finais 5.1. Conclusões A presente dissertação teve o objetivo principal de investigar a visão dos alunos que se formam em Administração sobre RSC e o seu ensino. Para alcançar esse objetivo,

Leia mais

Faculdade Sagrada Família

Faculdade Sagrada Família AULA 12 - AJUSTAMENTO DE CURVAS E O MÉTODO DOS MÍNIMOS QUADRADOS Ajustamento de Curvas Sempre que desejamos estudar determinada variável em função de outra, fazemos uma análise de regressão. Podemos dizer

Leia mais

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

Guia de utilização da notação BPMN 1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação

Leia mais

Exercícios Teóricos Resolvidos

Exercícios Teóricos Resolvidos Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Matemática Exercícios Teóricos Resolvidos O propósito deste texto é tentar mostrar aos alunos várias maneiras de raciocinar

Leia mais

Introdução. Uso do disco Vantagens Desvantagens Baixo custo, facilidade de manutenção do software e do hardware, simetria e flexibilidade

Introdução. Uso do disco Vantagens Desvantagens Baixo custo, facilidade de manutenção do software e do hardware, simetria e flexibilidade Introdução É sabido que os processos rodam em processadores. Nos sistemas tradicionais existe somente um único processador, de forma que não há dúvida a respeito de como ele deve ser usado. Em um sistema

Leia mais

CAPITAL DE GIRO: ESSÊNCIA DA VIDA EMPRESARIAL

CAPITAL DE GIRO: ESSÊNCIA DA VIDA EMPRESARIAL CAPITAL DE GIRO: ESSÊNCIA DA VIDA EMPRESARIAL Renara Tavares da Silva* RESUMO: Trata-se de maneira ampla da vitalidade da empresa fazer referência ao Capital de Giro, pois é através deste que a mesma pode

Leia mais

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

Diretrizes para determinação de intervalos de comprovação para equipamentos de medição. Diretrizes para determinação de intervalos de comprovação para equipamentos de medição. De acordo com a Norma NBR 1001, um grande número de fatores influência a freqüência de calibração. Os mais importantes,

Leia mais

2 Ferramentas Utilizadas

2 Ferramentas Utilizadas 2 Ferramentas Utilizadas Esta dissertação utiliza vários outros trabalhos para implementar os mecanismos de adaptação abordados. Essas ferramentas são descritas nas seções seguintes. 2.1 Lua Lua [7, 8]

Leia mais

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

Figura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001 47 5 Redes Neurais O trabalho em redes neurais artificiais, usualmente denominadas redes neurais ou RNA, tem sido motivado desde o começo pelo reconhecimento de que o cérebro humano processa informações

Leia mais

Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1

Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Informática I Aula 5 http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

AULA 6 Esquemas Elétricos Básicos das Subestações Elétricas

AULA 6 Esquemas Elétricos Básicos das Subestações Elétricas CONSIDERAÇÕES INICIAIS AULA 6 Esquemas Elétricos Básicos das Subestações Elétricas Quando planejamos construir uma subestação, o aspecto de maior importância está na escolha (e, conseqüentemente, da definição)

Leia mais

SISTEMAS DE INFORMAÇÃO GERENCIAIS

SISTEMAS DE INFORMAÇÃO GERENCIAIS SISTEMAS DE INFORMAÇÃO GERENCIAIS Aluno: Luiza Cavalcanti Marques Orientador: Silvio Hamacher Introdução A modelagem e a utilização de bancos de dados em atividades gerenciais têm sofrido um aumento significativo

Leia mais

Teste de Software Parte 1. Prof. Jonas Potros

Teste de Software Parte 1. Prof. Jonas Potros Teste de Software Parte 1 Prof. Jonas Potros Cronograma Verificação e Validação Teste de Software: Definição e Conceitos Técnicas de Teste Fases de Teste Processo de Teste Automatização do Processo de

Leia mais

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

1 Introdução simulação numérica termoacumulação 22 1 Introdução Atualmente o custo da energia é um dos fatores mais importantes no projeto, administração e manutenção de sistemas energéticos. Sendo assim, a economia de energia está recebendo maior atenção

Leia mais

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB 18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB Autor(es) HARLEI MIGUEL DE ARRUDA LEITE Orientador(es) PLÍNIO ROBERTO SOUZA VILELA Apoio Financeiro PIBIC/CNPQ

Leia mais

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU Prof. Dr. Sergio Pilling (IPD/ Física e Astronomia) III Resolução de sistemas lineares por métodos numéricos. Objetivos: Veremos

Leia mais

ADMINISTRAÇÃO FINANCEIRA ORÇAMENTÁRIA

ADMINISTRAÇÃO FINANCEIRA ORÇAMENTÁRIA ADMINISTRAÇÃO FINANCEIRA ORÇAMENTÁRIA AULA 04: ADMINISTRAÇÃO FINANCEIRA DE CURTO PRAZO TÓPICO 05: ADMINISTRAÇÃO DO DISPONÍVEL VERSÃO TEXTUAL Numa situação ideal, em que uma empresa tem um controle total

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE CIÊNCIAS BIOLÓGICAS Departamento de Patologia Básica Pós-Graduação em Microbiologia, Parasitologia e Patologia

UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE CIÊNCIAS BIOLÓGICAS Departamento de Patologia Básica Pós-Graduação em Microbiologia, Parasitologia e Patologia UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE CIÊNCIAS BIOLÓGICAS Departamento de Patologia Básica Pós-Graduação em Microbiologia, Parasitologia e Patologia (TÍTULO DO PROJETO) Mestrando/Doutorando: Orientador:

Leia mais

DESENVOLVIMENTO DE UM DINAMÔMETRO PARA MOTORES ELÉTRICOS EMPREGADOS EM VEÍCULOS EM ESCALA, COM MEDIDA DE DIRETA DE TORQUE E CARGA VARIÁVEL

DESENVOLVIMENTO DE UM DINAMÔMETRO PARA MOTORES ELÉTRICOS EMPREGADOS EM VEÍCULOS EM ESCALA, COM MEDIDA DE DIRETA DE TORQUE E CARGA VARIÁVEL DESENVOLVIMENTO DE UM DINAMÔMETRO PARA MOTORES ELÉTRICOS EMPREGADOS EM VEÍCULOS EM ESCALA, COM MEDIDA DE DIRETA DE TORQUE E CARGA VARIÁVEL Aluno: Vivian Suzano Orientador: Mauro Speranza Neto 1. Introdução

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA COLÉGIO TÉCNICO INDUSTRIAL DE SANTA MARIA Curso de Eletrotécnica

UNIVERSIDADE FEDERAL DE SANTA MARIA COLÉGIO TÉCNICO INDUSTRIAL DE SANTA MARIA Curso de Eletrotécnica UNIVERSIDADE FEDERAL DE SANTA MARIA COLÉGIO TÉCNICO INDUSTRIAL DE SANTA MARIA Curso de Eletrotécnica Apostila de Automação Industrial Elaborada pelo Professor M.Eng. Rodrigo Cardozo Fuentes Prof. Rodrigo

Leia mais

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

Resolução da lista de exercícios de casos de uso Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se

Leia mais

4- PROJETO DE BANCO DE DADOS

4- PROJETO DE BANCO DE DADOS 4- PROJETO DE BANCO DE DADOS OBJETIVOS DE ENSINO: 4 - Empregar a técnica da modelagem de dados no projeto de banco de dados. OBJETIVOS OPERACIONAIS Ao final desta unidade o aluno será capaz de: 4.1 - Definir

Leia mais

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

c. Técnica de Estrutura de Controle Teste do Caminho Básico 1) Defina: a. Fluxo de controle A análise de fluxo de controle é a técnica estática em que o fluxo de controle através de um programa é analisado, quer com um gráfico, quer com uma ferramenta de fluxo

Leia mais

ESPAÇOS MUNIDOS DE PRODUTO INTERNO

ESPAÇOS MUNIDOS DE PRODUTO INTERNO ESPAÇOS MUNIDOS DE PRODUTO INTERNO Angelo Fernando Fiori 1 Bruna Larissa Cecco 2 Grazielli Vassoler 3 Resumo: O presente trabalho apresenta um estudo sobre os espaços vetoriais munidos de produto interno.

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura

Leia mais

Unidade 3 Função Logarítmica. Definição de logaritmos de um número Propriedades operatórias Mudança de base Logaritmos decimais Função Logarítmica

Unidade 3 Função Logarítmica. Definição de logaritmos de um número Propriedades operatórias Mudança de base Logaritmos decimais Função Logarítmica Unidade 3 Função Logarítmica Definição de aritmos de um número Propriedades operatórias Mudança de base Logaritmos decimais Função Logarítmica Definição de Logaritmo de um número Suponha que certo medicamento,

Leia mais

FUNÇÃO DE 1º GRAU. = mx + n, sendo m e n números reais. Questão 01 Dadas as funções f de IR em IR, identifique com um X, aquelas que são do 1º grau.

FUNÇÃO DE 1º GRAU. = mx + n, sendo m e n números reais. Questão 01 Dadas as funções f de IR em IR, identifique com um X, aquelas que são do 1º grau. FUNÇÃO DE 1º GRAU Veremos, a partir daqui algumas funções elementares, a primeira delas é a função de 1º grau, que estabelece uma relação de proporcionalidade. Podemos então, definir a função de 1º grau

Leia mais

Capítulo 2 Objetivos e benefícios de um Sistema de Informação

Capítulo 2 Objetivos e benefícios de um Sistema de Informação Capítulo 2 Objetivos e benefícios de um Sistema de Informação 2.1 OBJETIVO, FOCO E CARACTERÍSTICAS DOS SISTEMAS DE INFORMAÇÃO. Os Sistemas de Informação, independentemente de seu nível ou classificação,

Leia mais

A seguir são apresentadas as etapas metodológicas da Pesquisa CNT de Rodovias.

A seguir são apresentadas as etapas metodológicas da Pesquisa CNT de Rodovias. Metodologia A Pesquisa CNT de Rodovias propõe-se a avaliar a situação das rodovias brasileiras a partir da perspectiva dos usuários da via. As características - pavimento, sinalização e geometria - são

Leia mais

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

Projeto de inovação do processo de monitoramento de safra da Conab Projeto de inovação do processo de monitoramento de safra da Conab Projeto elaborado por Lorenzo Seguini lorenzo_seguini@yahoo.it Projeto Diálogos Setoriais União Europeia - Brasil 1 Sumário 1. Introdução...3

Leia mais

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

Roteiro SENAC. Análise de Riscos. Planejamento do Gerenciamento de Riscos. Planejamento do Gerenciamento de Riscos SENAC Pós-Graduação em Segurança da Informação: Análise de Riscos Parte 2 Leandro Loss, Dr. Eng. loss@gsigma.ufsc.br http://www.gsigma.ufsc.br/~loss Roteiro Introdução Conceitos básicos Riscos Tipos de

Leia mais

5 Um simulador estocástico para o fluxo de caixa

5 Um simulador estocástico para o fluxo de caixa 5 Um simulador estocástico para o fluxo de caixa O objetivo desse capítulo é o de apresentar um simulador estocástico para o fluxo de caixa de um plano de previdência do tipo PGBL de um único indivíduo.

Leia mais

2 Fundamentação Conceitual

2 Fundamentação Conceitual 2 Fundamentação Conceitual 2.1 Computação Pervasiva Mark Weiser define pela primeira vez o termo Computação Ubíqua ou Computação Pervasiva (Ubiquitous Computing) em (10). O autor inicia o trabalho com

Leia mais

Organização. Trabalho realizado por: André Palma nº 31093. Daniel Jesus nº 28571. Fábio Bota nº 25874. Stephane Fernandes nº 28591

Organização. Trabalho realizado por: André Palma nº 31093. Daniel Jesus nº 28571. Fábio Bota nº 25874. Stephane Fernandes nº 28591 Organização Trabalho realizado por: André Palma nº 31093 Daniel Jesus nº 28571 Fábio Bota nº 25874 Stephane Fernandes nº 28591 Índice Introdução...3 Conceitos.6 Princípios de uma organização. 7 Posição

Leia mais

Projetos I Resumo de TCC. Luiz Rogério Batista De Pieri Mat: 0413829 5

Projetos I Resumo de TCC. Luiz Rogério Batista De Pieri Mat: 0413829 5 Projetos I Resumo de TCC Luiz Rogério Batista De Pieri Mat: 0413829 5 MAD RSSF: Uma Infra estrutura de Monitoração Integrando Redes de Sensores Ad Hoc e uma Configuração de Cluster Computacional (Denise

Leia mais

PLANEJAMENTO ESTRATÉGICO

PLANEJAMENTO ESTRATÉGICO PLANEJAMENTO ESTRATÉGICO Este material resulta da reunião de fragmentos do módulo I do Curso Gestão Estratégica com uso do Balanced Scorecard (BSC) realizado pelo CNJ. 1. Conceitos de Planejamento Estratégico

Leia mais

Processos de gerenciamento de projetos em um projeto

Processos de gerenciamento de projetos em um projeto Processos de gerenciamento de projetos em um projeto O gerenciamento de projetos é a aplicação de conhecimentos, habilidades, ferramentas e técnicas às atividades do projeto a fim de cumprir seus requisitos.

Leia mais

Do neurônio biológico ao neurônio das redes neurais artificiais

Do neurônio biológico ao neurônio das redes neurais artificiais Do neurônio biológico ao neurônio das redes neurais artificiais O objetivo desta aula é procurar justificar o modelo de neurônio usado pelas redes neurais artificiais em termos das propriedades essenciais

Leia mais

REDE SOCIAL DE MAPEAMENTO COLABORATIVO DE PROBLEMAS AMBIENTAIS E URBANOS NAS CIDADES Resultados preliminares

REDE SOCIAL DE MAPEAMENTO COLABORATIVO DE PROBLEMAS AMBIENTAIS E URBANOS NAS CIDADES Resultados preliminares REDE SOCIAL DE MAPEAMENTO COLABORATIVO DE PROBLEMAS AMBIENTAIS E URBANOS NAS CIDADES Resultados preliminares Sergio Henrique Silva 1 ; Angelo Frozza 2 ; Reginaldo Rubens da Silva 3 RESUMO Este trabalho

Leia mais

AV1 - MA 12-2012. (b) Se o comprador preferir efetuar o pagamento à vista, qual deverá ser o valor desse pagamento único? 1 1, 02 1 1 0, 788 1 0, 980

AV1 - MA 12-2012. (b) Se o comprador preferir efetuar o pagamento à vista, qual deverá ser o valor desse pagamento único? 1 1, 02 1 1 0, 788 1 0, 980 Questão 1. Uma venda imobiliária envolve o pagamento de 12 prestações mensais iguais a R$ 10.000,00, a primeira no ato da venda, acrescidas de uma parcela final de R$ 100.000,00, 12 meses após a venda.

Leia mais

Trabalho Computacional

Trabalho Computacional Universidade Federal do Espírito Santo Departamento de Informática Profª Claudia Boeres Teoria dos Grafos - 2014/2 Trabalho Computacional 1. Objetivo Estudo e implementação de algoritmos para resolução

Leia mais

Figura 5 - Workflow para a Fase de Projeto

Figura 5 - Workflow para a Fase de Projeto 5. Fase de Projeto A Fase de Projeto caracteriza-se por transformar as informações modeladas durante a Fase de Análise em estruturas arquiteturais de projeto com o objetivo de viabilizar a implementação

Leia mais

CAPÍTULO 3. Sistemas com Vários Componentes (Multicomponentes) em Modelos Markovianos de Decisão

CAPÍTULO 3. Sistemas com Vários Componentes (Multicomponentes) em Modelos Markovianos de Decisão CAPÍTULO 3 Sistemas com Vários Componentes (Multicomponentes) em Modelos Markovianos de Decisão 3.1 - Multicomponentes Conceitos Básicos: O conceito de multicomponente é utilizado em diversas áreas de

Leia mais

Capítulo 5: Aplicações da Derivada

Capítulo 5: Aplicações da Derivada Instituto de Ciências Exatas - Departamento de Matemática Cálculo I Profª Maria Julieta Ventura Carvalho de Araujo Capítulo 5: Aplicações da Derivada 5- Acréscimos e Diferenciais - Acréscimos Seja y f

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Teoria geral dos sistemas Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução n Necessário entender inicialmente os conceitos básicos e base filosófica que norteiam sistemas

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 14 Revisão http://www.ic.uff.br/~bianca/engsoft2/ Aula 14-07/05/2006 1 Processo de Software Qual é a diferença entre uma atividade de arcabouço e uma atividade guarda chuva?

Leia mais

MODELO MALTHUSIANO APLICADO AO CRESCIMENTO POPULACIONAL DO MUNICÍPIO DE MANOEL VIANA/RS

MODELO MALTHUSIANO APLICADO AO CRESCIMENTO POPULACIONAL DO MUNICÍPIO DE MANOEL VIANA/RS ISSN 2177-9139 MODELO MALTHUSIANO APLICADO AO CRESCIMENTO POPULACIONAL DO MUNICÍPIO DE MANOEL VIANA/RS Juliano Silveira Meira juliano.meira@hotmail.com Gabriel de Oliveira Soares - gobigabriel@hotmail.com

Leia mais

TÉCNICAS DE PROGRAMAÇÃO

TÉCNICAS DE PROGRAMAÇÃO TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente

Leia mais

Alguma das vantagens e desvantagens dos computadores ópticos é apresenta a seguir.

Alguma das vantagens e desvantagens dos computadores ópticos é apresenta a seguir. Computação Óptica Introdução Um dos grandes obstáculos para aprimorar o desempenho dos computadores modernos está relacionado com a tecnologia convencional dos semicondutores, que está alcançando o seu

Leia mais

Política de Gestão de Riscos Tese Investimentos. Junho/2016

Política de Gestão de Riscos Tese Investimentos. Junho/2016 Política de Gestão de Riscos Tese Investimentos Junho/2016 1) Objetivo Esta política tem como objetivo, nos termos da Instrução CVM n 558 e do Código ANBIMA de Regulação e Melhores Práticas para os Fundos

Leia mais

A ESTRUTURA DA GESTÃO DE

A ESTRUTURA DA GESTÃO DE A ESTRUTURA DA GESTÃO DE PROJETOS Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br SUMÁRIO Importância do Gerenciamento de Projetos. Benefícios do Gerenciamento de Projetos Gerenciamento

Leia mais

Disciplina: Técnicas de Racionalização de Processos Líder da Disciplina: Rosely Gaeta NOTA DE AULA 04 O PROJETO DE MELHORIA DOS PROCESSOS

Disciplina: Técnicas de Racionalização de Processos Líder da Disciplina: Rosely Gaeta NOTA DE AULA 04 O PROJETO DE MELHORIA DOS PROCESSOS Disciplina: Técnicas de Racionalização de Processos Líder da Disciplina: Rosely Gaeta NOTA DE AULA 04 O PROJETO DE MELHORIA DOS PROCESSOS 3.4 O PROJETO DE MELHORIA DE PROCESSOS 3.4.1 - CONCEITO DE PROJETO

Leia mais

ESTUDO DE VIABILIDADE. Santander, Victor - Unioeste Aula de Luiz Eduardo Guarino de Vasconcelos

ESTUDO DE VIABILIDADE. Santander, Victor - Unioeste Aula de Luiz Eduardo Guarino de Vasconcelos ESTUDO DE VIABILIDADE Santander, Victor - Unioeste Aula de Luiz Eduardo Guarino de Vasconcelos Objetivos O que é um estudo de viabilidade? O que estudar e concluir? Benefícios e custos Análise de Custo/Benefício

Leia mais

Gerenciamento de Projetos Modulo IX Qualidade

Gerenciamento de Projetos Modulo IX Qualidade Gerenciamento de Projetos Modulo IX Qualidade Prof. Walter Cunha falecomigo@waltercunha.com http://waltercunha.com Bibliografia* Project Management Institute. Conjunto de Conhecimentos em Gerenciamento

Leia mais

Software Livre e Engenharia Elétrica

Software Livre e Engenharia Elétrica Software Livre e Engenharia Elétrica Diego Cézar Silva de Assunção Henrique Ribeiro Soares José Rubens Guimarães Vilaça Lima Pedro Dias de Oliveira Carvalho Rafael Viegas de Carvalho Carlos Gomes O software

Leia mais

Análise de Arredondamento em Ponto Flutuante

Análise de Arredondamento em Ponto Flutuante Capítulo 2 Análise de Arredondamento em Ponto Flutuante 2.1 Introdução Neste capítulo, chamamos atenção para o fato de que o conjunto dos números representáveis em qualquer máquina é finito, e portanto

Leia mais

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza Sistemas Distribuídos Processos I Prof. MSc. Hugo Souza Até agora vimos a organização como um todo dos SDS, com o mapeamento estrutural e suas devidas características descritas em elementos, regras, conceitos,

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 28 Revisão para a Prova 2 http://www.ic.uff.br/~bianca/engsoft2/ Aula 28-28/07/2006 1 Matéria para a Prova 2 Gestão de projetos de software Conceitos (Cap. 21) Métricas (Cap.

Leia mais

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados 1. Introdução O governo é um dos maiores detentores de recursos da informação. Consequentemente, tem sido o responsável por assegurar que tais recursos estejam agregando valor para os cidadãos, as empresas,

Leia mais

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

Teste de Software: Um Breve Estudo do Importante Processo no Desenvolvimento de Softwares Teste de Software: Um Breve Estudo do Importante Processo no Desenvolvimento de Softwares André Assis Lôbo de Oliveira Francisco Guerra Fernandes Júnior Faculdades Alves Faria, 74445190, Brasil andrelobin@hotmail.com,

Leia mais

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

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO 1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO Desde o seu surgimento, o manuseio da computação é baseado em linguagens de programação. Ela permite que sejam construídos aplicativos

Leia mais

Montagem e Manutenção. Luís Guilherme A. Pontes

Montagem e Manutenção. Luís Guilherme A. Pontes Montagem e Manutenção Luís Guilherme A. Pontes Introdução Qual é a importância da Montagem e Manutenção de Computadores? Sistema Binário Sistema Binário Existem duas maneiras de se trabalhar e armazenar

Leia mais

CUSTEIO POR ABSORÇÃO X CUSTEIO ABC

CUSTEIO POR ABSORÇÃO X CUSTEIO ABC Resumo CUSTEIO POR ABSORÇÃO X CUSTEIO ABC Ana Paula Ferreira Azevedo Faculdade de Ciências Econômicas, Administrativas e da Computação Dom Bosco Associação Educacional Dom Bosco E-mail: apfazevedo@ig.com.br

Leia mais

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

Metodologia para seleção de amostras de contratos de obras públicas (jurisdicionados) utilizando a programação linear aplicativo Solver REVISTA Metodologia para seleção de amostras de contratos de obras públicas (jurisdicionados) utilizando a programação linear aplicativo Solver André Mainardes Berezowski 1 Resumo Trata da apresentação

Leia mais

Soluções via.net para otimização de processos paramétricos com Autodesk Inventor.

Soluções via.net para otimização de processos paramétricos com Autodesk Inventor. Soluções via.net para otimização de processos paramétricos com Autodesk Inventor. Michel Brites dos Santos MAPData A parametrização quando possível já é uma forma de otimizar o processo de criação na engenharia.

Leia mais

DINÂMICA DOS FLUIDOS COMPUTACIONAL. CFD = Computational Fluid Dynamics

DINÂMICA DOS FLUIDOS COMPUTACIONAL. CFD = Computational Fluid Dynamics DINÂMICA DOS FLUIDOS COMPUTACIONAL CFD = Computational Fluid Dynamics 1 Problemas de engenharia Métodos analíticos Métodos experimentais Métodos numéricos 2 Problemas de engenharia FENÔMENO REAL (Observado

Leia mais

Potenciação no Conjunto dos Números Inteiros - Z

Potenciação no Conjunto dos Números Inteiros - Z Rua Oto de Alencar nº 5-9, Maracanã/RJ - tel. 04-98/4-98 Potenciação no Conjunto dos Números Inteiros - Z Podemos epressar o produto de quatro fatores iguais a.... por meio de uma potência de base e epoente

Leia mais

Avaliação de Desempenho de Sistemas

Avaliação de Desempenho de Sistemas Avaliação de Desempenho de Sistemas Introdução a Avaliação de Desempenho de Sistemas Prof. Othon M. N. Batista othonb@yahoo.com Roteiro Definição de Sistema Exemplo de Sistema: Agência Bancária Questões

Leia mais

ESTEREOSCOPIA INTRODUÇÃO. Conversão de um par de imagens (a)-(b) em um mapa de profundidade (c)

ESTEREOSCOPIA INTRODUÇÃO. Conversão de um par de imagens (a)-(b) em um mapa de profundidade (c) ESTEREOSCOPIA INTRODUÇÃO Visão estereoscópica se refere à habilidade de inferir informações da estrutura 3-D e de distâncias da cena de duas ou mais imagens tomadas de posições diferentes. Conversão de

Leia mais

POLÍTICA DE GESTÃO DE RISCO - PGR

POLÍTICA DE GESTÃO DE RISCO - PGR POLÍTICA DE GESTÃO DE RISCO - PGR DATASUS Maio 2013 Arquivo: Política de Gestão de Riscos Modelo: DOC-PGR Pág.: 1/12 SUMÁRIO 1. APRESENTAÇÃO...3 1.1. Justificativa...3 1.2. Objetivo...3 1.3. Aplicabilidade...4

Leia mais

Memória cache. Prof. Francisco Adelton

Memória cache. Prof. Francisco Adelton Memória cache Prof. Francisco Adelton Memória Cache Seu uso visa obter uma velocidade de acesso à memória próxima da velocidade das memórias mais rápidas e, ao mesmo tempo, disponibilizar no sistema uma

Leia mais

Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento de 4ª geração Terceirização

Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento de 4ª geração Terceirização Prof. Ricardo José Pfitscher Material elaborado com base em: José Luiz Mendes Gerson Volney Lagemann Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento

Leia mais

Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas ICEB

Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas ICEB Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas ICEB PROBLEMA DE PROGRAMAÇÃO DE VEÍCULOS 1 (Vehicle Scheduling Problem) Cássio Roberto de Araújo cassio@em.ufop.br Elva

Leia mais

3.1 Definições Uma classe é a descrição de um tipo de objeto.

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

Leia mais