O ENIAC e a primeira previsão do tempo – Parte 3



Hoje vamos continuar falando sobre a história da previsão numérica do tempo. Na parte 1, falei sobre o comecinho do século XX, até o período da Primeira Guerra Mundial aproximadamente. Na parte 2 falei do período entre as duas guerras mundiais até chegar na Segunda Guerra Mundial e falei sobre o nascimento do ENIAC.

Na parte 3 vou começar a falar sobre os incríveis avanços na tecnologia dos computadores dos últimos 50 anos. Vou falar sobre a lei de Moore e sobre um interessante trabalho de Peter Lynch, pesquisador da University College Dublin onde ele recriou as previsões do ENIAC usando a capacidade de processamento de um celular Nokia 6300.

A parte 3 vai ser essencial para mostrar o quanto os computadores evoluíram desde o ENIAC. A capacidade de processamento aumentou grandiosamente e eles ficaram muito mais baratos, portáteis e acessíveis. E quando aqui falo em acessíveis, não me refiro apenas ao preço. Antes computadores eram de difícil utilização, apenas pessoas altamente capacitadas poderiam utilizá-lo. Hoje em dia ainda é um pouco assim quando nos referimos a programação, porém o conhecimento é acessível para um número muito maior de pessoas. Está cada vez mais comum sabermos de crianças que aprendem a programar assistindo tutoriais, usando brinquedos educativos e jogando Minecraft. Em um futuro próximo posso imaginar todas as crianças aprendendo lógica e programação desde muito pequenas.

Vamos continuar com a nossa série sobre a história da previsão numérica do tempo.
Cortesia de Shutterstock

A Lei de Moore 

Aqui vemos o total de transistores em uma CPU (eixo Y) e a data do equipamento em questão (note que nas bolinhas aparece o modelo do equipamento). Observe que no eixo Y, temos escala logarítmica. Ou seja, temos um crescimento exponencial a partir dessa observação de que a quantidade de transistores dobra a cada 18 meses aproximadamente. Cortesia de Wikimedia Commons.

A Lei de Moore é uma lei empírica, que observa que o número de transistores em um circuito integrado dobra em aproximadamente 2 anos. O nome Lei de Moore ganha o nome de quem fez essa observação pela primeira vez: Gordon Moore, o co-fundador da Fairchild Semiconductor e da Intel, que em 1965 descreveu que o número de componentes por circuito integrado dobra a cada ano e projetou que essa taxa de crescimento se sustentaria ao menos por mais uma década. Em 1975, Moore revisou essa previsão: agora, o número de componentes dobraria a cada dois anos. E na mesma época em que Moore revisou sua previsão, havia na Intel um executivo chamado David House que notou que essas duplicação no número de transistores fazia com que a performance dos computadores dobrasse a cada 18 meses. E é por essa razão que a quantidade 18 meses é sempre relacionada com a Lei de Moore.

Quais os limites da Lei de Moore?

A Lei de Moore tem se provado bastante acurada por várias décadas e inclusive serve como base para que a industria de semicondutores estabeleça metas de pesquisa e desenvolvimento. É importante ressaltar que a Lei de Moore não é uma lei da física ou uma lei natural. Ela é na verdade uma observação ou projeção, que tem sido muito boa, porém nos últimos anos parece ter atingido um limite.

Essa taxa de 18 meses se manteve mais ou menos constante até o início da década de 2010. Em 2010, o International Technology Roadmap For Semiconductors previu que esse crescimento seria mais lento por volta de 2013 e o próprio Gordon Moore disse em uma entrevista em 2015 que “a Lei de Moore morreria em uma década”. A Intel, através do CEO Brian Krzanich anunciou ano passado que agora essa taxa não é de 18 meses, mas sim algo em torno de dois anos ou dois anos e meio.

E por que eu citei a Lei de Moore?

