• Nenhum resultado encontrado

Computação bio-inspirada e paralela para a analise de estruturas metamateriais em microondas e fotonica

N/A
N/A
Protected

Academic year: 2021

Share "Computação bio-inspirada e paralela para a analise de estruturas metamateriais em microondas e fotonica"

Copied!
171
0
0

Texto

(1)

i

Universidade Estadual de Campinas

FACULDADE DE ENGENHARIA ELÉTRICA E COMPUTAÇÃO DEPARTAMENTO MICROONDAS E ÓPTICA

UNICAMP – FEEC – DMO, Campinas – SP, C.P. 6101, CEP. 13083-970

Computação Bio-Inspirada e Paralela para a Análise de

Estruturas Metamateriais em Microondas e Fotônica

Autor: Carlos Henrique da Silva Santos

Orientador: Prof.Dr. Hugo Enrique Hernández Figueroa

Tese apresentada à Faculdade de Engenharia Elétrica e de Computação da Universidade Estadual de Campinas como parte dos requisitos necessários para a obtenção do título de Doutor em Engenharia Elétrica.

Comissão Examinadora:

Prof. Dr. Vitaly Félix Rodríguez Esquerre (DEE/UFBA) Prof. Dr. Cosme Eustáquio Rubio Mercedes (UEMS) Prof. Dr. Romis Ribeiro de Faissol Attux (FEEC/Unicamp) Prof. Dr. Gustavo Fraidenraich (FEEC/Unicamp)

Campinas 31 de maio de 2010

(2)

ii

FICHA CATALOGRÁFICA ELABORADA PELA

BIBLIOTECA DA ÁREA DE ENGENHARIA E ARQUITETURA - BAE - UNICAMP

Sa59c

Santos, Carlos Henrique da Silva

Computação bio-inspirada e paralela para a análise de estruturas metamateriais em microondas e fotônica / Carlos Henrique da Silva Santos. --Campinas, SP: [s.n.], 2010.

Orientador: Hugo Enrique Hernández Figueroa. Tese de Doutorado - Universidade Estadual de Campinas, Faculdade de Engenharia Elétrica e de Computação.

1. Processamento paralelo (Computadores). 2. Inteligência artificial. 3. Otimização. 4.

Eletromagnetismo - Computação. 5. Metamateriais. I. Hernández Figueroa, Hugo Enrique. II. Universidade Estadual de Campinas. Faculdade de Engenharia Elétrica e de Computação. III. Título.

Título em Inglês: Parallel and bio-inspired computing applied to analyze microwave and photonic metamaterial structures Palavras-chave em Inglês: Parallel processing (Computers), Artificial

intelligence, Optimization, Electromagnetism - Computer, Metamaterials

Área de concentração: Telecomunicações e Telemática Titulação: Doutor em Engenharia Elétrica

Banca examinadora: Vitaly Félix Rodríguez Esquerre , Cosme Eustáquio Rubio Mercedes , Romis Ribeiro de Faissol Attux , Gustavo Fraidenraich

Data da defesa: 31/05/2010

(3)
(4)

v

“E aqueles que foram vistos dançando foram julgados insanos por aqueles que não podiam escutar a música.”

Friedrich Nietzsche

“Só se pode alcançar um grande êxito quando nos mantemos fiéis a nós mesmos.”

Friedrich Nietzsche

“A simplicidade é o último grau de sofisticação”

(5)

vii

À minha filha Geovana pela inspiração e vida. Não menos, à minha amada esposa Ana Paula e aos meus pais Aurelio e Maria Helena pela origem, amor, dedicação e evolução.

(6)

ix

AGRADECIMENTOS

Agradeço a Deus pela vida, força e iluminação quando na escuridão.

À minha filha Geovana, esposa Ana Paula e meus pais Aurelio e Maria Helena, pelo amor, dedicação, infinita ajuda e por compreenderem essa minha caminhada.

Aos meus irmãos Marco Antonio, Ana Carolina e Ariane. Aos meus sobrinhos Luiz Thiago e Nícolas, cunhados André, Carlos Renê, Daiane, Fabíola e Patrícia e aos sogros Ana e José Carlos.

Agradeço ao Prof. Hugo E. H. Figueroa, pela oportunidade, por acreditar em meu trabalho e por toda ajuda prestada ao longo desses bons anos.

Ao amigo Prof. Marcos Gonçalves pelas inúmeras discussões, colaborações e ajudas. Também ao amigo Gustavo Calixto pela dedicação e amizade.

Aos colegas do DMO, em especial Kleucio, Igor, Gilliard e Marco Antonio.

Aos colegas que de alguma forma contribuíram para a realização desse trabalho, em especial ao Prof. Vitaly Felix Rodríguez Esquerre e ao Prof. Cosme Rubio Mercedes. A todos os meus professores e mestres que de alguma forma me motivaram nesta caminhada, em particular à Profa. Marli de F. G. Hernández e ao Prof. André F. de Angelis.

À Fundação de Amparo a Pesquisa do Estado de São Paulo (FAPESP) pelo apoio financeiro que tornou possível o desenvolvimento desta tese de doutorado.

À Orbisat da Amazônia Indústria e Aerolevantamento S/A, na pessoa do Dr. João Roberto Moreira Neto, pelas oportunidades e apoio concedidos.

(7)

xi RESUMO

Esse trabalho tem por objetivo desenvolver algoritmos bio-inspirados (Algoritmo Genético, Estratégia Evolutiva e Sistema Imunológico Artificial) eficientes (tempo de processamento e convergência), e flexíveis (multi-plataforma), para a otimização de dispositivos eletromagnéticos nos domínios da frequência e do tempo. Além disso, para satisfazer a demanda computacional requerida nessas otimizações, foram implementadas versões paralelas dos algoritmos bio-inspirados e do método das diferenças finitas no domínio tempo em três dimensões (FDTD 3D) para serem executados em cluster de computadores. A eficiência e flexibilidade dos algoritmos desenvolvidos foram confirmadas através da aplicação criteriosa de testes de desempenho disponíveis na literatura. Isto permitiu a proposta e simulação de novos e complexos dispositivos eletromagnéticos baseados em estruturas metamateriais.

(8)

xiii ABSTRACT

The objectives of this work are to develop efficient (runtime and convergence) and flexible (multiplatform) bio-inspired algorithms (Genetic Algorithm, Evolution Strategy and Artificial Immune System), for the optimization of electromagnetic devices either in frequency and time domain. In addition, to satisfy the computational requirements for these optimizations a parallel version of these bio-inspired algorithms and a three-dimensional finite difference time domain (3D FDTD) were developed capable to be processed in cluster computers. The successful performance of these parallel resources was confirmed by their careful assessment through key tests available in the specialized literature. This permitted the proposal and simulation of novel and complex electromagnetic devices based on metamaterial structures.

(9)

xv

LISTA DE FIGURAS

Pág.

Figura 1. Imagens tomadas por um microscópio por varredura de elétrons a) ponta de entrada do guia e o espelho de Bragg no plano x-z b) colunas de Silício distribuídas em diferentes quantidades para determinar o

índice efetivo do cloak [21]. ... 5

Figura 2. Fluxograma geral do processamento paralelo adotado em grande parte das aplicações. ... 11

Figura 3. Esquemático geral do processamento paralelo adotado em grande parte das aplicações [26]. ... 14

Figura 4. Estrutura física do cluster de computadores. ... 15

Figura 5. Foto do Cluster de Computadores do CePOF ... 15

Figura 6. Gráfico de medição de latência no Debian e no CentOS. ... 18

Figura 7. Comparações de Largura de banda entre CentOS e Debian. ... 18

Figura 8. Comparação de desempenho entre o MPICH2 e a LAM-MPI medido em Gflop/s. ... 19

Figura 9. Comparação de latência entre o MPICH2 e a LAM-MPI. ... 19

Figura 10. Comparação da largura de banda entre o MPICH2 e a LAM-MPI... 20

Figura 11. Comparação de desempenho usando e não usando o NFS no processamento paralelo. ... 21

Figura 12. Tipos de Algoritmos Bio-Inspirados disponíveis ... 25

Figura 13. Funções de distribuição de números aplicados aos geradores de números aleatórios (variância média). ... 29

