O Pi acabou de ficar maior. O Google Compute Engine calculou o maior número de dígitos do pi, estabelecendo um novo recorde mundial.
Emma Haruka Iwao, que trabalha em comunidades de linguagem de programação e computação de alto desempenho na Google, usou a infraestrutura fornecida pelo Google Cloud para calcular 31,4 trilhões de dígitos de pi. O recorde mundial anterior foi estabelecido por Peter Trueb em 2016, que calculou os dígitos de pi para 22,4 trilhões de dígitos. Esta é a primeira vez que um software em nuvem publicamente disponível é usado para um cálculo pi dessa magnitude.
Iwao ficou fascinada por pi quando soube disso na aula de matemática na escola. Na universidade, um de seus professores, Daisuke Takahashi, era o recordista dos dígitos mais calculados de pi usando um supercomputador. Agora, o y-cruncher é o software preferido dos entusiastas do pi. Criado em 2009, o y-cruncher é projetado para calcular constantes matemáticas como pi a trilhões de dígitos.
"É preciso um computador grande para quebrar o recorde mundial", diz Iwao. “Mas não se pode fazer isso com um computador de uma loja de ferragens, então as pessoas já construíram máquinas personalizadas.” Em setembro de 2018, Iwao começou a considerar como o processo de calcular ainda mais dígitos do pi funcionaria tecnicamente. Algo que surgiu rapidamente foi a quantidade de dados que seria necessária para realizar os cálculos e armazená-los: 170 terabytes de dados, que não seriam facilmente hospedados por um hardware. Em vez de construir uma máquina totalmente nova, Iwao usou o Google Cloud.
Iwao usou 25 máquinas virtuais para realizar esses cálculos. “Mas em vez de clicar no botão da máquina virtual 25 vezes, eu o automatizei”, explica ela. "Você pode fazer isso em alguns minutos, mas se se precisasse de muitos computadores, poderia levar dias apenas para instalar os próximos." Iwao executou o processamento dessas 25 máquinas virtuais, continuamente, por 121 dias.
Para garantir que nada desse errado, as máquinas virtuais precisavam de estar a funcionar constantemente. Assim como um cálculo manual ou num quadro branco, cada etapa tinha que ser claramente visível, algo que só seria possível se a nuvem mantivesse o programa em execução continuamente. "Não se pode tirar uma sesta e, de seguida, começar de novo quando se está a fazer isso à mão, então tem de se armazenar todos os dados necessários para fazer as contas", diz Iwao. “Então, com caneta e papel, seria preciso muitas folhas de papel. Nesse caso, é preciso muito armazenamento. ”Ela também montou um sistema de monitorização, que a alertaria se algo estava errado - por exemplo, se uma de suas máquinas virtuais tivesse caído de repente. Apenas um acidente - mesmo que por alguns minutos - poderia ter comprometido todo o processo.
"O processamento do Google e o Google Cloud têm os dois métodos de fazer cópias. Por isso, é como fazer fotocópias em determinados pontos e configurá-lo para que você possa tirar cópias desses discos instantaneamente sem interromper o cálculo", diz Iwao. Esses dados são então copiados e salvos externamente, em outros discos, como instantâneos.
"Havia alguns parâmetros que eu alterei no começo, como quantos dados você poderia ler ou escrever ao mesmo tempo e como os limites mudariam à medida que aumentassem", diz Iwao.
À medida que os cálculos se tornavam cada vez mais complexos, maior a tensão nas máquinas virtuais e quanto mais tempo demorava. Os cálculos de Y-cruncher não funcionam a uma taxa linear - se você quisesse calcular o dobro de dígitos, levaria mais que o dobro de tempo e armazenamento, o que se mostrou difícil quando Iwao estava fazendo os cálculos iniciais, para descobrir quantos máquinas virtuais que ela precisaria.
Mas a pressão real chegou mais perto do fim. Construído em y-cruncher são dois algoritmos de base - um para os cálculos de pi em si e outro para a verificação. O algoritmo de verificação é executado ao lado do cálculo, mas calcula apenas um único dígito de pi e leva muito tempo e recursos. Assim, você não poderia usar o programa de verificação para calcular cada dígito, pois isso levaria ainda mais tempo e armazenamento. O que ele pode fazer é provar que seus resultados estão corretos. "A multiplicação final é importante, porque se você perder um dígito durante os processos de cálculo, então todo o resultado está errado", diz Iwao.
Embora possa parecer um hobby cansativo, o pi é frequentemente usado por investigadores e programadores para testar o desempenho de um novo hardware. Seus usos podem se estender além da computação em nuvem, em áreas como assistência médica. “Há muitos aplicativos que exigem muitos recursos de computação complexos, como previsões do tempo, e, na verdade, isso prova que a nuvem é capaz de lidar com esses cálculos”, diz Iwao.
Fotos do cálculo de Iwao, que foram guardados em discos externos no Google Cloud, estão agora publicamente disponíveis também, o que significa que os entusiastas podem copiar esses cálculos e utilizá-los noutro local. Quanto a Iwao, significa que ela pode relaxar um pouco mais. "Eu estava confiante na infra-estrutura, mas eu estava nervoso para a coisa toda", diz ela. "Mas é como quando você faz um teste de matemática, não importa o quanto esteja confiante, você se sente melhor quando obtém seus resultados".
Sites consultados: