1. Introdução
Obrigado por abrir este codelab. Pronto para processar alguns números no Compute Engine?
Neste codelab, vamos mostrar como iniciar uma nova máquina virtual e executar um programa para calcular pi.
Você vai criar uma instância do Compute Engine, fazer o download, compilar e executar um programa para calcular pi. É possível criar uma instância do Compute Engine no Console ou na linha de comando. Neste laboratório, você vai aprender a usar as ferramentas de linha de comando.

O Compute Engine oferece máquinas virtuais em vários formatos, como diferentes números de núcleos, tamanho de memória e armazenamento. Se necessário, você pode usar uma máquina com mais de 100 núcleos e várias centenas de GB de memória, mas neste exemplo vamos iniciar uma máquina virtual predefinida com 2 vCPUs e 8 GB de memória.
Vamos usar a série de máquinas N2 neste codelab. É uma VM da família de máquinas de uso geral que atende à maioria das cargas de trabalho padrão e nativas da nuvem. A série N2 tem maior desempenho por thread e toda a flexibilidade que a família de máquinas de uso geral oferece.
Agora, vamos começar!
2. Configuração e requisitos
Configuração de ambiente autoguiada
- Faça login no Console do Google Cloud e crie um novo projeto ou reutilize um existente. Crie uma conta do Gmail ou do Google Workspace, se ainda não tiver uma.



- O Nome do projeto é o nome de exibição para os participantes do projeto. É uma string de caracteres não usada pelas APIs do Google É possível atualizar o local a qualquer momento.
- O ID do projeto precisa ser exclusivo em todos os projetos do Google Cloud e não pode ser mudado após a definição. O console do Cloud gera automaticamente uma string exclusiva. Em geral, não importa o que seja. Na maioria dos codelabs, é necessário fazer referência ao ID do projeto, normalmente identificado como
PROJECT_ID. Se você não gostar do ID gerado, crie outro aleatório. Se preferir, teste o seu e confira se ele está disponível. Ele não pode ser mudado após essa etapa e permanece durante o projeto. - Para sua informação, há um terceiro valor, um Número do projeto, que algumas APIs usam. Saiba mais sobre esses três valores na documentação.
- Em seguida, ative o faturamento no console do Cloud para usar os recursos/APIs do Cloud. A execução deste codelab não será muito cara, se tiver algum custo. Para encerrar os recursos e evitar cobranças além deste tutorial, exclua os recursos criados ou o projeto inteiro. Novos usuários do Google Cloud estão qualificados para o programa de US$ 300 de avaliação sem custos.
Google Cloud Shell
Embora o Google Cloud e o Compute Engine possam ser operados remotamente do seu laptop, neste codelab usaremos o Google Cloud Shell, um ambiente de linha de comando executado no Cloud.
O Cloud Shell é uma máquina virtual com base em Debian que contém todas as ferramentas de desenvolvimento necessárias. Ela oferece um diretório principal persistente de 5 GB, além de ser executada no Google Cloud. Isso aprimora o desempenho e a autenticação da rede. Isso significa que tudo que você precisa para este codelab é um navegador (sim, funciona em um Chromebook).
- Para ativar o Cloud Shell no Console do Cloud, basta clicar em Ativar o Cloud Shell
. Leva apenas alguns instantes para provisionar e se conectar ao ambiente.


Depois de se conectar ao Cloud Shell, você já estará autenticado e o projeto estará configurado com seu PROJECT_ID.
gcloud auth list
Resposta ao comando
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
Resposta ao comando
[core] project = <PROJECT_ID>
Se, por algum motivo, o projeto não estiver definido, basta emitir o seguinte comando:
gcloud config set project <PROJECT_ID>
Quer encontrar seu PROJECT_ID? Veja qual ID você usou nas etapas de configuração ou procure-o no painel do Console do Cloud:

