A fórmula de Bailey-Borwein-Plouffe permite extrair qualquer dígito hexadecimal ou binário específico do número pi sem calcular os anteriores (o atual recorde foi estabelecido pelo algoritmo de Chudnovsky, veja abaixo)
O cluster computacional do Google Compute Engine calculou, em 121 dias, a maior quantidade de dígitos de pi em 25 máquinas virtuais, estabelecendo um novo recorde mundial: 31,4 trilhões de dígitos após a vírgula. Esta é a primeira vez que um software de nuvem acessível foi utilizado para calcular um número de pi dessa magnitude.
O recorde será atribuído a Emma Haruka Iwao, do departamento de computação de alto desempenho do Google. Foi ela quem utilizou a infraestrutura do Google Cloud para os cálculos. O recorde mundial anterior foi estabelecido por Peter Truong em 2016, que calculou até 22,4 trilhões de dígitos. , que também foi patrocinado pelo empregador.
Assim como Truong, a engenheira do Google usou o y-cruncher para os cálculos. Este programa emprega , um algoritmo rápido para calcular o número pi. Já nos anos 80, os usaram-no para calcular um bilhão de dígitos.
Por sua vez, o algoritmo é baseado na propriedade de rápida convergência de uma série hipergeométrica:
Emma Haruka Iwao se interessou pelo 'número mágico' depois de aprender sobre ele em uma aula de matemática na escola, Wired. Na universidade, um de seus professores, Daisuke Takahashi, era um recordista em números calculados usando um supercomputador. Hoje, praticamente qualquer engenheiro interessado que tenha acesso a recursos computacionais sérios e a um grande espaço de armazenamento (para guardar os resultados dos cálculos) pode estabelecer um recorde. O programa criado em 2009, , é projetado para calcular constantes matemáticas, como pi. Ele suporta massiva multithreading e faixas de trilhões. Este programa, na verdade, commoditizou o cálculo de constantes.
«Você precisa de um computador bastante poderoso para quebrar o recorde mundial», diz Ivao. «Não dá para fazer isso em um computador comprado em loja, então as pessoas costumavam montar máquinas personalizadas». Em setembro de 2018, Ivao começou a considerar como funcionaria tecnicamente o processo de cálculo fora do alcance do recorde. Logo ficou claro que o maior problema seria o volume de dados a serem armazenados. No final, o resultado calculado ocupa 170 terabytes. Em vez de montar um servidor personalizado, como seus antecessores, a jovem utilizou a infraestrutura do Google Cloud.
Ivao levantou 25 máquinas virtuais: «Mas em vez de pressionar esse botão da máquina virtual 25 vezes, eu automatizei, explica ela. Você pode fazer isso em alguns minutos, mas se precisar de tantos computadores, levará alguns dias para tudo ser configurado». Em seguida, Ivao gerenciou a execução do y-cruncher nessas 25 máquinas virtuais de forma contínua durante 121 dias.
Para a precisão dos cálculos, as máquinas virtuais precisavam funcionar constantemente. A engenheira instalou um sistema de monitoramento que a alertaria se algo desse errado, como uma falha repentina em uma das máquinas virtuais. Apenas uma emergência — mesmo que por alguns minutos — poderia comprometer todo o processo de cálculo, se não fosse pelo backup.
«O cruncher e o Google Cloud possuem sistemas de backup, e eu os configurei para que você pudesse tirar instantâneas desses discos imediatamente, sem parar os cálculos», diz Ivao. Esses dados eram então copiados e salvos externamente, em outros discos, na forma de instantâneas.
«No começo, havia vários parâmetros que eu mudei, como a quantidade de dados que você poderia ler ou escrever de uma vez, e como os limites mudariam à medida que aumentasse», diz Ivao.
Com o aumento do número de dígitos, o tamanho dos arquivos crescia, e a complexidade dos cálculos aumentava de forma não linear. Isso complicou muito o cálculo inicial, quando Ivao tentava estimar quais recursos das máquinas virtuais seriam necessários para o projeto.
Agora tanto os cálculos quanto a verificação de resultados foram concluídos: o y-cruncher possui dois algoritmos básicos integrados - um para calcular o próprio π e outro para verificação. O algoritmo de verificação funciona em paralelo com o cálculo, mas calcula apenas um dígito, então o recorde pode ser registrado oficialmente.
Teoricamente, um novo recorde mundial pode ser estabelecido se simplesmente pegarmos o arquivo anterior e aplicarmos a fórmula de Bailey-Borwein-Plouffe para calcular mais um dígito. No entanto, isso certamente contradiz as regras para registrar tais recordes mundiais: provavelmente, cada candidato deve começar o cálculo do zero. Como alternativa: melhorar a conquista anterior em N%, o que não é possível com a fórmula de Bailey-Borwein-Plouffe.
Fonte: habr.com
