1. Introducción
Gracias por abrir este codelab. ¿Todo listo para procesar algunos números en Compute Engine?
En este codelab, te guiaremos por los pasos para iniciar una máquina virtual nueva y ejecutar un programa para calcular pi.
Crearás una instancia de Compute Engine, descargarás, compilarás y ejecutarás un programa para calcular pi. Puedes crear una instancia de Compute Engine desde la consola o la línea de comandos. En este lab, se explica cómo usar las herramientas de línea de comandos.

Compute Engine ofrece máquinas virtuales que se ejecutan en varias formas, como diferentes cantidades de núcleos, tamaños de memoria y almacenamiento. Si es necesario, puedes usar una máquina con más de 100 núcleos y varios cientos de GB de memoria, pero, en este ejemplo, iniciaremos una máquina virtual predefinida con 2 CPU virtuales y 8 GB de memoria.
En este codelab, usaremos la serie de máquinas N2. Es una VM de la familia de máquinas de uso general que se orienta a la mayoría de las cargas de trabajo estándar y nativas de la nube. La serie N2 tiene un mayor rendimiento por subproceso y toda la flexibilidad que ofrece la familia de máquinas de uso general.
Comencemos.
2. Configuración y requisitos
Configuración del entorno de autoaprendizaje
- Accede a Google Cloud Console y crea un proyecto nuevo o reutiliza uno existente. Si aún no tienes una cuenta de Gmail o de Google Workspace, debes crear una.



- El Nombre del proyecto es el nombre visible de los participantes de este proyecto. Es una cadena de caracteres que no se utiliza en las APIs de Google. Puedes actualizarla en cualquier momento.
- El ID del proyecto es único en todos los proyectos de Google Cloud y es inmutable (no se puede cambiar después de configurarlo). La consola de Cloud genera automáticamente una cadena única. Por lo general, no importa cuál sea. En la mayoría de los codelabs, deberás hacer referencia al ID del proyecto (suele identificarse como
PROJECT_ID). Si no te gusta el ID que se generó, podrías generar otro aleatorio. También puedes probar uno propio y ver si está disponible. No se puede cambiar después de este paso y se usará el mismo durante todo el proyecto. - Recuerda que hay un tercer valor, un número de proyecto, que usan algunas APIs. Obtén más información sobre estos tres valores en la documentación.
- A continuación, deberás habilitar la facturación en la consola de Cloud para usar las APIs o los recursos de Cloud. Ejecutar este codelab no debería costar mucho, tal vez nada. Para cerrar recursos y evitar que se generen cobros más allá de este instructivo, puedes borrar los recursos que creaste o borrar todo el proyecto. Los usuarios nuevos de Google Cloud son aptos para participar en el programa Prueba gratuita de USD 300.
Google Cloud Shell
Si bien Google Cloud y Compute Engine se pueden operar de manera remota desde tu laptop, en este codelab usaremos Google Cloud Shell, un entorno de línea de comandos que se ejecuta en la nube.
Esta máquina virtual basada en Debian está cargada con todas las herramientas de desarrollo que necesitarás. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud, lo que permite mejorar considerablemente el rendimiento de la red y la autenticación. Esto significa que todo lo que necesitarás para este Codelab es un navegador (sí, funciona en una Chromebook).
- Para activar Cloud Shell desde la consola de Cloud, solo haz clic en Activar Cloud Shell
(el aprovisionamiento y la conexión al entorno debería llevar solo unos minutos).


Una vez conectado a Cloud Shell, debería ver que ya se autenticó y que el proyecto ya se configuró con tu PROJECT_ID:
gcloud auth list
Resultado del comando
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
Resultado del comando
[core] project = <PROJECT_ID>
Si, por algún motivo, el proyecto no está configurado, solo emite el siguiente comando:
gcloud config set project <PROJECT_ID>
Si no conoce su PROJECT_ID, Observa el ID que usaste en los pasos de configuración o búscalo en el panel de la consola de Cloud:

