• Nenhum resultado encontrado

APÊNDICE C – LISTAGENS DE CÓDIGO

2 FUNDAMENTAÇÃO TEÓRICA

2.6 CONSIDERAÇÕES SOBRE O CAPÍTULO

Este capítulo apresentou uma série de conceitos teóricos e tecnológicos relacionados com o objetivo desta pesquisa de doutorado. O objetivo deste estudo foi fazer um levantamento atualizado das pesquisas e propostas existentes na literatura que servirão de referencial para as propostas apresentadas.

Inicialmente apresentou-se os conceitos básicos do Paradigma Orientado a Notificações (PON), bem como comparações entre estes conceitos e seus equivalentes no Paradigma Imperativo (PI) e no Paradigma Declarativo (PD). Além disso, apresentou-se uma reflexão sobre quão adequadas são as características do PON para o desenvolvimento de

software que apresente paralelismo ou necessidade de distribuição. Este conjunto de

fundamentos teóricos deve ser totalmente contemplado na proposição da ARQPON ou, pelo menos, a parte não contemplada deve ser levada em consideração nas decisões sobre a arquitetura de tal maneira que a ARQPON possa ser evoluída para contemplá-la em desenvolvimentos futuros.

Tabela 2 – Avaliação da utilização de métricas comparativas do PON em função do escopo de comparação Métrica Escopo da comparação Plataforma PON A X Plataforma PON B Implementação PON A X Implementação PON B Implementação PON X

Impl. outro paradigma Tempo de

execução

Relevante como forma de se avaliar o grau de sucesso na implementação de conceitos do PON pelas plataformas. Relevância depende do grau de orientação a notificações versus código sequencial. Relevância depende do grau de orientação a notificações da implementação PON, útil para avaliação do

impacto de redundâncias. Relações lógico- causais/regra Irrelevante (comportamento lógico no nível de regra deveria ser independente de implementação da plataforma). Relevante na avaliação do impacto de redundâncias. Relevante caso as relações lógico-causais e regras sejam mapeáveis em seus equivalentes na implementação em outro paradigma. Grau de paralelização

Relevante como forma de se avaliar o grau de sucesso na implementação de conceitos do PON pelas plataformas. Irrelevante. Irrelevante. Eficiência de paralelização Relevante para avaliação de escalabilidade. Relevância depende do grau de orientação a notificações versus código sequencial. Relevante para se avaliar a eficiência da adaptação da aplicação em outro paradigma para a filosofia do PON.

Os conceitos relativos a arquiteturas de computadores, também apresentados neste capítulo, embasam a proposição da ARQPON na medida em que esta pode aproveitar-se de blocos arquiteturais e técnicas já exploradas em outras arquiteturas, acrescidas de um eventual aprimoramento para adaptação aos conceitos do PON. Neste contexto, enfatizou-se o estudo de características de arquiteturas paralelas, abordando-se os diversos níveis de paralelização possíveis (ILP, DLP, TLP) e suas técnicas de implementação.

Optou-se por aprofundar dois modelos distintos de concepção de arquiteturas paralelas: o modelo de von Neumann e o modelo de fluxo de dados (dataflow). O modelo de von Neumann, embora tenha sido originalmente concebido como fundamento para a execução sequencial de programas, foi estudado por ser também a base conceitual da grande maioria dos esforços envolvidos na evolução da computação paralela, incluindo as principais técnicas de implementação de paralelismo atualmente utilizadas. O modelo de fluxo de dados, por sua vez, foi abordado porque o seu mecanismo de execução apresenta similaridades com o conceito de propagação de notificações do PON, portanto, soluções arquiteturais derivadas das máquinas baseadas em fluxo de dados podem ser analisadas e, eventualmente, aplicadas na concepção da ARQPON.

A fundamentação teórica englobou também alguns conceitos relativos à utilização de

hardware programável como plataforma de prototipação para a ARQPON, em particular o

uso de lógica reconfigurável na forma de dispositivos de FPGA. Neste contexto, enfatizou-se questões relativas às técnicas de desenvolvimento para FPGA e como se pretende utilizar estas técnicas para a implementação dos protótipos da ARQPON (P2ON).

