1. Pengantar
Terima kasih telah membuka codelab ini. Siap memproses beberapa angka di Compute Engine?
Dalam codelab ini, kita akan mempelajari cara memulai mesin virtual baru dan menjalankan program untuk menghitung pi.
Anda akan membuat instance Compute Engine, mendownload, mengompilasi, dan menjalankan program untuk menghitung pi. Anda dapat membuat instance Compute Engine dari Konsol atau command line. Lab ini akan memandu Anda menggunakan alat command line.

Compute Engine menawarkan virtual machine yang berjalan dalam berbagai bentuk, seperti jumlah core, ukuran memori, dan penyimpanan yang berbeda. Anda dapat menggunakan mesin dengan lebih dari 100 core dan memori beberapa ratus GB jika perlu, tetapi dalam contoh ini, kita akan meluncurkan mesin virtual 2 vCPU dan memori 8 GB yang telah ditentukan sebelumnya.
Kita akan menggunakan seri mesin N2 dalam codelab ini. VM ini adalah kelompok mesin tujuan umum yang menargetkan sebagian besar workload standar dan berbasis cloud. Seri N2 memiliki performa per thread yang lebih tinggi dan semua fleksibilitas yang ditawarkan kelompok mesin tujuan umum.
Sekarang, mari kita mulai.
2. Penyiapan dan Persyaratan
Penyiapan lingkungan mandiri
- Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.



- Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
- Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (biasanya diidentifikasi sebagai
PROJECT_ID). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri dan melihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan akan tetap ada selama durasi project. - Sebagai informasi, ada nilai ketiga, Project Number yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
- Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Guna mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus seluruh project. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.
Google Cloud Shell
Meskipun Google Cloud dan Compute Engine dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, kita akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.
Mesin virtual berbasis Debian ini memuat semua alat pengembangan yang akan Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Ini berarti bahwa semua yang Anda perlukan untuk codelab ini adalah browser (ya, ini berfungsi di Chromebook).
- Untuk mengaktifkan Cloud Shell dari Cloud Console, cukup klik Aktifkan Cloud Shell
(hanya perlu beberapa saat untuk melakukan penyediaan dan terhubung ke lingkungan).


Setelah terhubung ke Cloud Shell, Anda akan melihat bahwa Anda sudah diautentikasi dan project sudah ditetapkan ke PROJECT_ID.
gcloud auth list
Output perintah
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
Output perintah
[core] project = <PROJECT_ID>
Jika, untuk beberapa alasan, project belum disetel, cukup jalankan perintah berikut:
gcloud config set project <PROJECT_ID>
Mencari PROJECT_ID Anda? Periksa ID yang Anda gunakan di langkah-langkah penyiapan atau cari di dasbor Cloud Console:

Cloud Shell juga menetapkan beberapa variabel lingkungan secara default, yang mungkin berguna saat Anda menjalankan perintah di masa mendatang.
echo $GOOGLE_CLOUD_PROJECT
Output perintah
<PROJECT_ID>
- Terakhir, tetapkan zona dan konfigurasi project default.
gcloud config set compute/zone us-central1-f
Anda dapat memilih berbagai zona yang berbeda. Untuk informasi selengkapnya, lihat Region & Zona.
3. Membuat instance Compute Engine
Pertama, kita akan membuat virtual machine dengan alat command line gcloud. Anda juga dapat menggunakan Konsol jika mau, tetapi command line lebih mudah diulang dan dijelaskan.
Pertama, buat instance n2-standard-2 bernama pi-codelab dengan Debian 11 sebagai sistem operasi. Kita juga akan menggunakan Persistent Disk (PD) Seimbang untuk volume boot. PD seimbang didukung oleh solid state drive (SSD) dan menyeimbangkan performa dan biaya. Aplikasi akan menanyakan zona mana yang akan digunakan jika Anda tidak memilih zona default di bagian Penyiapan dan Persyaratan.
gcloud compute instances create pi-codelab \ --machine-type=n2-standard-2 \ --image-project=debian-cloud \ --image-family=debian-11 \ --boot-disk-type=pd-balanced
Hasil perintah akan terlihat seperti ini:
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
Perhatikan bahwa kolom INTERNAL_IP dan EXTERNAL_IP berubah setiap kali Anda membuat VM baru.
Jika Anda ingin mempelajari lebih lanjut perintah gcloud compute instances create, buka halaman referensi.
4. Menghubungkan SSH ke Instance
Untuk melakukan SSH ke instance dari command line, jalankan perintah berikut.
gcloud compute ssh pi-codelab
Selesai! Sekarang Anda berada di virtual machine. Anda dapat mengonfirmasi host saat ini dengan menjalankan perintah hostname.
hostname
Perintah ini akan menampilkan nama host lingkungan shell saat ini.
pi-codelab
5. Menginstal Dependensi
Sekarang kita akan menginstal dependensi yang diperlukan untuk mengompilasi program guna menghitung pi.
sudo apt update sudo apt -y install build-essential libgmp-dev libmpfr-dev libfmt-dev
Proses ini membutuhkan waktu beberapa menit hingga selesai. Sekarang, mari kita periksa apakah Anda memiliki compiler C++ yang berfungsi.
c++ --version
Perintah ini akan menampilkan informasi versi compiler jika diinstal dengan benar.
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. Kompilasi Program
Sekarang, mari kita kompilasi program C++ untuk menghitung pi. Proses ini lebih sederhana daripada yang terlihat, meskipun Anda belum pernah mengembangkan di C++ sebelumnya. Semua prasyarat telah diinstal pada langkah sebelumnya, jadi kita hanya perlu mengambil dan mengompilasi kode sumber.
Pertama, ambil dan simpan kode sumber. Langkah ini akan mendownload file sumber dari GitHub dan menyimpannya sebagai pi.cc di direktori saat ini.
curl -OL https://raw.githubusercontent.com/GoogleCloudPlatform/pi-delivery/main/codelab/pi.cc
Selanjutnya, jalankan compiler C++ untuk mengompilasi kode sumber yang disimpan.
c++ -opi pi.cc -std=c++17 -O3 -march=native -lgmp -lmpfr -lpthread -lfmt
Kompiler tidak menghasilkan apa pun jika berhasil. Mari kita periksa apakah Anda memiliki file yang dapat dieksekusi:
ls pi
Perintah ls ini akan menampilkan nama file program jika ada.
pi
7. Menghitung Pi
Program pi menggunakan satu argumen, yaitu jumlah digit yang akan dihitung. Misalnya, mari kita hitung 100 desimal pertama pi.
./pi 100
Program akan selesai dalam waktu kurang dari satu detik dan menghasilkan output seperti ini:
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
Baris terakhir adalah 100 desimal pertama pi. Selamat, Anda baru saja meminta komputer menghitung untuk Anda.
Program ini dapat menghitung lebih banyak digit (saat ini dibatasi hingga 100 miliar digit). Sekarang, mari kita hitung 10 juta digit dan ukur berapa lama waktu yang dibutuhkan. Kita mengalihkan output ke file karena 10 juta digit pi terlalu panjang untuk dilihat di konsol command line.
time ./pi 10000000 > pi10m.txt
Program ini menghasilkan output seperti ini:
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
Kali ini tidak menyertakan digit karena disimpan dalam file pi10m.txt. Tiga baris terakhir menjelaskan berapa lama waktu yang dibutuhkan program untuk berjalan dan berapa banyak CPU yang digunakan.
- real: waktu sebenarnya dari awal hingga akhir, yang berarti dibutuhkan waktu 9,7 detik untuk menghitung 10 juta digit pi dalam contoh di atas.
- pengguna: berapa banyak waktu CPU yang digunakan, yang lebih besar daripada "nyata" karena mesin memiliki dua core CPU dan setiap core dihitung ke dalam total.
- sys: waktu yang dibutuhkan sistem operasi untuk menjalankan program guna memproses tugas sistem seperti jaringan dan I/O. Kali ini, waktu yang diperlukan sekitar 0,4 detik, yang sebagian besar merupakan waktu untuk menulis hasil ke disk.
Kita dapat melihat pi10m.txt dan melihat 100 digit pertama dan terakhir.
Mari kita periksa digit pertama. Perintah ini menghasilkan 100 desimal pertama (dan 3 desimal pertama serta titik desimal).
head -c 102 pi10m.txt
Hasilnya akan terlihat seperti ini.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Perintah berikutnya akan menampilkan 100 desimal terakhir.
tail -c 100 pi10m.txt
Hasilnya akan terlihat seperti ini.
610515549257985759204553246894468742702504639790565326553194060999469787333810631719481735348955897
8. Membersihkan Cluster
Jangan lupa untuk menonaktifkan instance Compute Engine Anda, jika tidak, instance akan terus berjalan dan dikenai biaya.
Jika Anda berada di VM (terhubung dengan SSH), logout terlebih dahulu dengan menjalankan perintah keluar terlebih dahulu.
exit
Kemudian, jalankan perintah gcloud compute instances delete berikut untuk menghapus instance dan disk terkait. Anda akan diminta untuk mengonfirmasi penghapusan resource.
gcloud compute instances delete pi-codelab
9. Apa langkah selanjutnya?
Selamat, Anda telah menyelesaikan codelab Compute Engine ini dan menghitung 10 juta digit pi.
Kami menggunakan infrastruktur yang sama untuk menghitung 100 triliun digit pi pada tahun 2022. Baca pengumuman untuk melihat hasil kerja kami. Seluruh hasilnya tersedia di situs demo pi.delivery kami.
Ikuti terus berita terbaru tentang Compute dan High Performance Computing di Blog Google Cloud.
Fitur Compute Engine lainnya
Compute Engine memiliki serangkaian fitur yang lengkap. Anda mungkin ingin mempelajari beberapa di antaranya :
- Preemptible VM - https://cloud.google.com/compute/docs/instances/create-start-preemptible-instance
- Sole-tenant node - https://cloud.google.com/compute/docs/nodes/create-nodes
- GPU & TPU - https://cloud.google.com/compute/docs/gpus/add-gpus
- Instance Windows - https://cloud.google.com/compute/docs/instances/windows/creating-managing-windows-instances
- Memberi Label pada Resource - https://cloud.google.com/compute/docs/labeling-resources
- Memigrasikan VM ke Compute Engine - https://cloud.google.com/compute/docs/vm-migration/
Kirimkan masukan Anda
- Luangkan waktu Anda untuk menyelesaikan survei singkat kami