E o motivo por eu ter mencionado a Lei de Moore é bem evidente: o que temos hoje, disponível para compra em qualquer loja com departamento especializado em informática, é muito superior as capacidades do ENIAC.  Em um artigo de Peter Lynch e Oliver Lynch (2008), os autores resolveram repetir as integrações feitas originalmente pelo ENIAC usando um telefone celular. Chamaram o experimento de Portable Hand-Operated Numerical Integrator and Computer (PHONIAC). Os autores usaram o artigo original que divulgou os resultados obtidos com o ENIAC (o clássico publicado Tellus, de autoria de Charney, Fjörtoft e Von Neumann, que mencionei no segundo post da série) e usaram como base para construir um algorítimo que fizesse as mesmas integrações. Lynch (2008) fez um algorítimo usando um programa feito no MatLab. Ele executou esse algoritmo em um laptop comum (Sony Vaio, VGN-TX2XP). Para vocês terem uma ideia, o loop principal que trata de 24h de previsão do tempo foi rodado em apenas 30ms (microssegundos)! Levando em consideração que as integrações originais do ENIAC levavam cerca de 1 dia para serem concluídas, essa impressionante taxa de aproximadamente 3 milhões para um mostra o incrível aumento na capacidade de computação nos últimos 50 anos.

Esse programa feito em MatLab foi então convertido para uma aplicação em Java para ser implementada em um celular ( Peter Lynch e Oliver Lynch, 2008). A aplicação foi testada em um PC usando emuladores de 3 diferentes modelos de telefone celular. E quando estava funcionando corretamente, o programa em Java foi carregado em um celular Nokia 6300 para ser testado.

Sim gente, eu me refiro a esse Nokia! Nem estamos falando de um Smartphone ou algo do tipo, estamos falando de um indestrutível Nokia.

É preciso dizer que esse interessante trabalho de Lynch só foi possível porque o artigo clássico de autoria de Charney, Fjörtoft e Von Neumann estava bem escrito e descrevia precisamente tudo o que foi feito. Os trabalhos científicos precisam ser dessa maneira, para permitir que os experimentos possam ser reproduzidos. E para saber o que é um artigo científico (e o que o difere de um artigo de uma revista comum, por exemplo) veja esse post.

Sendo assim, tanto o algoritmo em MatLab quanto o algoritmo em Java foram construídos seguindo o mesmo algoritmo original executado do ENIAC. As especificações das condições de contorno e o método de transformadas de Fourier para resolver a Equação de Poisson foram seguidos a risca. Sendo assim, os resultados deveriam do PHONIAC deveriam ser parecidos com os resultados do ENIAC. Bom, foram de fato muito semelhantes e só não foram exatamente iguais porque os campos de re-análise (campos iniciais ou condição inicial) não eram exatamente os mesmos aos utilizados originalmente.

Os campos iniciais utilizados nas quatro previsões originais do ENIAC eram correspondentes a datas entre janeiro e fevereiro de 1949. Uma análise retrospectiva global da atmosfera, cobrindo um período de mais de 50 anos, foi feita pelo NCEP (National Centers for Environmental Prediction) e pelo NCAR (National Center for Atmospheric Research). Quem é meteorologista da área de modelagem numérica conhece muito bem essas reanálises, usadas em trabalhos científicos do mundo todo. Mais informações sobre essas re-análises podem ser obtidas aqui.

Foram portanto utilizados os dados dessa re-análise recente como campo inicial para as integrações do PHONIAC. Pelo o que eu entendi lendo os artigos, essa é a diferença mais essencial entre as integrações feitas pelo PHONIAC e pelo ENIAC e mesmo assim os resultados foram muito semelhantes. Essa semelhança pode ser notada nesse texto escrito por Peter Lynch em que ele compara os resultados do ENIAC (na figura 2.2 do arquivo) com os resultados do PHONIAC (figura 2.3 do arquivo).

Ah sim, o tempo de processamento com o PHONIAC foi inferior a 1s. Isso é espetacular!

É possível conhecer o trabalho de Peter Lynch com as integrações do ENIAC em sua homepage no site da UCD (University College Dublin), onde ele é pesquisador. Dá até para baixar o código que ele escreveu em MatLab e em java para “brincar” um pouquinho.

É claro que não pretendo encerrar o tema previsão numérica do tempo com essa minha série de posts, até porque tem muita coisa a ser dita e muita curiosidade interessante que nos contam como as coisas se desenvolveram até chegar no atual estado da arte. Eu leio bastante sobre o assunto, então é muito possível que surjam spin-offs dessa pequena série de posts. E eu ainda não acabei a série propriamente dita, então aguardem a parte 4.

 

Bibliografia 

Além dos links mencionados ao longo do texto, recomendo os seguintes links com materiais que utilizei nessa pesquisa.