Figura 14. Fluxograma que apresenta os principais passos dos algoritmos evolutivos. ... 30

Figura 15. Representação de um cromossomo [55]. ... 34

Figura 16. Representação da execução do operador de recombinação (crossover). ... 35

Figura 17. Fluxograma do AG com seus operadores e relatórios de saída ... 36

Figura 18. Diagrama de Classe do Algoritmo Genético Desenvolvido. ... 37

Figura 19. Estrutura de processamento dos Algoritmos Evolutivos Paralelos. ... 38

Figura 20. Estrutura de processamento paralelo para a troca de mensagens no Algoritmo Genético... 39

Figura 21. Fluxograma das Estratégias Evolutivas e a número de indivíduos na população geral em cada etapa desse algoritmo. ... 43

Figura 22. Diagrama de classe do algoritmo de Estratégia Evolutiva implementado destacando que as classe de população e seleção se diferenciam dos AGs. ... 44

Figura 23. Fluxograma das Estratégias Evolutivas Paralelas; em destaque a quantidade de indivíduos divididos pelos processos. ... 45

(10)

xvi

Figura 25. Fluxograma do opt-AiNet implementado. ... 50

Figura 26. Diagrama de classes do Sistema Imunológico Artificial opt-AiNet. ... 51

Figura 27. Funções de testes bidimensionais (a) Esfera, (b) Rosenbrock (c) Multi-Modal (d) Rastrigin e (e) Griewank ... 52

Figura 28. Teste de convergência dos algoritmos bio-inspirados na função Esfera bidimensional com função GNA (a) Uniforme, (b) Gaussiana, (c) Cauchy e (d) Híbrida. ... 54

Figura 29. Teste de convergência dos algoritmos bio-inspirados na função Rosenbrock bidimensional com função GNA (a) Uniforme, (b) Gaussiana, (c) Cauchy e (d) Híbrida ... 55

Figura 30. Teste de convergência dos algoritmos bio-inspirados na função Multimodal bidimensional com função GNA (a) Uniforme, (b) Gaussiana, (c) Cauchy e (d) Híbrida ... 56

Figura 31. Teste de convergência dos algoritmos bio-inspirados na função Rastrigin bidimensional com função GNA (a) Uniforme, (b) Gaussiana, (c) Cauchy e (d) Híbrida ... 57

Figura 32.Teste de convergência dos algoritmos bio-inspirados na função Griewank bidimensional com função GNA a) Uniforme, b) Gaussiana, c) Cauchy e d) Híbrida ... 58

Figura 33. Testes de avaliação de convergência do AG na função multimodal com distribuição (a) Uniforme, (b) Gaussiana, (c) Cauchy e (d) Híbrida. ... 59

Figura 34. Testes de avaliação de convergência do EE na função multimodal com distribuição (a) Uniforme, (b) Gaussiana, (c) Cauchy e (d) Híbrida ... 60

Figura 35. Testes de avaliação de convergência do SIA na função multimodal com distribuição (a) Uniforme, (b) Gaussiana, (c) Cauchy e (d) Híbrida ... 61

Figura 36. Esquemático da célula de Yee [63]. ... 66

Figura 37. Diagrama de classe do FDTD 3D implementado. ... 70

Figura 38. Comparativos dos campos eletromagnéticos no Matlab ®[61] e C++. .. 74

Figura 39. Dimensões da cavidade ressonante utilizada para validar o FDTD 3D. ... 75

Figura 40. Fonte Eletromagnética do Teste da Cavidade de Ressonância para calcular o modo fundamental. ... 76

Figura 41. Modo fundamental da cavidade cúbica (2cm) simulada. ... 76

Figura 42. Comparativos do FDTD 3D sem PML e com 12 camadas PML. ... 78

Figura 43. Duas células de Yee justapostas... 79

Figura 44. Duas células de Yee separadas em dois processos diferentes. ... 80

Figura 45.Testes comparativos entre o FDTD 3D sequencial e o implementado em paralelo sendo executado com vários processos. Ponto de controle da malha no campo Ey posição (5,15,5). ... 80

Figura 46. Testes comparativos entre o FDTD 3D sequencial e o implementado em paralelo, sendo executado com vários processos. Ponto de controle da malha no campo Hy posição (5,5,5). ... 81

Figura 47. Desempenho computacional do FDTD 3D paralelo dividindo o domínio na direção x. ... 81

Figura 48. Representação do domínio computacional do FDTD 3D em subdomínios para o processamento paralelo. ... 82

(11)

xvii

Figura 49. Desempenho computacional do FDTD 3D com particionamento multidimensional. ... 83 Figura 50 Parâmetros de otimização da MSA [67]. ... 87 Figura 51 - Desempenho da convergência do Fitness para maximizar o

projeto de MSA com função densidade de probabilidade Uniforme. ... 89 Figura 52. Desempenho de convergência do Fitness para maximizar o projeto

de MSA com a função densidade de probabilidade Gaussiana. ... 90 Figura 53. Desempenho de convergência do Fitness para maximizar o projeto

de MSA com a função densidade de probabilidade Cauchy. ... 90 Figura 54. Desempenho da eficiência de convergência do Fitness para

maximizar o projeto de MSA com a função densidade de probabilidade Híbrida (Gauss-Cauchy). ... 91 Figura 55. Fronteira de Pareto do projeto da MSA, utilizando o gerador de

número aleatório Uniforme. ... 93 Figura 56. Fronteira de Pareto do projeto da MSA, utilizando o gerador de

número aleatório Gaussiano. ... 93 Figura 57 Fronteira de Pareto do projeto da MSA, utilizando o gerador de

número aleatório de Cauchy. ... 94 Figura 58. Fronteira de Pareto do projeto da MSA, utilizando o gerador de

número aleatório Híbrido (Cauchy-Gauss). ... 94 Figura 59. Algoritmo Genético Paralelo com distribuição uniforme, para otimizar

MSA. ... 96 Figura 60. Estratégia Evolutiva Paralela com distribuição uniforme, para

otimizar MSA. ... 97 Figura 61. Sistema Imunológico Paralelo com distribuição uniforme, para

otimizar MSA ... 97 Figura 62. Algoritmo Genético Paralelo com distribuição Gaussiana, para

otimizar MSA ... 98 Figura 63 Estratégia Evolutiva Paralela com distribuição Gaussiana, para

otimizar MSA ... 99 Figura 64. Sistema Imunológico Artificial Paralelo com distribuição Gaussiana,

para otimizar MSA ... 99 Figura 66. Estratégia Evolutiva Paralela com distribuição Cauchy, para otimizar

MSA ... 100 Figura 67. Sistema Imunológico Artificial Paralelo com distribuição Cauchy,

para otimizar MSA... 101 Figura 68. Algoritmo Genético Paralelo com distribuição Híbrida, para otimizar

MSA ... 101 Figura 69. Estratégia Evolutiva Paralela com distribuição Híbrida, para otimizar

MAS. ... 102 Figura 70. Sistema Imunológico Paralelo com distribuição Híbrida, para otimizar

MAS ... 102 Figura 71. Diagrama de classe dos pacotes Bio-Inspirado e FEM 2D. ... 106 Figura 72. Modelo da geometria periódica para a redução da transmissão (a)

visualização 3D com destaque a 2D e (b) representação bidimensional modelado no FEM 2D. ... 108

(12)

xviii

Figura 73. Eficiência de convergência dos algoritmos bio-inspirados para

otimizar o dispositivo rejeita faixa. ... 109

Figura 74. Quantidade de anticorpos no SIA ao longo das gerações. ... 110

Figura 75. Largura de banda do dispositivo fotônico rejeita banda otimizado com SIA. ... 110

Figura 76. Estrutura otimizada do dispositivo. ... 111

Figura 77. Estrutura periódica inicial do acoplador ar com guia-de-onda. ... 111

Figura 78. Eficiência de convergência dos algoritmos bio-inspirados, para otimizar o acoplador para ar e guia-de-onda. ... 112

Figura 79. Geometria otimizada do Acoplador para Ar e Guia de Onda. ... 113

Figura 80. Propagação do campo Ex no acoplador para ar e guia de onda. ... 113

Figura 81. Geometria inicial do divisor de potência bidimensional do tipo Y. ... 115