Finalmente, apresentou-se algumas considerações a respeito da realização de análises de benchmarking, tanto comparativas como qualitativas ou quantitativas, com foco em arquiteturas paralelas e posteriormente na reflexão sobre como realizar benchmarking em aplicações PON. Estas considerações serão utilizadas como base para a concepção das aplicações de benchmark que serão utilizadas para avaliação da implementação da ARQPON, no contexto deste trabalho de pesquisa.

Feita esta revisão, pode-se traçar um panorama da evolução da computação paralela, iniciando-se com a proposição do modelo de von Neumann, o qual foi fundamental para viabilizar a computação moderna no sentido de permitir que software fosse desenvolvido em maior escala e de maneira mais flexível. O desempenho de arquiteturas baseadas neste modelo é primariamente influenciado pela frequência do clock da CPU, cujo aumento acompanhou a evolução das tecnologias de construção eletrônica. Adicionalmente, técnicas arquiteturais foram progressivamente desenvolvidas para otimização do tempo de execução

de instruções individuais ou de grupos de instruções, o que, em conjunto com o aumento da frequência do clock, viabilizou a evolução do desempenho conforme a Lei de Moore. Entre estas técnicas, destacam-se as que objetivam a obtenção de paralelismo de execução nos diversos níveis, tanto entre instruções individuais (ILP) quanto entre grupos de instruções logicamente relacionadas (TLP).

No entanto, alcançou-se um estágio tecnológico no qual a evolução do desempenho de computação baseada unicamente na evolução do desempenho dos circuitos eletrônicos, particularmente em plataformas baseadas em silício, está desacelerando. Como a escala de integração continua aumentando no mesmo ritmo, passou-se a optar por soluções arquiteturais que aproveitassem a densidade de componentes disponível, em particular soluções nas quais os núcleos de processamento fossem replicados (multi core). Em consequência deste viés, é cada vez mais necessário conceber software que possa aproveitar do paralelismo oferecido pelo hardware de múltiplos núcleos.

Considerando que a exploração do paralelismo disponível requer técnicas adequadas de desenvolvimento de software, iniciativas tais como o modelo de fluxo de dados objetivaram, ao seu tempo, apresentar inovações que permitissem a paralelização de maneira distinta às formas baseadas no modelo de von Neumann. Estas inovações ocorreram em um cenário de interdependência entre software e hardware, ou seja, o modelo de programação de fluxo de dados e suas características dinâmicas e de semântica impulsionaram o desenvolvimento de técnicas de hardware compatíveis, tais como o uso de I-Structures.

Neste âmbito, o PON foi proposto como um paradigma de programação e de execução que apresenta conceitos e abstrações que o caracterizam como uma abordagem de concepção de software com paralelismo intrínseco. Considerando-se a interdependência que deve haver entre hardware e software, o software desenvolvido segundo o PON depende de um ambiente de execução adequado para a exploração plena do paradigma, principalmente levando-se em consideração as peculiaridades do seu modelo de notificações. Este modelo é inovador, porém, realizável de maneira limitada por modelos tais como von Neumann, que é fundamentado em execução sequencial regida unicamente por um contador de programa. Ainda que o modelo de fluxo de dados apresente similaridades com o PON, do ponto de vista dinâmico, as aplicações de fluxo de dados são mais restritas a cálculos aritméticos na forma funcional, diferentemente do modelo de notificações do PON que pode ser aplicado, com as adaptações necessárias, aos problemas solucionáveis com aplicações comuns segundo o PI.

Portanto, a fundamentação teórica apresentada e a reflexão sobre cada um destes fundamentos sugere uma oportunidade de desenvolvimento de pesquisa sobre novas

arquiteturas de computação que possam suprir as demandas específicas do PON. Tais arquiteturas, embora possam fazer uso de parte da tecnologia já desenvolvida para resolver questões arquiteturais pontuais, devem propor um modelo lógico próprio e distinto, tanto do ponto de vista estrutural quanto comportamental. Como consequência, tais arquiteturas podem contribuir para o estado da arte no que tange ao problema geral de paralelização da computação, tanto pelo modelo lógico inovador a ser proposto, em nível de hardware, quanto pela contribuição no que diz respeito a enriquecer a discussão sobre quão promissor é o PON como técnica de programação paralela.