Edson Borin
Instituto de Computação e Centro de Computação em Engenharia e Ciências – Universidade Estadual de Campinas, Campinas, SP.
Historicamente, a humanidade tem se apoiado no método científico para o avanço da ciência. Este método, que envolve a observação, a formulação de hipóteses e realização de experimentos para corroborar ou refutar estas hipóteses, exigiu por muito tempo a construção de protótipos custosos para a realização dos experimentos. Entretanto, com o surgimento dos sistemas computacionais e o desenvolvimento de métodos numéricos para a resolução de modelos computacionais, muitos dos experimentos passaram a ser executados com simulações em computadores, o que reduziu significativamente o custo e o tempo de experimentação. Consequentemente, a computação e a modelagem computacional passaram a ser um dos principais pilares da ciência moderna.
Simulação da interação de proteínas do organismo
humano com hormônios realizada por pesquisadores do CCES.
Os modelos computacionais replicam comportamentos observados no mundo físico. Dessa forma, para realizar um experimento, basta modelar o problema de interesse no computador e executar programas de simulação para resolver o modelo. Por exemplo, um cientista pode modelar proteínas do organismo humano e simular a interação destas proteínas com hormônios. A figura acima ilustra uma simulação da interação de proteínas do organismo humano com hormônios realizada por pesquisadores do Centro de Computação em Engenharia e Ciências (CCES) da Universidade de Campinas.
Quanto mais detalhado ou complexo o modelo computacional, maior é a quantidade de operações computacionais que devem ser realizadas para concluir a simulação. Por exemplo, a simulação das interações de um remédio com uma proteína envolve o estudo de como variam no tempo as posições de centenas de milhares de átomos, incluindo os do remédio, da proteína e da água ou da membrana celular ao seu redor, e exige uma quantidade de operações computacionais muito maior do que a simulação da interação de proteínas do organismo humano com um hormônio. Consequentemente, experimentos mais sofisticados requerem o uso de computação de alto desempenho, ou High-Performance Computing (HPC), onde sistemas computacionais especiais são utilizados para acelerar a simulação dos modelos computacionais. Estes sistemas computacionais, também chamados de supercomputadores, são geralmente compostos por múltiplos computadores conectados através de uma rede de alta velocidade para compor um único sistema de alto desempenho. O supercomputador Kahuna (http://cces.unicamp.br/computing-resources/) é um dos supercomputadores mantidos pela Universidade de Campinas (UNICAMP) para dar suporte às pesquisas realizadas pelos pesquisadores do Centro de Computação em Engenharia e Ciências (CCES).
Supercomputador IBM Blue Gene/P do laboratório nacional Argonne
(Fonte: Argonne National Laboratory’s Flickr page)
A aquisição e manutenção de um sistema computacional de alto desempenho são processos custosos e poucos grupos de pesquisa possuem acesso exclusivo a este tipo de tecnologia. De fato, muitos dos supercomputadores no mundo são adquiridos e mantidos por organizações governamentais que oferecem acesso através da Internet para uso compartilhado por cientistas de diversas instituições de ensino e pesquisa. Este modelo permite que os cientistas não tenham que se preocupar com a aquisição nem a manutenção do sistema, entretanto, a competição pelo recurso computacional pode fazer com que o acesso seja demorado, tornando o ciclo de experimentação e análise dos resultados um processo lento. A figura acima mostra uma foto do Supercomputador IBM Blue Gene/P, mantido pelo laboratório nacional Argonne para uso compartilhado por cientistas de diferentes grupos de pesquisa.
Empresas como a Amazon, a Google e a Microsoft, possuem grandes centros de processamento de dados, ou data centers, para executar os programas que dão suporte a seus negócios. A Amazon, uma das maiores lojas virtuais do mundo, possui diversos data centers para que nos momentos de alta demanda por compras, como nos feriados de Natal e Ação de Graças, o sistema seja capaz de atender à demanda sem prejudicar a experiência do usuário. Por outro lado, nos dias normais, onde a demanda não é alta, a maior parte dos computadores de seus data centers fica ociosa.
Avanços recentes em sistemas computacionais estão permitindo que empresas que detêm grandes data centers aluguem os computadores ociosos para clientes. Neste modelo de negócio, conhecido como computação na nuvem, o cliente acessa os computadores do data center através da Internet e paga apenas pelo uso, e não pela aquisição ou manutenção do sistema. De fato, a Amazon, a Google e a Microsoft já alugam os computadores de seus data centers distribuídos pelo mundo utilizando este modelo. Como a quantidade de recursos e o poder computacional desses data centers é muito grande, este modelo de negócio pode ser usado para oferecer serviços de computação de alto desempenho sob demanda, onde cientistas que precisam realizar simulações que requerem alto desempenho computacional acessariam o sistema através da Internet e pagariam apenas pelo tempo de processamento da simulação.
As vantagens da computação de alto desempenho na nuvem computacional são inúmeras, entretanto, quando comparamos este modelo com o modelo de aquisição do supercomputador e com o modelo de sistema compartilhado, destacam-se as seguintes vantagens: a) o usuário paga apenas pelo uso e não há necessidade de se adquirir nem manter sistemas computacionais custosos nem manter a infraestrutura de suporte, como refrigeração, transformadores de alta potência, etc; b) o processo de credenciamento no sistema é rápido e não há concorrência pelos recursos computacionais, o que elimina o tempo de espera por estes recursos; e c) a infraestrutura computacional é variada e pode ser ajustada para as necessidades da aplicação, ou do modelo computacional.
Apesar das vantagens mencionadas anteriormente, os sistemas computacionais dos data centers não são desenvolvidos com o propósito exclusivo de se realizar computação de alto desempenho e o uso destes sistemas para este propósito ainda apresenta desafios. Dessa forma, os pesquisadores do Centro de Computação em Engenharia e Ciências têm pesquisado e desenvolvido métodos e tecnologias para viabilizar a computação de alto desempenho na nuvem computacional. Uma das tecnologias desenvolvidas pelos cientistas do CCES é o modelo de programação SPITS (Do inglês: Scalable Partial Idempotent Task System) e o sistema de execução PY-PITS, que facilitam o uso de recursos da nuvem computacional para o processamento de alto desempenho. Esta tecnologia já vem sendo usada para o desenvolvimento de ferramentas de processamento de dados sísmicos de grande porte para dar suporte às atividades de exploração de óleo e gás no Brasil.
Em um experimento recente, pesquisadores do Centro de Estudos de Petróleo da Unicamp utilizaram esta tecnologia para processar um dado sísmico de grande porte utilizando 40 computadores de alto desempenho dos data centers da Amazon, totalizando 2504 núcleos computacionais e 313 GPUs Nvidia Tesla V100. O processamento demorou 40 minutos e custou aproximadamente 190 dólares. O poder computacional oferecido por este sistema (Desempenho de pico calculado com base nas especificações do sistema: aproximadamente 2.33 PetaFLOP/s) é aproximadamente duas vezes maior do que o poder computacional oferecido pelo supercomputador Santos Dumont (Desempenho de pico informado no portal de informações do Santos Dumont -https://sdumont.lncc.br/-: aproximadamente 1,1 PetaFLOP/s), um dos maiores supercomputadores da América Latina. Além disso, vale destacar que a aquisição de um sistema equivalente, com 313 GPUs Nvidia Tesla V100, custaria pelo menos 3,1 milhões de dólares, já que cada uma destas GPUs custa aproximadamente 10 mil dólares.
A agilidade do acesso ao recurso computacional e a diferença de custo do processamento na nuvem para a aquisição de um sistema computacional, ilustrada pelo experimento anterior, mostram que a nuvem computacional tem o potencial para facilitar o acesso a tecnologias de computação de alto desempenho. Neste contexto, espera-se que as tecnologias open-source desenvolvidas pelos cientistas do CCES, como o SPITS, tenham um papel importante na popularização do acesso a tecnologias de computação de alto desempenho e no avanço da ciência.
Trabalhos relacionados
[1] BORIN, E.; RODRIGUES, I. L. ; NOVO, A. T. ; SACRAMENTO, J. D.; BRETERNITZ JR., M.; TYGEL, M. Efficient and Fault Tolerant Computation of Partially Idempotent Tasks. In: 14th International Congress of the Brazilian Geophysical Society & EXPOGEF, Rio de Janeiro, Brazil, 3-6 August 2015, p. 367-372.
[2] BORIN, E.; BENEDICTO, C. ; RODRIGUES, I. L. ; PISANI, F. ; TYGEL, M.; BRETERNITZ JR., M. PY-PITS: A Scalable Python Runtime System for the Computation of Partially Idempotent Tasks. In: 5th Workshop on Parallel Programming Models, 2016, Los Angeles.
[3] OKITA, N. T. ; COIMBRA, T. A. A. ; RODAMILANS, C. B. ; TYGEL, M.; BORIN, E. Optimizing the execution costs of high-performance geophysics software on the cloud. In: EAGE Annual 81st conference + exhibition, 2019, London, UK.
[4] OKITA, N. T.; COIMBRA, T. A. A.; TYGEL, M.; BORIN, E. A heuristic to optimize the execution cost of distributed seismic processing programs on the cloud. In: Society of Exploration Geophysicists Annual Meeting (SEG’19). 2019
[5] OKITA, N. T. ; COIMBRA, T. A. A. ; RODAMILANS, C. B. ; TYGEL, M. ; BORIN, E. Using SPITS to optimize the cost of high-performance geophysics processing on the cloud. In: EAGE Workshop on High Performance Computing for Upstream, 2018, Santander, Colombia.