Figura 82. Distribuições de potência nas saídas e reflexões. ... 116

Figura 83. Geometria otimizada do divisor de potência Y desbalanceado. ... 116

Figura 84 Convergência dos algoritmos bio-inspirados para a otimização do divisor de potência desbalanceado. ... 117

Figura 85. Geometria periódica original do acoplador para guias micrométrico e nanométrico. ... 118

Figura 86 Acoplador para guias micrométricos e nanométricos otimizado. ... 118

Figura 87. Distribuição do campo Ex. ... 119

Figura 88 Convergência dos algoritmos bio-inspirados para a otimização do acoplador guias micro-para-nano. ... 119

Figura 89. Representação bidimensional do FDTD 2D sob o modo TEz [66]. ... 123

Figura 90. Estrutura periódica a ser otimizada para os testes de desempenho com FDTD 2D no modo TEz. ... 124

Figura 91. Convergência média dos algoritmos bio-inspirados sequenciais integrando o FDTD 2D TEz para a otimização do dispositivo rejeita banda. ... 125

Figura 92. Convergência média dos algoritmos bio-inspirados paralelo (5 processos) integrando o FDTD 2D TEz para a otimização do dispositivo rejeita banda. ... 126

Figura 93. Convergência média dos algoritmos bio-inspirados paralelo (10 processos) integrando o FDTD 2D TEz para a otimização do dispositivo rejeita banda. ... 128

Figura 94. Resultados de propagação dos campos Ex em diferentes pontos com a estrutura otimizada pelos algoritmos bio-inspirados e modelado no FDTD 2D para a análise de desempenho. ... 130

Figura 95. Unidade cúbica do ressoador altamente dielétrico (CRAD), onde o elemento interno possui r=40 e o externo r=2,08 [75]... 131

Figura 96. Representação sequencial das estruturas metamaterial 3D no primeiro estudo de caso. ... 132

Figura 97. Propagação dos campos eletromagnéticos ao longo das estruturas periódicas com diferentes configurações. ... 133

Figura 98. Corte 2D dos campos Ex e Hz após 8192 iterações de tempo e com diferentes configurações de estruturas periódicas. ... 134

(13)

xix

Figura 99. Estruturas mematamateriais a serem analisadas (a) 1 célula, (b) 2x2x2 células, (c) 3x3x3 células e (d) 4x4x4 células. ... 135 Figura 100. Representação 2D das variáveis que especificam os testes

metamaterial. ... 135 Figura 101. Pulso Gaussiano utilizado nas simulações das estruturas

metamaterial 3D. ... 136 Figura 102. Propagação no campo Ex com as diferentes periodicidades. ... 137 Figura 103. Propagação no campo Hz com as diferentes periodicidades. ... 138 Figura 104. Análise do domínio da frequência dos valores médios propagados

(14)

xxi

LISTA DE TABELAS

Pág. Tabela 1. Especificações do espaço amostral das funções de teste dos

algoritmos evolutivos... 53 Tabela 2. Definições dos parâmetros das Equações de Maxwell... 65 Tabela 3. Definições dos parâmetros das Simplificações do FDTD... 65 Tabela 4. Comparativos da solução analítica com o modelo no software

comercial para a antena de microfita otimizada... 91

Tabela 5. Teste de desempenho quanto ao tempo de processamento

sequencial dos algoritmos bio-inspirados em conjunto com o FDTD 2D para

o filtro para-banda... 124 Tabela 6. Teste de desempenho quanto ao tempo com processamento

paralelo (5 processos) dos algoritmos bio-inspirados em conjunto com o

FDTD 2D para o filtro para-banda... 127 Tabela 7. Teste de desempenho de tempo de processamento paralelo (10

processos) dos algoritmos bio-inspirados e FDTD 2D para o filtro

(15)

xxiii

LISTA DE SIGLAS E ABREVIATURAS

AG Algoritmo Genético

AIS Artificial Immune System

BLAS Basic Linear Algebra Subprograms

CePOF Centro de Pesquisa em Óptica e Fotônica DNG Double Negative Metamaterial

DPS Double Positive Metamaterial

EBG Electromagnetic Bandgap

EE Estratégia Evolutiva

ES Evolution Strategy

FDTD Finite Difference Time Domain

FEM Finite Element Method

GA Genetic Algorithm

GEMAC Grupo de Eletromagnetismo Aplicado e Computacional GNA Gerador de Número Aleatório

HA High Availability

HP High Performance

HPCC High Performance Computing Challenge

HPL High Performance Linpack

JPPF Java Parallel Processing Framework

LHM Left Handed Metamaterial

MEF Método dos Elementos Finitos

MPI Message Passing Interface

NFS Network File System

NRT Natural Ring Test

PVM Parallel Virtual Machine

QoS Quality of Service

RPM RedHat Package Manager

SCSI Small Computer System Interface

SIA Sistema Imunológico Artificial

SNG Single Negative Metamaterial

SRR Split Ring Ressonator

STL Standard Template Library

(16)

xxv

LISTA DE SÍMBOLOS

x Vetor de dados

y Vetor de dados

i Índice para os vetores de dados (coluna)

j Índice para os vetores de dados (linha)

Nproduto Quantidade de produtos vetor-matriz

T1 Tempo de processamento sequencial

Δt_processo Tempo de execucao de uma tarefa no processo (wall clock)

Nprocesso Quantidade de processos executados em paralelo

Δt_mensagem Tempo de troca de mensagens no processamento paralelo

Sp Speedup – Taxa de ganho no processamento paralelo

Pnot Percentual de código não paralelizado

Ep Eficiência do paralelismo

Tp Tempo de processamento paralelo

p Quantidade de processos sendo executados em paralelo

A Matriz

Variação aplicada pelo operador de mutaçã de acordo com uma

função geradora de número aleatório

xind Individuo alocado na população de algum algoritmo bio-inspirado

Sespaco Espaço de busca

f Função objetivo dos algoritmos de otimização (fitness)

nindividuos Quantidade de indivíduos na população

nprocessos Quantidade de processos em execução

nsend Quantidade de indivíduos a serem enviados a um processo

nrecv Quantidade de indivíduos a serem recebidos de um processo

indsend Identificação do individuo a ser enviado a um processo

indrecv Identificação do individuo a ser recebido de um processo

nparametros Quantidade de atributos em um vetor ou matriz

µee Quantidade de pais na Estratégia Evolutiva

ρee Quantidade de indivíduos utilizados durante recombinação na Estratégia Evolutiva

λee Quantidade de filhos na Estratégia Evolutiva

ϴ Percentual de mutação nos algoritmos bio-inspirados

λ0 Comprimento de onda no espaço livre

λsia Valor de referência para a supressão E Intensidade de campo elétrico (volt/metro)

H Intensidade de campo magnético (ampère/metro) D Densidade de fluxo elétrico (coulomb/metro2)

B Densidade de fluxo magnético (tesla ou webers/ metro2) J Densidade de corrente elétrica (ampère/ metro2)

M Densidade de corrente magnética (volt/ metro2)

(17)

xxvi

r

 Permissividade relativa (valor escalar adimensional)

0

 Permissividade no espaço livre (8,854x10-12 farads/metro)

Permeabilidade magnética (henrys/metro) r

 Permeabilidade relativa (valor escalar adimensional)

0

 Permeabilidade no espaço livre (4πx10-7 henrys/meter)

 Condutividade elétrica (siemens/metro)

'

(18)

xxvii SUMÁRIO

Pág.

1. Introdução ... 1

2. Computação Paralela ... 7

2.1. Conceitos de Computação Paralela ... 8

2.2. Cluster de Computadores ... 13

2.3. Análise do desempenho do Cluster de Computadores ... 16

2.4. Conclusões ... 21

3. Computação Bio-Inspirada ... 23

3.1. Conceitos de Computação Bio-Inspirada ... 27

3.2. Mutação: Principal operador de variabilidade ... 31

3.3. Algoritmo Genético (AG) ... 33

3.4. Algoritmo Genético Paralelo ... 38

3.5. Estratégias Evolutivas ... 41

3.5.1. Estratégias Evolutivas (μee/ρee+λee)EE e (μee/ρee,λee)EE Paralelas ... 44