Cloud Shell también configura algunas variables de entorno de forma predeterminada, lo que puede resultar útil cuando ejecutas comandos futuros.
echo $GOOGLE_CLOUD_PROJECT
Resultado del comando
<PROJECT_ID>
- Establece la zona predeterminada y la configuración del proyecto.
gcloud config set compute/zone us-central1-f
Puedes elegir una variedad de zonas diferentes. Para obtener más información, consulta Regiones y zonas.
3. Crea una instancia de Compute Engine
Primero, crearemos una máquina virtual con la herramienta de línea de comandos de gcloud. También puedes usar la consola si lo prefieres, pero la línea de comandos es más fácil de repetir y explicar.
Primero, crearemos una instancia n2-standard-2 llamada pi-codelab con Debian 11 como sistema operativo. También usaremos el disco persistente (PD) balanceado para el volumen de arranque. Los PDs balanceados están respaldados por unidades de estado sólido (SSD) y equilibran el rendimiento y el costo. Te preguntará qué zona usar si no seleccionaste la zona predeterminada en la sección Configuración y 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
El resultado del comando debería verse así:
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
Ten en cuenta que los campos INTERNAL_IP y EXTERNAL_IP cambian cada vez que creas una VM nueva.
Si deseas obtener más información sobre el comando gcloud compute instances create, visita la página de referencia.
4. Establece una conexión SSH a la instancia
Para establecer una conexión SSH con la instancia desde la línea de comandos, ejecuta el siguiente comando.
gcloud compute ssh pi-codelab
Eso es todo. Ahora estás en la máquina virtual. Para confirmar tu host actual, ejecuta el comando hostname.
hostname
El comando mostrará el nombre de host del entorno de shell actual.
pi-codelab
5. Instala las dependencias
Ahora instalaremos las dependencias necesarias para compilar el programa para calcular pi.
sudo apt update sudo apt -y install build-essential libgmp-dev libmpfr-dev libfmt-dev
El proceso tarda unos minutos en completarse. Ahora, verifiquemos si tienes un compilador de C++ que funcione.
c++ --version
Si el compilador está instalado correctamente, este comando generará información sobre la versión.
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. Compila el programa
Ahora, compilaremos el programa en C++ para calcular pi. Es más simple de lo que parece, incluso si nunca desarrollaste en C++. Todos los requisitos previos se instalaron en el paso anterior, por lo que solo necesitamos recuperar y compilar el código fuente.
Primero, recupera y guarda el código fuente. En este paso, se descarga un archivo fuente de GitHub y se guarda como pi.cc en el directorio actual.
curl -OL https://raw.githubusercontent.com/GoogleCloudPlatform/pi-delivery/main/codelab/pi.cc
A continuación, ejecuta el compilador de C++ para compilar el código fuente guardado.
c++ -opi pi.cc -std=c++17 -O3 -march=native -lgmp -lmpfr -lpthread -lfmt
El compilador no genera ningún resultado en caso de éxito. Comprobemos que tienes el archivo ejecutable:
ls pi
Este comando ls debería mostrar el nombre del archivo del programa si existe.
pi
7. Calcula Pi
El programa pi toma un argumento, la cantidad de dígitos que se deben calcular. Por ejemplo, calculemos los primeros 100 decimales de pi.
./pi 100
El programa finalizará en menos de un segundo y generará un resultado similar al siguiente:
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
La última línea contiene los primeros 100 decimales de pi. ¡Felicitaciones! Acabas de hacer que la computadora haga los cálculos por ti.
El programa puede calcular más dígitos (actualmente, el límite es de 100,000 millones de dígitos). Ahora calculemos 10 millones de dígitos y midamos cuánto tiempo lleva. Redirigimos el resultado a un archivo, ya que 10 millones de dígitos de pi son demasiado largos para verlos en la consola de la línea de comandos.
time ./pi 10000000 > pi10m.txt
El programa genera un resultado similar al siguiente:
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
Esta vez no incluye los dígitos, ya que se guardan en el archivo pi10m.txt. Las últimas tres líneas describen cuánto tiempo tardó el programa en ejecutarse y cuánta CPU usó.
- real: Es el tiempo real desde el inicio hasta el final, lo que significa que se tardó 9.7 segundos en calcular 10 millones de dígitos de pi en el ejemplo anterior.
- user: cuánto tiempo de CPU usó, que es mayor que el "real" porque la máquina tiene dos núcleos de CPU y cada núcleo se cuenta para el total.
- sys: Es el tiempo que necesitó el sistema operativo para ejecutar el programa y procesar tareas del sistema, como las de red y E/S. Esta vez, tardó alrededor de 0.4 segundos, que es principalmente el tiempo que se tarda en escribir el resultado en el disco.
Podemos consultar pi10m.txt y ver los primeros y los últimos 100 dígitos.
Verifiquemos los primeros dígitos. Este comando genera los primeros 100 decimales (y los primeros 3 y el punto decimal).
head -c 102 pi10m.txt
El resultado debería verse así.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
El siguiente comando genera los últimos 100 decimales.
tail -c 100 pi10m.txt
El resultado debería verse así.
610515549257985759204553246894468742702504639790565326553194060999469787333810631719481735348955897
8. Limpia el clúster
No olvides cerrar tu instancia de Compute Engine, ya que, de lo contrario, seguirá ejecutándose y acumulando costos.
Si estás en la VM (conectado con SSH), primero ejecuta el comando exit para salir.
exit
Luego, ejecuta el siguiente comando de gcloud compute instances delete para borrar la instancia y los discos asociados. Se te pedirá que confirmes la eliminación del recurso.
gcloud compute instances delete pi-codelab
9. Próximos pasos
¡Felicitaciones! Completaste este codelab de Compute Engine y calculaste 10 millones de dígitos de pi.
En 2022, usamos la misma infraestructura para calcular 100 billones de dígitos de pi. Lee el anuncio para ver cómo lo hicimos. Los resultados completos están disponibles en nuestro sitio de demostración pi.delivery.
Mantente al tanto de las últimas noticias sobre Compute y la computación de alto rendimiento en el blog de Google Cloud.
Más funciones de Compute Engine
Compute Engine tiene un amplio conjunto de funciones. Te recomendamos que explores algunos de estos recursos :
- VMs interrumpibles: https://cloud.google.com/compute/docs/instances/create-start-preemptible-instance
- Nodos de usuario único: https://cloud.google.com/compute/docs/nodes/create-nodes
- GPUs y TPUs: https://cloud.google.com/compute/docs/gpus/add-gpus
- Instancias de Windows: https://cloud.google.com/compute/docs/instances/windows/creating-managing-windows-instances
- Etiquetado de recursos: https://cloud.google.com/compute/docs/labeling-resources
- Migra VMs a Compute Engine: https://cloud.google.com/compute/docs/vm-migration/
Envíanos tus comentarios
- Tómate un momento para completar nuestra breve encuesta