• Nenhum resultado encontrado

Novas Tendências do Processamento Paralelo e Distribuído

Paralelo e Distribuído

Existem diversas tecnologias emergentes em cálculo paralelo desde novas tecnologias de hardware a diferentes paradigmas de computação. Por um lado, surge a crescente utilização de co-processa- dores11especializados, como unidades de processamento gráfico (GPU) ou processadores Cell (Cell BE – Cell Broadband Engine Architecture). Com estes conseguem-se excelentes desempenhos em computação paralela, formatando o processamento de modo a resolver rápida e repetidamente um conjunto de instruções sobre dados de grão fino. A gestão de memória global e memória de acesso rápido destes processadores, torna a programação muito exigente [Siirola 2009, Sen et al. 2011]. Por outro lado, existem actualmente duas grandes abordagens à computação paralela e especial- mente distribuída, na forma de Grid Computing e Cloud Computing [Buyya et al. 2009, Shiers

11Um co-processador é um processador utilizado para operar de forma complementar ao processador primário (CPU) e garantir o processamento independente de determinadas funções (e.g. processamento gráfico, operações de ponto flutuante, processamento de sinal).

Novas Tendências do Processamento Paralelo e Distribuído

2009, Murphy e Goasguen 2010, Sultan 2010]. Estes paradigmas de computação paralela estão intimamente ligados, podendo dizer-se que partem de conceitos comuns.

Com o surgimento do Grid Computing12 surgiu também o conceito de supercomputador vir-

tual [Cunha et al. 2005]. Uma arquitectura distribuída grid consiste num sistema de computação que recorre a computadores ligados por uma rede convencional. Esta tipologia, apesar de próxima de algumas arquitecturas MIMD heterogéneas, distingue-se pelo facto de ser viável a utilização de virtualmente qualquer computador através de uma rede como, por exemplo, a internet. Contrasta assim com o supercomputador típico, cujos nós de processamento são ligados por redes dedicadas de elevado desempenho. Este conceito foi popularizado ainda na década de 1990 com o arranque do projecto SETI@home13. Neste caso, qualquer utilizador da internet pode fornecer parte dos

seus recursos computacionais para resolver parte de um problema comum, com o objectivo de analisar dados na procura de vida extraterrestre. Existem actualmente alguns projectos semelhan- tes, dos quais se podem destacar aqueles inseridos no projecto World Community Grid14. Estes

usam o programa BOINC15, definido como software open-source para a computação voluntária

e rede de computação. Em qualquer um dos casos, o paradigma de computação paralela passa também pela criação de uma plataforma middleware específica. O middleware corresponde a um conjunto de API com o objectivo de tornar as aplicações independentes das plataformas onde são executadas, sendo aqui responsáveis pela gestão dos dados que são distribuídos para um determi- nado computador, a ligação ao sistema operativo para utilizar correctamente os seus recursos, e o envio dos resultados de modo a serem correctamente integrados no sistema de processamento distribuído. Refira-se ainda que uma abordagem comum a este tipo de processamento, numa escala mais pequena, corresponde à ligação remota de vários supercomputadores (e.g. cluster ), de modo a criar uma plataforma cooperativa de processamento paralelo. Torna-se assim possível que dife- rentes entidades utilizem recursos computacionais superiores a cada um dos seus sistemas isolados, partilhados numa organização segura e flexível [Murphy e Goasguen 2010].

Pode dizer-se que o Cloud Computing (computação em nuvem) é uma extensão do paradigma anterior [Buyya et al. 2009], onde utilizadores ou diferentes entidades podem ter acesso a um conjunto de aplicações e serviços fornecidos pelo sistema computacional de qualquer ponto de acesso remoto. Actualmente, a orientação do Cloud Computing é a de disponibilizar serviços através da internet. Este serviço torna-se atractivo ao reduzir os custos associados à existência de recursos locais, sendo estes substituídos por simples pontos de acesso e pagamento de serviços. Note- -se que estes serviços abrangem actividades tão distantes quanto plataformas de cálculo paralelo, armazenamento de dados, sistemas operativos ou aplicações remotas de trabalho. Salientam-se alguns exemplos de um universo de alternativas em crescimento:

• Amazon Elastic Compute Cloud — plataforma que permite a execução de aplicações de base Linux. O utilizador pode criar a sua própria máquina virtual AMI (Amazon Machine Image) ou seleccionar AMI de uma livraria de configurações predefinidas. O serviço é pago em termos de tempo de actividade e trocas de informação.

• Google App Engine — permite ao utilizador executar aplicações desenvolvidas na linguagem Python, para além da execução de todas as API fornecidas pela Google. Note-se que a empresa quer expandir o este conceito com a abordagem adoptada no seu Chrome OS, onde as aplicações utilizadas num computador pessoal se reduzem a um browser de internet e as API funcionam remotamente nesta plataforma. Estes serviços são actualmente gratuitos. • Microsoft Azure — esta plataforma é definida pela empresa como um sistema operativo

utilizado como um serviço remoto. Este sistema pretende fornecer uma grande variedade

12O termo grid surgiu na década de 1990, utilizado como uma metáfora com o potencial da computação ser de tão fácil acesso como a electricidade na rede pública (power grid ) [Foster e Kesselman 1999].