3.6. Engenharia Imunológica ... 46

3.7. Testes de Validação dos Algoritmos Bio-Inspirados Sequenciais ... 51

3.8. Testes de Validação dos Algoritmos Bio-Inspirados Paralelos ... 58

3.9. Conclusões ... 62

4. Diferenças Finitas no Domínio do Tempo (FDTD) ... 63

4.1. Diferenças Finitas no Domínio do Tempo ... 64

4.2. Implementação do FDTD 3D Sequencial ... 67

4.3. PML – Camadas Perfeitamente Casadas ... 76

4.4. FDTD 3D Paralelo ... 78

4.5. Conclusões ... 84

5. Otimização de Antenas de Microfitas ... 85

5.1. Antenas de Microfita ... 86

5.2. Otimização Mono-Objetivo ... 88

(19)

xxviii

5.4. Algoritmos Bio-Inspirados Paralelos: Eficiência e Impacto do Paralelismo na

Otimização das Antenas de Microfita ...95

5.5. Conclusões ...103

6. Algoritmos Bio-Inspirados Sequenciais e Elementos Finitos 2D para a Otimização de Estruturas Metamateriais no Domínio da Frequência ...105

6.1. Teste de Convergência dos Algoritmos – Minimização dos Campos Transmitidos Após a Estrutura ...107

6.2. Acoplamento Ar e Guia de Onda ...111

6.3. Divisor de Potência Desbalanceado ...114

6.4. Acoplador para Guias Micro e Nanométricos ...117

6.5. Conclusões ...120

7. Algoritmos Bio-Inspirados Paralelos e Diferenças Finitas no Domínio do Tempo (FDTD) para Análises de Desempenho ...121

7.1. FDTD 2D no modo TEz e Algoritmos Bio-Inspirados ...122

7.2. Análise de Estruturas Metamaterial 3D ...130

7.3. Conclusões ...140

8. Conclusões e Trabalhos Futuros ...143

8.1Conclusões ...143

8.2Trabalhos em Andamento e Futuros ...144

Referências Bibliográficas ...147

(20)

1

Capítulo 1

Introdução

A evolução desenvolvimentista vem proporcionando quebras de paradigmas para o provimento de novas tecnologias. No eletromagnetismo, que é a base para as telecomunicações, a exploração de efeitos físicos e o interesse por novos dispositivos tem conduzido os pesquisadores a análises que extrapolam recursos naturais e padrões científicos pré-definidos.

Um recente exemplo são as análises e o emprego de estruturas baseadas em metamaterial. Metamaterial pode ser definido como sendo materiais ou estruturas fabricadas e que apresentam efeitos eletromagnéticos ausentes ou observáveis na natureza [1].

A modelagem desse tipo de estrutura ainda não possui uma solução analítica geral, requerendo modelos numéricos que possibilitam simular efeitos eletromagnéticos nos domínios do tempo ou da frequência, dependendo da aplicação.

Isso implica na complexidade de exploração e modelagem necessárias aos metamateriais, influenciando no tempo de trabalho, mão-de-obra qualificada, custos financeiros e nos recursos computacionais para realizar as simulações com o devido refinamento.

Por esses motivos, novos recursos para os métodos numéricos e ferramentas computacionais vêm sendo explorados para reduzir e possibilitar a modelagem de novos e mais complexos dispositivos, utilizando recursos computacionais disponíveis com o menor custo possível.

Nesse contexto, esse trabalho tem como objetivos prover soluções computacionais que integrem sofisticados recursos computacionais para o provimento de ferramentas flexíveis, multi-plataforma, de menores custos financeiros e de tempo de processamento. Esses recursos devem utilizar inteligência computacional, sob algumas

(21)

2

meta-heurísticas, para as otimizações de estruturas baseadas em metamateriais, nos domínios da frequência e do tempo.

Para a modelagem no domínio da frequência foi utilizado um código de elementos finitos bidimensional disponível no grupo [2],[3] e para o domínio do tempo foram implementados métodos das diferenças finitas no domínio do tempo (Finite Difference

Time Domain – FDTD) em 2D e 3D. Os algoritmos FDTD foram implementados tendo

como foco principal os testes de desempenho paralelo.

Nesse ponto também é importante destacar que foram adaptadas soluções analíticas para a modelagem de antenas de microfita retangulares, por serem bastante utilizadas em telecomunicações e por apresentarem padrões de equacionamento compatíveis a classe de problemas do eletromagnetismo computacional. Eles foram tomados como base para os testes de convergência (benchmarking) dos algoritmos de otimização para o eletromagnetismo computacional [4],[5]. Neste caso, os algoritmos de otimização estão inseridos na subclasse dos algoritmos bio-inspirados, a serem apresentados a seguir.

A flexibilidade do software contempla as facilidades para adicionar novos recursos aos algoritmos de otimização e ao FDTD, ao uso em diferentes aplicações de eletromagnetismo computacional e às necessárias manutenções nos códigos.

A exigência de algoritmos multi-plataforma, justifica-se pela heterogeneidade dos integrantes do Grupo de Eletromagnetismo Aplicado e Computacional (GEMAC) quanto à formação acadêmica e experiências com computador, que implicam em opções por diferentes sistemas operacionais e quanto aos recursos de desenvolvimento empregados. Porém, sugere-se o utilizar Linux, sob a distribuição Debian, devido à sua gratuidade e bom desempenho apresentado nos testes apresentados Capítulo 2. Esse capítulo apresenta conceitos e testes de desempenho de processamento paralelo em um cluster de computadores, utilizando o padrão para trocas de mensagens MPI 2.0. Neste trabalho, optou-se pelo uso do termo cluster, por já ser bastante difundido na literatura técnica e científica.

Para gerenciar todos esses recursos foram utilizadas especificações de Engenharia de Software, desde a etapa de análise até os processos de testes [6]. A codificação segue a orientação a objetos, a qual é representada por diagramas

(22)

3

especificados na Unified Modeling Language (UML) [7] e a linguagem de desenvolvimento padrão foi a C++. As justificativas para escolher a linguagem C++ fundamentam-se no seu desempenho em processamento numérico, gerenciamento de arquivos, orientação a objetos, recursos para computação paralela com o padrão MPI (Message Passing Interface) e a possibilidade de integrar com outras aplicações implementadas em outras linguagens como Java e Fortran.

Assim, destaca-se que esses recursos são importantes para a integração de sofisticadas técnicas de computação paralela e inteligência computacional para o provimento da ferramenta computacional voltada à otimização de dispositivos eletromagnéticos no domínio do tempo e da frequência.

A integração da computação paralela com a inteligência computacional é necessária para que sejam otimizados dispositivos bidimensionais mais complexos e para apresentar alguns testes iniciais com estruturas tridimensionais modeladas com o FDTD 3D.

Nesse trabalho o processamento paralelo inclui a implantação e otimização (neste caso a palavra otimização refere-se à um conjunto de configurações, incluindo sistema operacional e bibliotecas, para tornar o processamento mais ágil) de um cluster de computadores com seu potencial maximizado para aplicações de eletromagnetismo computacional. No que se refere à inteligência computacional, foram implementados três diferentes algoritmos bio-inspirados: Algoritmo Genético, Estratégias Evolutivas e Sistema Imunológico Artificial, sendo que este último foi pela primeira vez aplicado na fotônica integrada. Ainda, esses algoritmos bio-inspirados foram implementados nas versões de processamento sequencial e paralelo, para analisar a eficiência na rapidez de convergência e no tempo de processamento.

Portanto, esse trabalho integra computação paralela e inteligência computacional para agilizar a modelagem de novos e sofisticados dispositivos eletromagnéticos, os quais se baseiam em estruturas metamateriais.

Os metamateriais são estruturas artificialmente projetadas e que apresentam efeitos diferentes dos observáveis na natureza [1],[8]. Os estudos nessa área foram apresentados em 1967, pelo físico russo Victor Georgievich Veselago. Ele teorizou a

(23)

4

possibilidade de existência de materiais com permissividade e permeabilidade negativa. Esse trabalho foi traduzido para o Inglês em 1968 [9].