O Cloud Shell também define algumas variáveis de ambiente por padrão, o que pode ser útil ao executar comandos futuros.
echo $GOOGLE_CLOUD_PROJECT
Resposta ao comando
<PROJECT_ID>
- Defina a zona padrão e a configuração do projeto:
gcloud config set compute/zone us-central1-f
É possível escolher uma variedade de zonas diferentes. Para mais informações, consulte Regiões e zonas.
3. Criar uma instância do Compute Engine
Primeiro, vamos criar uma máquina virtual com a ferramenta de linha de comando gcloud. Se preferir, use o console, mas a linha de comando é mais fácil de repetir e explicar.
Primeiro, vamos criar uma instância n2-standard-2 chamada pi-codelab com o Debian 11 como sistema operacional. Também vamos usar o disco permanente equilibrado (PD) para o volume de inicialização. Os DPs balanceados são respaldados por unidades de estado sólido (SSD) e equilibram desempenho e custo. Ele vai perguntar qual zona usar se você não tiver selecionado a zona padrão na seção "Configuração e requisitos".
gcloud compute instances create pi-codelab \ --machine-type=n2-standard-2 \ --image-project=debian-cloud \ --image-family=debian-11 \ --boot-disk-type=pd-balanced
O resultado do comando será semelhante a este:
Created [https://www.googleapis.com/compute/v1/projects/xxx/zones/us-central1-f/instances/pi-codelab]. NAME: pi-codelab ZONE: us-central1-f MACHINE_TYPE: n2-standard-2 PREEMPTIBLE: INTERNAL_IP: 10.128.X.XX EXTERNAL_IP: XX.XX.XX.XX STATUS: RUNNING
Os campos INTERNAL_IP e EXTERNAL_IP mudam sempre que você cria uma nova VM.
Para saber mais sobre o comando gcloud compute instances create, acesse a página de referência.
4. Acessar a instância via SSH
Para usar SSH na instância pela linha de comando, execute o seguinte comando:
gcloud compute ssh pi-codelab
Pronto! Agora você está na máquina virtual. Para confirmar o host atual, execute o comando hostname.
hostname
O comando vai mostrar o nome do host do ambiente shell atual.
pi-codelab
5. Instalar dependências
Agora vamos instalar as dependências necessárias para compilar o programa e calcular pi.
sudo apt update sudo apt -y install build-essential libgmp-dev libmpfr-dev libfmt-dev
O processo leva alguns minutos para ser concluído. Agora vamos verificar se você tem um compilador C++ funcionando.
c++ --version
Esse comando vai mostrar as informações da versão do compilador se ele estiver instalado corretamente.
c++ (Debian 10.2.1-6) 10.2.1 20210110 Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
6. Compilar o programa
Agora vamos compilar o programa em C++ para calcular pi. Isso é mais simples do que parece, mesmo que você nunca tenha desenvolvido em C++ antes. Todos os pré-requisitos foram instalados na etapa anterior. Portanto, só precisamos buscar e compilar o código-fonte.
Primeiro, busque e salve o código-fonte. Esta etapa faz o download de um arquivo de origem do GitHub e o salva como pi.cc no diretório atual.
curl -OL https://raw.githubusercontent.com/GoogleCloudPlatform/pi-delivery/main/codelab/pi.cc
Em seguida, execute o compilador C++ para compilar o código-fonte salvo.
c++ -opi pi.cc -std=c++17 -O3 -march=native -lgmp -lmpfr -lpthread -lfmt
O compilador não gera nada em caso de sucesso. Verifique se você tem o arquivo executável:
ls pi
Esse comando ls vai gerar o nome do arquivo do programa, se ele existir.
pi
7. Calcular Pi
O programa pi usa um argumento, o número de dígitos a serem calculados. Por exemplo, vamos calcular os primeiros 100 decimais de pi.
./pi 100
O programa será concluído em menos de um segundo e vai gerar algo assim:
Calculating 100 digits of pi... Internal precision = 348 bits Number of terms = 9, digits per term = 14.181647462725477 Summation series complete. Final steps... 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
A última linha são as primeiras 100 casas decimais de pi. Parabéns, você acabou de pedir para o computador fazer as contas por você!
O programa pode calcular mais dígitos (atualmente limitado a 100 bilhões de dígitos). Agora vamos calcular 10 milhões de dígitos e medir quanto tempo isso leva. Redirecionamos a saída para um arquivo, já que 10 milhões de dígitos de pi são um pouco longos demais para serem exibidos no console da linha de comando.
time ./pi 10000000 > pi10m.txt
O programa gera algo como:
Calculating 10000000 digits of pi... Internal precision = 33219296 bits Number of terms = 705138, digits per term = 14.181647462725477 Summation series complete. Final steps... real 0m9.702s user 0m14.839s sys 0m0.364s
Desta vez, não incluímos os dígitos porque eles estão salvos no arquivo pi10m.txt. As três últimas linhas descrevem quanto tempo o programa levou para ser executado e quanta CPU ele usou.
- real: o tempo real do início ao fim, o que significa que foram necessários 9,7 segundos para calcular 10 milhões de dígitos de pi no exemplo acima.
- user: quanto tempo de CPU ele usou, que é maior do que o "real" porque a máquina tem dois núcleos de CPU e cada núcleo conta para o total.
- sys: o tempo que o sistema operacional precisou para executar o programa e processar tarefas do sistema, como rede e E/S. Desta vez, levou cerca de 0,4 segundo, que é principalmente o tempo para gravar o resultado no disco.
Podemos conferir pi10m.txt e ver os primeiros e últimos 100 dígitos de cada um.
Vamos verificar os primeiros dígitos. Esse comando gera os primeiros 100 decimais (e os três primeiros e o ponto decimal).
head -c 102 pi10m.txt
O resultado será semelhante a este.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
O próximo comando gera os últimos 100 decimais.
tail -c 100 pi10m.txt
O resultado será semelhante a este.
610515549257985759204553246894468742702504639790565326553194060999469787333810631719481735348955897
8. Limpar o cluster
Não se esqueça de desligar a instância do Compute Engine. Caso contrário, ela vai continuar em execução e acumulando custos.
Se você estiver na VM (conectada com SSH), faça logout primeiro executando o comando exit.
exit
Em seguida, execute o comando gcloud compute instances delete a seguir para excluir a instância e os discos associados. Ele vai pedir que você confirme a exclusão do recurso.
gcloud compute instances delete pi-codelab
9. A seguir
Parabéns! Você concluiu este codelab do Compute Engine e calculou 10 milhões de dígitos de pi.
Usamos a mesma infraestrutura para calcular 100 trilhões de dígitos de pi em 2022. Leia o comunicado para saber como foi nosso desempenho. Todos os resultados estão disponíveis no site de demonstração pi.delivery.
Fique por dentro das últimas notícias sobre Compute e computação de alto desempenho no blog do Google Cloud.
Mais recursos do Compute Engine
O Compute Engine tem um conjunto avançado de recursos. Você pode consultar alguns destes :
- VMs preemptivas: https://cloud.google.com/compute/docs/instances/create-start-preemptible-instance
- Nós de locatário individual: https://cloud.google.com/compute/docs/nodes/create-nodes
- GPUs e TPUs: https://cloud.google.com/compute/docs/gpus/add-gpus
- Instâncias do Windows: https://cloud.google.com/compute/docs/instances/windows/creating-managing-windows-instances
- Como rotular recursos: https://cloud.google.com/compute/docs/labeling-resources
- Migrar VMs para o Compute Engine: https://cloud.google.com/compute/docs/vm-migration/
Envie um feedback
- Reserve um momento para completar nossa pesquisa curta