13SETI@home (Search for Extraterrestrial Intelligence) – http://setiathome.berkeley.edu/. 14World Community Grid – http://www.worldcommunitygrid.org/.

Novas Tendências do Processamento Paralelo e Distribuído

de serviços aos seus clientes, entre ferramentas de desenvolvimento, bases de dados, serviços associados à internet, API remotas, etc.

• Sun network.com (Sun Grid) [SunMS 2009a,SunMS 2009b] — permite que o utilizador exe- cute o sistema operativo Solaris16 e aplicações Java, C, C++, e Fortran. A Sun fornece

plataformas de desenvolvimento local que permitem a compilação e o teste das aplicações segundo os requisitos da plataforma cloud. O utilizador pode depois fazer upload das apli- cações para execução remota e monitorizar o seu funcionamento. Refira-se ainda que a Sun tem ainda o projecto Sun Open Cloud, onde pretende fornecer serviços e API gratuitos e open-source. A empresa disponibiliza regularmente relatórios técnicos sobre o tema.

Estas soluções podem representar um importante ponto de viragem na forma como se utilizam ferramentas e recursos computacionais de grande escala, oferecendo elevada flexibilidade, eficiência e escalabilidade maciça. Note-se ainda que muito do potencial de desenvolvimento e flexibilidade destas plataformas é fomentado pelo movimento open-source [SunMS 2009b].

Destaca-se ainda, como referência dos sistemas de processamento mais potentes do mundo, a lista17 TOP500. Todos os anos, em Junho e em Novembro, são publicadas as listas dos sistemas

mais rápidos do mundo, assim como diversas estatísticas relevantes. De entre estas, destaca-se a evolução do tipo de arquitectura das máquinas presentes neste ranking ao longo do tempo, ilustrada na figura 3.10. Note-se que o número de clusters na lista Top500 subiu de apenas 2,2% (11) em Junho de 1999 para 81,4% (407) em Junho de 2012. Mostra-se ainda a evolução do tipo de sistema operativo utilizados, ilustrada na figura 3.11.

10 0 1995 Single Processor Cluster Constellations MPP SMP SIMD 2000 2005 2010 20 30 P ercen tagem [%] 40 50 60 70 80 90 100 (a) 10 0 1995 Single Processor Cluster Constellations MPP SMP SIMD 2000 2005 2010 20 30 P ercen tagem de desemp enho [%] 40 50 60 70 80 90 100 (b)

Figura 3.10: Arquitecturas TOP500, lista de Junho de 2012: (a) parcela de sistemas e (b) parcela de desempenho global, de 1993 a 2012 [TOP500 2012].

16O Solaris é a distribuição oficial de Linux da Sun Microsystems, actualmente subsidiária da Oracle. Existe também uma versão open-source, o OpenSolaris.

Novas Tendências do Processamento Paralelo e Distribuído 10 0 1995 Windows BSD Based Mac OS Linux N/A Mixed Unix 2000 2005 2010 20 30 P ercen tagem [%] 40 50 60 70 80 90 100 (a) 10 0 1995 Windows BSD Based Mac OS Linux N/A Mixed Unix 2000 2005 2010 20 30 P ercen tagem de desemp enho [%] 40 50 60 70 80 90 100 (b)

Figura 3.11: Família de sistemas operativos, lista TOP500 de Junho de 2012: (a) parcela de sistemas e (b) parcela de desempenho global, de 1993 a 2012 [TOP500 2012].

Parte II

Capítulo 4

Modelação do Comportamento

Termoelástico Linear

Apresenta-se a formulação geral dos problemas térmico e termomecânico. Procede-se às suas formulações fracas e discretizações espaciais recorrendo ao método dos elementos finitos.

4.1

Introdução

O comportamento mecânico de um material, em particular o comportamento linear elástico, é in- fluenciado por variações de temperatura originadas por fenómenos de transferência de calor. Esta dependência corresponde a fenómenos de termoelasticidade e está presente em diversas áreas de aplicação. Consideram-se neste trabalho um conjunto de hipóteses que permitem a sua avaliação segundo pressupostos de lineariedade. A termoelasticidade linear combina a elasticidade linear com a condução de calor. A consideração de regime transitório nos fenómenos de transmissão de calor, para além de complexa, está fora do âmbito geral dos problemas de optimização aqui desenvolvi- dos. Nos problemas abordados, sem erros significativos nas aplicações em estudo, ignoram-se os termos de acoplamento termomecânico nos problemas térmico e mecânico, e o termo de inércia na equação de movimento. Neste caso, define-se o problema como de termoelasticidade quase-estática desacoplada [Fung e Tong 2001]. Este problema divide-se então num problema linear de condução de calor (transiente ou quase-estático) e num problema quase-estático de elasticidade linear, em seguida denominado de termoelástico.

Neste capítulo apresenta-se a formulação do problema térmico, considerado neste trabalho como quase-estático, assim como a formulação geral do problema de termoelasticidade linear. Procede-se ainda à discretização espacial destes problemas por elementos finitos.

Problema Térmico — Condução de Calor em Regime Estacionário