Nesse trabalho Veselago teorizou a possibilidade da existência de efeitos físicos que ocorreriam de maneira diferente dos usuais e observáveis na natureza, devido à permissividade e à permeabilidade negativa. Isso influencia na velocidade de grupo do sinal, inversão do efeito Doppler e outros [10]. Porém, nesse mesmo trabalho já havia a afirmações de que tais materiais não existiam.

Era sabido que os meios com permissividade negativa podiam ser obtidos através de arranjos bidimensionais e tridimensionais de fios condutores [10] apud [11]. Porém, foi em 1999 que Pendry et al.[12] apresentaram um experimento em que foi construído um arranjo de anéis ressoadores (Split Ring Resonator – SRR) que apresentavam permeabilidade negativa. Por fim, para conseguir combinar essas duas propriedades, permissividade e permeabilidade negativa, no ano de 2000, Smith e seu grupo [13] propuseram um arranjo que combinava os SRR e os fios condutores paralelos.

Desde então, a exploração desses tipos de estruturas metamateriais vem aumentando em microondas e fotônica, visando prover novos materiais que atendam às demandas de fabricação de novos dispositivos [14],[15].

Os diferentes tipos de metamateriais vêm sendo aproveitados em inúmeras aplicações que envolvem o eletromagnetismo, tanto em microondas como em fotônica. Pode-se citar como exemplos de aplicações em guias de ondas [16][17], linhas de transmissão [16], antenas [18] e outras. Recentemente as aplicações que tem chamado atenção são as super-lentes [19],[20] e cloaks para aplicações de invisibilidade [21][22], como mostrado na Figura 1 [21].

Para os metamateriais não existe uma solução analítica geral para representá-los, sendo necessário utilizar métodos numéricos capazes de modelar essas estruturas no domínio do tempo ou da frequência, como neste trabalho que apresenta as modelagens com o FEM e o FDTD. Além disso, ao considerar otimização e modelagem, vale destacar o emprego das técnicas de transformações óticas, otimização por topologia e as meta-heurísticas, pois possibilitam otimizar essas estruturas metamateriais para o provimento de modelos computacionais de dispositivos fotônicos e de microondas com características mais sofisticadas.

(24)

5

Figura 1. Imagens tomadas por um microscópio por varredura de elétrons a) ponta de entrada do guia e o espelho de Bragg no plano x-z b) colunas de Silício distribuídas em diferentes quantidades para determinar o índice efetivo do cloak [21].

Nos Capítulos 2 e 3, são apresentados recursos de computação paralela e de algoritmos bio-inspirados sob uma perspectiva computacional, respectivamente. Sendo que as validações apresentadas nesses capítulos utilizam ferramentas e técnicas disponíveis nesse tipo de literatura. O Capítulo 4 conceitua o método das Diferenças Finitas no Domínio do Tempo (FDTD) e apresenta resultados de desempenho do método tridimensional implementado com o processamento paralelo.

No Capítulo 5 é apresentado o desempenho das otimizações sequenciais e paralelas aplicadas sobre as antenas de microfita retangulares, servindo como testes adicionais de validação dos algoritmos de otimização, que visam apenas analisar se o algoritmo converge e não quão eficiente isso ocorre. Esse tipo de validação ocorre dessa maneira, pois segue o teorema No Free Lunch (NFL) para otimizações, que define que um algoritmo pode ser eficiente para uma classe de problemas, mas não apresentar os mesmos resultados em outras classes [23].

O Capítulo 6 apresenta as otimizações sequenciais no domínio da frequência através da integração dos algoritmos bio-inspirados com método dos elementos finitos 2D, onde são apresentados quatro novos dispositivos fotônicos.

O Capítulo 7 tem como foco apresentar testes desempenho computacional quanto ao desempenho do processamento paralelo. Esses testes incluem os algoritmos bio-inspirados otimizando uma estrutura bidimensional no modo TEz e outros com o FDTD

3D paralelo analisando estruturas metamateriais. Aplicações mais sofisticadas desses recursos estão sendo desenvolvidas e serão apresentadas em breve. Por fim, o

(25)

6

Capítulo 8 sumariza as conclusões e contribuições desse trabalho, assim como os trabalhos em andamento e outros a serem desenvolvidos.

(26)

7

Capítulo 2

Computação Paralela

A exploração continuada e em larga escala de novas tecnologias requer constante construção do conhecimento e compreensão sobre o uso de técnicas cada vez mais sofisticadas e complexas. Na computação científica essa afirmação pode ser notada quando há a necessidade de implementação de algum método numérico, pois demanda profissionais qualificados, possível necessidade de grande poder computacional (considerando memória e processamento), exaustivas rotinas de testes para garantir uma solução correta, processamento em tempo hábil e ferramentas fáceis de serem reaproveitadas.

Para satisfazer essa demanda computacional de alto desempenho (High

Performance Computing, HPC) existem computadores que disponibilizam grande

número de processadores (supercomputadores) e/ou que são formados por um conjunto de computadores organizados de modo a operarem como um único recurso computacional, sendo conhecidos como cluster de computadores, ou seja, aglomerado de computadores [24].

Os supercomputadores são soluções eficientes para o processamento numérico de alto desempenho, porém seus custos extrapolam as condições financeiras da maioria das instituições de ensino e pesquisa do país.

Por esses motivos, neste trabalho optou-se como solução alternativa a implementação, análise e o uso de cluster de computadores. Eles apresentam menor custo, flexibilidade para uso de diferentes bibliotecas numéricas e sistemas operacionais. Neste trabalho, essas soluções computacionais paralelas seguirão o padrão MPI 2.0 (Message Passing Interface). Dessa forma, as ferramentas computacionais apresentadas nesse trabalho tem por principais objetivos:

(27)

8

Estudar, implementar e analisar a computação paralela utilizando cluster de computadores e verificar seu desempenho quanto ao aproveitamento de hardware e software disponível;

 Aproveitamento dos recursos computacionais disponíveis para a integração do processamento paralelo, algoritmos bio-inspirados e dos métodos numéricos em aplicações de eletromagnetismo computacional;

 Tentar prover melhorias quanto ao desempenho computacional desses algoritmos, possibilitando a realização de simulações mais complexas e que requerem grande poder computacional.

Dessa forma, este capítulo apresenta estudos e análises realizadas sobre a computação paralela. Na primeira seção constam definições de computação paralela, onde são apresentadas algumas formas utilizadas em análises de eficiência das estruturas paralelas. Na segunda seção, há uma breve apresentação sobre cluster de computadores e algumas informações sobre sua implementação e as formas de uso adotadas neste trabalho. Por fim são apresentados resultados de testes de desempenho dessa arquitetura, combinando alguns recursos de software e hardware para incrementar sua eficiência.

2.1.Conceitos de Computação Paralela

Para a melhor compreensão da computação paralela, previamente são necessárias algumas definições, dentre elas a diferença entre sistemas distribuídos e computação paralela. Para isso, define-se rede de computadores é como sendo uma infra-estrutura de interligação (interconexão) de um conjunto de computadores através de diferentes topologias e meios de comunicação que possuem os mesmos protocolos para transferência de dados [25].

Os sistemas distribuídos são formados por diversos computadores que se comunicam através de diferentes redes e que hospedam os processos executados em um conjunto comum de protocolos próprios ao gerenciamento distribuído.

Além disso, para compreender melhor como o processamento distribuído ocorre é interessante conhecer as definições de processos e threads, sendo:

(28)

9

 Processo é um programa em execução, isto é, um programa que está sendo executado num dado momento no processador virtual do sistema operacional devidamente referenciado como um;

 Threads é uma forma de divisão de um processo em duas ou mais tarefas ao mesmo tempo.

Assim, pode-se definir de uma maneira simples que a computação distribuída é a execução de tarefas (jobs) em diferentes processos, podendo ou não haver a comunicação entre elas.

A computação paralela, por sua vez, pode ser definida como sendo a execução simultânea de dois ou mais processos e com o objetivo de resolver um mesmo problema [26]. Nas aplicações paralelas há comunicação entre os processos que podem ser executados em uma ou mais máquinas dependendo de sua arquitetura. Quando há o processamento paralelo em uma máquina há a possibilidade de utilizar processos ou threads.

