1. Pengantar
Terima kasih telah membuka codelab ini. Siap untuk menghitung beberapa angka di Compute Engine?
Dalam codelab ini, kita akan membahas 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 beragam jumlah core, ukuran memori, dan penyimpanan. Anda dapat menggunakan mesin dengan lebih dari 100 core dan ratusan GB memori jika perlu. Namun, dalam contoh ini, kami akan meluncurkan mesin virtual dengan memori 8 GB dan 2 vCPU yang telah ditetapkan.
Kita akan menggunakan seri mesin N2 dalam codelab ini. VM ini adalah VM kelompok mesin dengan 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 oleh kelompok mesin tujuan umum.
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
peduli tentang apa itu. Di sebagian besar codelab, Anda harus mereferensikan Project ID (biasanya diidentifikasi sebagai
PROJECT_ID
). Jika Anda tidak menyukai ID yang dihasilkan, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri dan lihat 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. Untuk 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 secara jarak jauh dari laptop Anda, dalam codelab ini kita akan menggunakan Google Cloud Shell, yakni 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 untuk diulang dan dijelaskan.
Pertama-tama, mari kita buat instance n2-standard-2 bernama pi-codelab dengan Debian 11 sebagai sistem operasinya. Kita juga akan menggunakan Balanced Persistent Disk (PD) untuk volume booting. PD yang seimbang didukung oleh solid-state drive (SSD) dan menyeimbangkan performa serta biaya. Sistem 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 perintah gcloud compute instances create
lebih lanjut, kunjungi halaman referensi.
4. SSH ke Instance
Untuk menerapkan SSH ke instance dari command line, jalankan perintah berikut.
gcloud compute ssh pi-codelab
Selesai. Sekarang Anda berada di mesin virtual. Anda dapat mengonfirmasi {i>host<i} Anda saat ini dengan menjalankan perintah {i>host<i}.
hostname
Perintah tersebut 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. Sekarang mari 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. Mengompilasi Program
Sekarang mari kita kompilasi program C++ untuk menghitung pi. Ini lebih sederhana daripada kedengarannya meskipun Anda belum pernah mengembangkannya dalam C++ sebelumnya. Semua prasyarat telah diinstal di langkah sebelumnya, jadi kita hanya perlu mengambil dan mengompilasi kode sumber.
Pertama, ambil dan simpan kode sumber. Langkah ini 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
Berikutnya, jalankan compiler C++ untuk mengompilasi kode sumber yang disimpan.
c++ -opi pi.cc -std=c++17 -O3 -march=native -lgmp -lmpfr -lpthread -lfmt
Compiler tidak menghasilkan output apa pun jika berhasil. Periksa apakah Anda memiliki file yang dapat dieksekusi:
ls pi
Perintah {i>ls<i} ini akan menampilkan nama file program jika ada.
pi
7. Hitung Pi
Program pi
menggunakan satu argumen, yaitu jumlah digit yang akan dihitung. Misalnya, mari kita hitung 100 desimal pertama pi.
./pi 100
Program ini 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 untuk menghitungnya!
Program ini dapat menghitung lebih banyak digit (saat ini dibatasi hingga 100 miliar digit). Sekarang mari kita hitung 10 juta digit dan hitung berapa lama waktu yang dibutuhkan. Kami mengalihkan {i>output<i} ke file karena 10 juta digit pi terlalu panjang untuk dilihat di konsol baris perintah.
time ./pi 10000000 > pi10m.txt
Program akan 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 nomor tersebut tidak mencakup digit yang disimpan dalam file pi10m.txt
. Tiga baris terakhir menjelaskan berapa banyak waktu yang dibutuhkan program untuk berjalan dan berapa banyak cpu yang digunakan.
- real: waktu sebenarnya dari awal hingga akhir, yang berarti butuh 9,7 detik untuk menghitung 10 juta digit pi pada contoh di atas.
- pengguna: berapa banyak waktu CPU yang digunakan, yang lebih besar dari "nyata" karena komputer itu memiliki dua inti CPU dan setiap inti dihitung dalam jumlah total.
- sys: waktu yang diperlukan sistem operasi untuk menjalankan program untuk memproses tugas sistem seperti jaringan dan I/O. Kali ini butuh waktu sekitar 0,4 detik, yang sebagian besar merupakan waktu untuk menulis hasilnya ke {i>disk<i}.
Kita dapat melihat pi10m.txt dan melihat masing-masing 100 digit pertama dan terakhir.
Mari kita periksa digit pertama. Perintah ini menghasilkan 100 desimal pertama (dan 3 desimal pertama).
head -c 102 pi10m.txt
Hasilnya akan terlihat seperti ini.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Perintah berikutnya menghasilkan 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 Compute Engine akan terus berjalan dan dikenai biaya.
Jika Anda menggunakan 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 mengetahui performa kami. Seluruh hasilnya tersedia di situs demo pi.delivery.
Selalu ikuti berita terbaru tentang Compute dan High Performance Computing di Blog Google Cloud.
Fitur Compute Engine lainnya
Compute Engine memiliki serangkaian fitur yang beragam. 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
- Melabeli 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