Dessa forma, existem diferentes técnicas de desenvolvimento de algoritmos para o processamento paralelo. Neste trabalho foi explorado o uso de processos independentes e que se comunicam através da troca de mensagens baseando-se no padrão MPI 2.0 (Message Passing Interface) [26].

Assim, o uso da computação paralela requer importantes avaliações quanto ao desempenho da solução, considerando tempo de processamento e o custo do projeto. Também é importante considerar os mecanismos de validação dos algoritmos paralelos.

Esse tipo de solução com processamento paralelo pode ser financeiramente custoso. Existem mecanismos que possibilitam estimar esses custos, para isso é necessário um levantamento mercadológico bem detalhado, considerando:

 Tipo de aplicação a ser explorada: relacionando a necessidade de uso de memória, processamento e da arquitetura de hardware (processadores, rede de computadores, processadores gráficos e outros);

 Instalação do equipamento: considerar custos e boas práticas de segurança das instalações elétrica e contra incêndio;

(29)

10

 Mecanismos voltados à segurança computacional da infra-estrutura: boas regras de segurança do equipamento e para as pessoas que tem acesso a ele. Esse item é importante devido à visibilidade desses equipamentos para fins ilícitos (hackers);

A necessidade de mecanismos para cópias de segurança (backup) dos dados;

 Mão-de-obra qualificada.

Na seção a seguir são apresentados alguns recursos matemáticos empregados na computação paralela para se estimar o desempenho, calcular a eficiência do processamento paralelo e analisar as reduções de tempo e consumo de memória.

Por fim, quando há a implementação de métodos numéricos, devem existir procedimentos bem definidos para a validação dos resultados numéricos e analisar o impacto do paralelismo na solução, que podem ocorrer de duas maneiras mais usuais:

 Comparação dos resultados de um exemplo de aplicação que foi validado em um algoritmo sequencial com os resultados da solução paralela. Nesses testes os resultados numéricos devem ser idênticos;

 Implementação dos algoritmos e comparação dos resultados com soluções analíticas, quando houver.

Os cálculos relacionados à previsão de desempenho teórico e o resultado real do processamento paralelo podem sofrer alterações de acordo com o tipo da aplicação, a arquitetura dos equipamentos envolvidos, a forma como o paralelismo ocorreu, considerando a rede de computadores e os algoritmos, e o tipo das instruções a serem executadas.

Para exemplificar, a multiplicação entre dois vetores é uma operação que pode ser realizada e completamente dividida em diferentes computadores. Esse exemplo conduz ao conceito da independência das diferentes partes dos dados e é considerado como paralelismo matemático perfeito. Esse conceito é praticado na biblioteca BLAS (Basic

Linear Algebra) [29] que realiza o produto interno de dois vetores (1).

1 produto N i i i c x y  

 (1)

(30)

11

Nesse caso c é um escalar, provindo de um somatório de N produtos interno de xi

e yi que pode ser resolvido em vários processos.Em (2) e (3) são apresentadas

soluções paralelas de cada trecho dessa operação matricial distribuída em dois processos. / 2 1 1 produto N i i i c x y  

 (2) 2 / 2 1 produto produto N i i i N c x y   

(3)

Onde c1 é a parte do produto processado em um processo e c2 é a segunda a

parte do somatório realizado em um segundo processo. Ao final dos processos é necessário juntar esse somatório para retornar o valor final para finalização da simulação, como mostrado na Figura 2.

Figura 2. Fluxograma geral do processamento paralelo adotado em grande parte das aplicações.

Essa junção pode ocorrer através da troca de mensagens e será apresentada na próxima seção. Assim, os algoritmos desenvolvidos nesse trabalho seguem um fluxo básico, onde um processo principal (master) é inicializado e instrui ou distribui as tarefas aos processos escravos (slaves). Nesse fluxo há a ocorrência de trocas de mensagens entre os processos para a sincronização e solução dos problemas.

(31)

12

No contexto do processamento paralelo há a possibilidade de se estimar o desempenho da solução paralela ideal. Considerando o exemplo do somatório das parcelas da multiplicação de dois vetores, o tempo de cada soma é Δt_processo. Esse

tempo é conhecido como wall clock e está diretamente relacionado à velocidade do processador. O tempo total para o processamento sequencial é apresentado por (4).

1 produto 1 Δt_processo

TN   (4)

No caso do processamento paralelo é introduzida a quantidade de processos (Nprocessos) a serem executados em paralelo e o tempo necessário para a troca de

mensagens por Δt_mensagem para a efetivação da solução (5).

2 1 Δ_ Δ_ Δ_

produto

t processo t processo t mensagem processos N T N          (5)

Assim, uma maneira de se prever o tempo com o processamento paralelo, ou seja, de se estimar qual será o ganho de desempenho (speedup) da solução paralela pode ser dado por (6).

_ 1 _ _ _ _ _ 1 Δ 1 Δ 1 Δ Δ Δ Δ

produto t processo produto

p

produto t mensagem

p produto

t processo t processo t mensagem

processo t processo processos N N T S N T N N N                   (6)

Para exemplificar, quando o tempo de comunicação computacional (Δt_mensagem) e da execução da instrução base (Δt_processo) são muito pequenos, no caso da execução em dois processos, tem-se que o speedup (S2) é de aproximadamente 2 (S2≈2). Esse

procedimento de dividir para conquistar é fundamental para o processamento paralelo. Existem algumas outras formas de predição da solução paralela, considerando a latência da rede, o tamanho da mensagem e a largura de banda. Devido a essa variedade de modelos de predição de desempenho, no ano de 1967, Gene Amdahl propôs uma forma generalizada para avaliar o speedup [4]. Esse fator de speedup generalizado é conhecido como Lei de Amdahl.

A Lei de Amdahl apresentada em (7) considera Pnot como sendo o percentual de

código que não foi paralelizado ou que é inviável de ser paralelizado (inicialização e finalização). Por outro lado, (1-Pnot) é a parcela de código perfeitamente paralelizada.

(32)

13

Nesse caso não são considerados parâmetros de comunicação, atrasos provocados pela contenção de memória, latência de rede e outros.

1

1 1 1 1 not p not not not T S P P P P T p p            (7)

Existe a possibilidade do valor de ganho com o processamento paralelo estar acima do valor previsto pelo speedup, sendo conhecido como super-linear speedup. Isso pode acontecer devido ao acesso da memória cache ou devido à sub-otimização da implementação sequencial do algoritmo. Também existe a possibilidade de estouro da memória RAM durante os testes sequenciais, tornando os resultados paralelos impraticáveis de serem comparados

A análise de eficiência (Ep) do processamento paralelo pode ser obtida por (8), ao

relacionar o tempo de processamento sequencial (T1) com o tempo paralelo (Tp),

retornando o percentual de eficiência em relação ao ótimo para o processamento paralelo que seria o tempo sequencial dividido pela quantidade de processos (T1/p).

1 100 p p T T E p           (8) 2.2.Cluster de Computadores

A definição de cluster de computadores adotada nesse trabalho é de que esta é uma estrutura que interconecta computadores através de uma rede e que eles são configurados para trabalharem em paralelo para solucionar um determinado problema [27]. Os serviços providos pelo cluster de computadores estão, basicamente, divididos em duas categorias: os de alta disponibilidade (High Availability – HA) e alto desempenho (High Performance – HP) [28]. Esse trabalho foca-se no desenvolvimento de algoritmos paralelos para o processamento em cluster de alto desempenho com aplicações no eletromagnetismo computacional.

O objetivo de funcionamento de um cluster baseia-se em dividir e distribuir as tarefas complexas, e que requerem grande poder computacional, entre os computadores configurados nessa estrutura. Dessa forma, há uma divisão do problema

(33)

14

complexo em sub-problemas que são resolvidos independentemente em cada processo executado no cluster de computadores, visando incrementar o desempenho computacional [30].

Quando há um projeto de implantação de um cluster de computadores existem alguns pré-requisitos a serem considerados [27]:

 Segurança da infra-estrutura (rede, computadores, refrigeração e instalação elétrica);

 Qualidade de Serviço (QoS);

 Estabelecimento de normas de uso.

A qualidade dos serviços e as normas de uso do cluster variam bastante, estando geralmente relacionadas com a quantidade de usuários e tarefas que eles realizam. Já, a segurança da infra-estrutura é importante para todos os projetos, principalmente a segurança da rede que interconecta os computadores.

Em [26],[30] é apresentado uma estrutura geral de segurança para arquiteturas distribuídas (DSI) (Figura 3), com hierarquias de usuários, políticas dinâmicas de segurança, chaves de gerenciamento transparente utilizando criptografia e acesso controlado. Essa estrutura foi utilizada na implantação do cluster de computadores do Centro de Pesquisas em Óptica e Fotônica (CePOF), aproveitando os recursos e ferramentas pertinentes.

Figura 3. Esquemático geral do processamento paralelo adotado em grande parte das aplicações [26].

(34)

15

As tarefas de especificação, configuração e manutenção desse cluster fazem parte desse trabalho. Ele possui 12 nós, cada um com 2 processadores AMD Opteron 246,com 4 GB de memória RAM e 73 GB de HD SCSI. Essas máquinas estão interconectadas através de uma rede Gigabit provida por um Switch 3COM2824 (Rede Gigabit) e cabeamento PatchCord Kat 6.

A Figura 4 apresenta um esquemático da interconexão dos computadores nesse

cluster e sua conexão com a Internet, possibilitando o acesso remoto do equipamento.

Figura 4. Estrutura física do cluster de computadores.

Uma foto desse equipamento durante sua instalação é apresentada na Figura 5, sendo que um dos computadores está sendo montado e posicionado na prateleira.

(35)

16

2.3.Análise do desempenho do Cluster de Computadores

Para iniciar as análises de desempenho nesse cluster de computadores foram considerados:

 Sistema operacional;

 Sistema distribuído de arquivos;

 Protocolos de comunicação;

Bibliotecas sob o padrão Message Passing Interface (MPI) 2.0.

O sistema operacional é o principal tópico em termos de software, pois é ele quem provê o núcleo (kernel) para o gerenciamento de serviços utilizados no computador. Foram analisados dois diferentes sistemas operacionais especificados pela GPL e que são distribuições Linux, sendo o Debian e o CentOS. Essas duas distribuições foram selecionadas por possuírem diferentes padrões de empacotamento de arquivos (RPM e DEB) e por serem gratuitos.

Ainda, há de se destacar que sistemas operacionais utilizados em cluster para o processamento paralelo devem prover recursos para o compartilhamento de dados entre os nós e meios de comunicação seguros (padrões e protocolos). Para gerenciar essas aplicações são necessários processos que são executados em segundo plano (daemons) e que causam custos computacionais adicionais.

O compartilhamento de dados, a comunicação de dados e a segurança da infra-estrutura são necessárias para o estabelecimento do padrão ou bibliotecas de comunicação entre os nós, podendo ser através de Parallel Virtual Machine (PVM),

Java Parallel Processing Framework (JPPF) ou Message Passsing Interface (MPI).

Nesse trabalho optou-se pelo padrão MPI 2.0, pois possibilita aplicar diferentes bibliotecas que utilizam os mesmos métodos para as trocas de mensagens, analisando duas das mais populares a Local Area Multicomputer MPI (LAM-MPI) e a MPICH.

Para avaliar os quatro itens descritos acima, foi selecionado o pacote de testes HPCC (High Performance Computing Challenge), desenvolvido pelo grupo de Inovações em Computação da Universidade do Tennessee Knoxville e pelo laboratório Nacional Oak Ridge. Esse pacote é bastante utilizado e possuí diferentes testes de desempenho que cobrem os quatro itens de interesse acima mencionados, além de

(36)

17

testes de acesso a memória RAM e a inclusão do pacote High Performance Linpack (HPL) [31], que é utilizado nos testes de desempenho dos computadores listados entre os 500 melhores do mundo [32], justificando seu uso nesse trabalho. Os resultados apresentados a seguir são reproduzíveis no equipamento e com as configurações mencionadas, pois foram obtidos em três execuções seguidas para que se tivesse certeza dos valores.

O HPL mede a taxa de cálculos de ponto flutuante por segundo (flops/s), através da solução de sistemas lineares (9) de ordem n (10).

A x

 

b

(9) n nxn b x A ; ,  (10)

No teste HPL é possível configurar o tamanho do problema através do parâmetro

n, onde n determina o número bytes da matriz A. Nesses testes é recomendado definir n com tamanho 20% inferior à quantidade de memória disponível por nó. Isso é

importante para que não haja estouro de memória durante os testes, retornando resultados de desempenho incorretos [31].

O desempenho da rede de computadores pode ser medido através de sua latência (diferença de tempo entre o envio de um pacote e a finalização de seu recebimento em outro nó) e pela largura de banda através da troca de mensagens entre os nós adjacentes: neste teste utiliza-se o Natural Ring Test (NRT).

Todos os testes de desempenho apresentados neste trabalho seguem o procedimento de medir o desempenho computacional através das relações de tempo de processamento pela quantidade de processos. Também foram considerados problemas matriciais com diferentes dimensões.

Os testes seguem a seqüência dos itens apresentados acima. Dessa forma, o primeiro teste analisa o desempenho de duas distribuições Linux, sendo o Debian 4.0 e o CentOS 9.0. Para isso, foram fixados os recursos de software instalados nas máquinas para não haver execuções errôneas.

Com o HPL, o desempenho de processamento em ambos os sistemas operacionais foi similar. No entanto, a latência de rede (Figura 6) e largura de banda (Figura 7) analisados com o NRT apresentaram algumas diferenças.

(37)

18

Nesse caso é possível notar que a latência da rede é, em média, 12% menor no Debian que no CentOS. Além disso, a largura de banda é 4% maior no Debian. Com esses resultados optou-se pela instalação do Linux com a distribuição Debian 4.0.

Figura 6. Gráfico de medição de latência no Debian e no CentOS.

Figura 7. Comparações de Largura de banda entre CentOS e Debian.

Outro teste realizado foi para analisar o desempenho de duas diferentes bibliotecas MPI 2.0, sendo MPICH2 1.0.7 e a LAM-MPI 6.5.9 Os resultados de desempenho podem ser observados na Figura 8, Figura 9 e Figura 10. A primeira figura contempla os testes de processamento em medidas de Gigaflops por segundo. O segundo teste apresentado na Figura 9, mede a latência de rede com as bibliotecas e apresentou qual possui melhor comportamento em possíveis trocas de mensagens. O

Quantidade de Processos La rg u ra d e Ba n d a (G B/ s)

(38)

19

último teste foca-se no aproveitamento dessas bibliotecas quanto a banda de transmissão de dados pela rede.

Figura 8. Comparação de desempenho entre o MPICH2 e a LAM-MPI medido em Gflop/s.

Figura 9. Comparação de latência entre o MPICH2 e a LAM-MPI.

Quantidade de Processos G fl o p /s

MPICH2 x LAM-MPI (HPL com N=20.000)

Quantidade de Processos La tên ci a (m s)

(39)

20

Figura 10. Comparação da largura de banda entre o MPICH2 e a LAM-MPI.

Os resultados de desempenho das duas bibliotecas, no geral, mostraram-se próximos. Porém, é possível notar que a latência de rede com a biblioteca MPICH2 apresenta valores inferiores, aproximadamente 10% a menos na média. Esse valor menor contribuiu para a escolha dessa biblioteca, pois, novamente, a latência de rede é a diferença de tempo entre o envio de um pacote e a finalização de seu recebimento em outro nó. Outro motivo que levou a considerar essa biblioteca MPI é a sua disponibilidade compactada na distribuição Debian.

A última seqüência de testes considera o impacto de se utilizar ou não um sistema para arquivos distribuídos. Como procedimento para os testes, analisou-se o uso e a ausência do Network File System (NFS) no processamento paralelo (Figura 11). Isso mostra uma queda desempenho com certas quantidades de processos com o teste HPL considerando vetores com 20.000 elementos. Esse recurso é importante para o compartilhamento e a centralização dos dados no nó servidor.

Quantidade de Processos La rg u ra d e B an d a (M B /s )

(40)

21

Figura 11. Comparação de desempenho usando e não usando o NFS no processamento paralelo.

Os resultados mostram que o uso do NFS afeta o processamento paralelo, como notado no intervalo de 5 a 19 processos. Isso pode ter ocorrido pela execução de

daemons ou incremento de dados trafegando pela rede no momento dos testes. Dessa

forma, recomenda-se prover soluções que não utilizem NFS.

Por fim, com esses testes de desempenho são apresentadas contribuições quanto aos procedimentos de melhoramento de desempenho e evidencia-se que o cluster configurado neste trabalho apresentou melhor desempenho ao utilizar a distribuição Debian e MPICH, porém não foi possível até o momento compartilhar os arquivos sem o NFS e outras ferramentas de compartilhamento de arquivo que vêm sendo analisadas.

2.4.Conclusões

O processamento paralelo, que neste trabalho emprega cluster de computadores, tem por principal objetivo a redução do tempo de processamento em aplicações de eletromagnetismo computacional de grande porte.

Neste capítulo, foram apresentados conceitos de computação paralela, cluster de computadores e mostrados testes de desempenho em um cluster de computadores disponibilizado pelo CePOF.

Quantidade de Processos G fl o p s/ s

Desempenho Computacional com e sem NFS (HPL com N=20.000)

com NFS sem NFS

(41)

22

Os testes de desempenho ocorreram com diferentes configurações de sistema operacional e software, sendo que eles analisaram capacidade de processamento, gerenciamento nas trocas de dados pela rede e uso de memória.

Com isso, foi possível mensurar o tempo de processamento e o aproveitamento dos recursos computacionais disponíveis nesse cluster. Considerando os recursos de

hardware e software utilizados, os resultados mostraram que a melhor configuração foi

utilizando Linux na distribuição Debian, com a biblioteca MPICH e sem os serviços de compartilhamento de arquivos com NFS. Este último recurso não foi possível de ser substituído até o momento, mas é tarefa vem sendo estudada para ser realizada.

O estabelecimento dessa configuração proporcionou uma configuração software melhorada para o processamento das aplicações, em especial as de eletromagnetismo computacional, pois tende a reduzir o tempo de processamento e aproveitar melhor os recursos disponíveis no cluster. Além disso, mostrou um procedimento de comparação prático, que pode ser utilizado em outros sistemas semelhantes.

(42)

23

Capítulo 3

Computação Bio-Inspirada

O mundo está passando por um processo de constantes mudanças, que implicam na geração de desafios e demandam novos e sofisticados sistemas de engenharia [33]. Nesse contexto, a construção continuada do conhecimento é necessária para o prosseguimento desse ciclo, que tem como base as relações sujeito-objeto e a realidade dos indivíduos como sendo o meio de conexão entre a teoria e a prática [34]. Essa dinâmica evolutiva do mundo, atualmente, baseia-se principalmente na informação, o que contribui com o atual paradigma socioeconômico conhecido como Sociedade da Informação.

Esse processo pode influenciar as constantes manutenções das características dos indivíduos envolvidos nesse domínio durante um intervalo de tempo, pois elas tendem a serem propagadas aos outros.

Dessa forma, há a possibilidade de associar esse processo às Teorias Neo-Darwinianas ao considerar que a evolução ocorre, basicamente, através da seleção dos indivíduos que melhor se adaptam a um determinado ambiente. Nesse contexto, também é considerado que alguns desses indivíduos sofrem alterações (mutações) e/ou se recombinam de modo a contribuir com a diversidade populacional e a continuidade do processo evolutivo [35]. Essas características são consideradas ao longo de gerações.

No início dos anos de 1950 esses conceitos começaram a ser especificados em computadores com diferentes objetivos, dentre os quais os que intentavam explicar as relações entre os indivíduos, seus processos evolutivos em diferentes ambientes e a consolidação de ferramentas que auxiliam na solução de sistemas de engenharia [35]. Nesta tese é abordada sua exploração na otimização de dispositivos eletromagnéticos, ou seja, no contexto de aplicações de engenharia.

(43)

24

Nessas linhas de atuação, destaca-se que no ano de 1960 o Algoritmo Genético começou a ser pensado por John Holland [36], e desenvolvido durante as décadas de 60 e 70 por ele, seus alunos e colegas da Universidade de Michigan. Em 1965 Biernet, Schwefel, e Rechenberg introduziram as Estratégias Evolutivas (Evolutionsstrategie, nome original em Alemão) [37]. Fogel, Owens e Walsh, em 1966 desenvolveram a técnica da Programação Genética [38].

Esses algoritmos se enquadram na subárea da computação bio-inspirada conhecida por computação evolutiva. A computação evolutiva baseia-se nos mecanismos evolutivos encontrados na natureza, tais como a auto-organização e o comportamento adaptativo, sendo este um grupo de métodos baseados nas teorias Neo-Darwinianas que consideram o processo evolutivo das espécies [39]. Onde considera-se que os indivíduos mais aptos e melhor adaptados têm mais chances de se reproduzirem e sobreviver [40][41]. Também há a possibilidade de replicação das características dos indivíduos mais aptos para as próximas gerações.

Assim, a computação bio-inspirada pode ser definida como sendo a convergência da Ciência da Computação, Biologia e Matemática para representar fenômenos estocásticos observados na natureza [39]. Suas aplicações seguem as mesmas da computação evolutiva, na representação de sistemas e suas interações, e no desenvolvimento de ferramentas computacionais para a Engenharia. Porém, existem mecanismos diferenciados de representação e solução de problemas. Os grupos de técnicas associadas à computação biologicamente inspiradas estão apresentadas na Figura 12.

(44)

25

Figura 12. Tipos de Algoritmos Bio-Inspirados disponíveis

Nesse contexto, este trabalho explora a computação bio-inspirada através do emprego de Sistema Imunológico Artificial (SIA) e a computação evolutiva, pelos Algoritmos Genéticos (AG) e Estratégia Evolutiva (EE), para a otimização de dispositivos eletromagnéticos.

A escolha dos algoritmos bio-inspirados neste trabalho é justificada pela:

 Obtenção de bons resultados de convergência em diferentes aplicações, como no eletromagnetismo computacional [4];

 Flexibilidade de aplicação em diferentes problemas em mono e multi-objetivo;

 Facilidade de integração com os métodos numéricos utilizados no eletromagnetismo computacional;

 Possibilidade de implementação de algoritmos paralelos para problemas de grande porte;

 Vasta quantidade de recursos que podem ser explorados para o melhoramento de desempenho em otimizações de eletromagnetismo computacional.

Além disso, este trabalho tem por objetivo comparar a eficiência desses algoritmos e o tempo de processamento quando integrados com o método dos elementos finitos (FEM) e o método das diferenças finitas no domínio do tempo (FDTD) para a otimização de dispositivos de eletromagnetismo em duas dimensões. A otimização 3D

Computação Bio-Inspirada Algoritmos Evolutivos Redes Neurais Artificiais Enxame de Partículas Sistema Imunológico Artificial • Algoritmo Genético • Estratégia Evolutiva • Programação Evolutiva • Programação Genética • Medula Óssea • Seleção Negativa • Seleção Clonal

• Modelo de Rede Imune Contínua • Modelo de Rede Imune Discreta

Referências

Documentos relacionados

Existem vários tipos de Psoríase: Psoríase em placas ou psoríase vulgar - representa a maior parte dos casos de psoríase e é caracterizada por lesões com relevo, vermelhas e

Preliminarmente, alega inépcia da inicial, vez que o requerente deixou de apresentar os requisitos essenciais da ação popular (ilegalidade e dano ao patrimônio público). No

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política

Codificação semelhante a essa pode ser observada no fenô- meno conhecido como new journalism, que teve nos Estados Unidos o ponto inicial de sua elaboração: um estilo de reportar

ABSTRACT: The toxicological effects of crude ethanolic extracts (CEE) of the seed and bark of Persea americana have been analyzed on larvae and pupae of

The purpose of this study is to recognize and describe anatomical variations of the sphenoid sinus and the parasellar region, mainly describing the anatomy of

Recuperações Judiciais e Falências; Prestações de contas; Revisões de contratos; Operações financeiras, de crédito e bancárias; fusões e aquisições; avaliações de

A análise deve ir além, ou seja, existem outras dimensões a serem consideradas, em especial as abordagens relacionadas ao crescimento econômico, que depende essencialmente da