1. Giriş
Bu codelab'i açtığınız için teşekkür ederiz. Compute Engine'de hesaplama yapmaya hazır mısınız?
Bu codelab'de, yeni bir sanal makineyi nasıl başlatacağınızı ve pi sayısını hesaplamak için bir programı nasıl çalıştıracağınızı adım adım açıklayacağız.
Compute Engine örneği oluşturup pi değerini hesaplamak için bir program indirecek, derleyecek ve çalıştıracaksınız. Console'dan veya komut satırından Compute Engine örneği oluşturabilirsiniz. Bu laboratuvar, komut satırı araçlarını kullanma konusunda size yol gösterecektir.
Compute Engine; farklı çekirdek sayıları, bellek boyutları ve depolama alanları gibi çeşitli şekillerde çalışan sanal makineler sunar. Gerekirse 100'den fazla çekirdek ve yüzlerce GB belleğe sahip bir makine kullanabilirsiniz. Ancak bu örnekte, önceden tanımlanmış 2 vCPU ve 8 GB bellekli bir sanal makineyi kullanıma sunacağız.
Bu codelab'de N2 makine serisini kullanacağız. Çoğu standart ve bulutta yerel iş yükünü hedefleyen genel amaçlı bir makine ailesi sanal makinesidir. N2 serisi, iş parçacığı başına daha yüksek performansa ve genel amaçlı makine ailesinin sunduğu tüm esnekliğe sahiptir.
Başlayalım o halde.
2. Kurulum ve Gereksinimler
Kendi hızınızda ortam kurulumu
- Google Cloud Console'da oturum açıp yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.
- Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. İstediğiniz zaman güncelleyebilirsiniz.
- Proje Kimliği, tüm Google Cloud projelerinde benzersizdir ve değiştirilemez (belirlendikten sonra değiştirilemez). Cloud Console, otomatik olarak benzersiz bir dize oluşturur. bunun ne olduğunu umursamıyorsunuz. Çoğu codelab'de proje kimliğini (genellikle
PROJECT_ID
olarak tanımlanır) referans almanız gerekir. Oluşturulan kimliği beğenmezseniz rastgele bir kimlik daha oluşturabilirsiniz. Alternatif olarak, kendi ölçümünüzü deneyip mevcut olup olmadığına bakabilirsiniz. Bu adımdan sonra değiştirilemez ve proje süresince kalır. - Bilginiz için bazı API'lerin kullandığı üçüncü bir değer, yani Proje Numarası daha vardır. Bu değerlerin üçü hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
- Sonraki adımda, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. Bu eğitim dışında faturalandırma yapılmaması için kaynakları kapatmak isterseniz oluşturduğunuz kaynakları silebilir veya projenin tamamını silebilirsiniz. Yeni Google Cloud kullanıcıları, 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.
Google Cloud Shell
Google Cloud ve Compute Engine, dizüstü bilgisayarınızdan uzaktan çalıştırılabilse de bu codelab'de Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacağız.
Bu Debian tabanlı sanal makine, ihtiyacınız olan tüm geliştirme araçlarıyla yüklüdür. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud'da çalışarak ağ performansını ve kimlik doğrulamasını büyük ölçüde iyileştirir. Yani bu codelab'de ihtiyacınız olan tek şey bir tarayıcıdır (Evet, Chromebook'ta çalışır).
- Cloud Shell'i Cloud Console'dan etkinleştirmek için Cloud Shell'i etkinleştir simgesini tıklamanız yeterlidir (sağlanması ve ortama bağlanması yalnızca birkaç dakika sürer).
Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin PROJECT_ID
olarak ayarlanmış olduğunu göreceksiniz.
gcloud auth list
Komut çıkışı
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
Komut çıkışı
[core] project = <PROJECT_ID>
Herhangi bir nedenle proje ayarlanmamışsa şu komutu vermeniz yeterlidir:
gcloud config set project <PROJECT_ID>
PROJECT_ID
cihazınızı mı arıyorsunuz? Kurulum adımlarında kullandığınız kimliği kontrol edin veya Cloud Console kontrol panelinden arayın:
Cloud Shell bazı ortam değişkenlerini de varsayılan olarak ayarlar. Bu değişkenler, gelecekte komut çalıştırdığınızda işinize yarayabilir.
echo $GOOGLE_CLOUD_PROJECT
Komut çıkışı
<PROJECT_ID>
- Son olarak, varsayılan alt bölgeyi ve proje yapılandırmasını ayarlayın.
gcloud config set compute/zone us-central1-f
Çeşitli farklı alt bölgeler seçebilirsiniz. Daha fazla bilgi için Bölgeler ve Bölgeler.
3. Compute Engine örneği oluşturma
Öncelikle gcloud komut satırı aracıyla bir sanal makine oluşturacağız. İsterseniz Konsol'u da kullanabilirsiniz ancak komut satırının tekrarlanması ve açıklaması daha kolaydır.
Öncelikle işletim sistemi olarak Debian 11'i kullanarak pi-codelab adlı bir n2-standard-2 örneği oluşturalım. Ayrıca, başlatma birimi için Dengeli Kalıcı Disk (PD) kullanılır. Dengeli PD'ler, katı hal sürücüleri (SSD) ile desteklenir ve performans ile maliyeti dengeler. Kurulum ve Koşullar bölümünde varsayılan alt bölgeyi seçmediyseniz hangi alt bölgeyi kullanacağınız sorulur.
gcloud compute instances create pi-codelab \ --machine-type=n2-standard-2 \ --image-project=debian-cloud \ --image-family=debian-11 \ --boot-disk-type=pd-balanced
Komutun sonucu şu şekilde görünmelidir:
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
Oluşturduğunuz her yeni sanal makinede INTERNAL_IP ve EXTERNAL_IP alanlarının değiştiğini lütfen unutmayın.
gcloud compute instances create
komutu hakkında daha fazla bilgi edinmek için lütfen referans sayfasını ziyaret edin.
4. Örneğe SSH
Komut satırından örneğe SSH uygulamak için aşağıdaki komutu çalıştırın.
gcloud compute ssh pi-codelab
İşte bu kadar. Şimdi sanal makinedesiniz. Ana makine adı komutunu çalıştırarak mevcut ana makinenizi onaylayabilirsiniz.
hostname
Bu komut, geçerli kabuk ortamının ana makine adını görüntüler.
pi-codelab
5. Bağımlılıkları Yükleme
Şimdi, pi sayısını hesaplayacak programı derlemek için gereken bağımlılıkları yükleyeceğiz.
sudo apt update sudo apt -y install build-essential libgmp-dev libmpfr-dev libfmt-dev
İşlemin tamamlanması birkaç dakika sürer. Şimdi çalışan bir C++ derleyiciniz olup olmadığını kontrol edelim.
c++ --version
Bu komut, doğru yüklenirse derleyicinin sürüm bilgilerinin çıktısını verir.
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. Programı derleyin
Şimdi, Pi'yi hesaplamak için C++ programını derleyelim. Daha önce C++'ta geliştirmemiş olsanız bile bu, göründüğünden daha basittir. Tüm ön koşullar önceki adımda yüklendiğinden yalnızca kaynak kodunu getirip derlememiz gerekir.
İlk olarak kaynak kodunu getirin ve kaydedin. Bu adımda, GitHub'dan bir kaynak dosya indirilir ve bu dosya, geçerli dizinde pi.cc olarak kaydedilir.
curl -OL https://raw.githubusercontent.com/GoogleCloudPlatform/pi-delivery/main/codelab/pi.cc
Sonra, kaydedilen kaynak kodunu derlemek için C++ derleyiciyi çalıştırın.
c++ -opi pi.cc -std=c++17 -O3 -march=native -lgmp -lmpfr -lpthread -lfmt
Derleyici, başarılı olması durumunda hiçbir çıktı sağlamaz. Yürütülebilir dosyanın sizde olup olmadığını kontrol edelim:
ls pi
Bu ls komutu, (varsa) programın dosya adını vermelidir.
pi
7. Pi'yi hesaplayın
pi
programı, hesaplanacak basamak sayısı olan tek bağımsız değişken alır. Örneğin, pi sayısının ilk 100 ondalık basamağını hesaplayalım.
./pi 100
Program bir saniyeden daha kısa sürede tamamlanır ve şuna benzer bir çıkış verir:
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
Son satır, pi sayısının ilk 100 ondalık basamağıdır. Tebrikler, bilgisayar hesaplamasını sizin yerinize yaptınız!
Program daha fazla basamak hesaplayabilir (şu anda 100 milyar basamakla sınırlanmıştır). Şimdi 10 milyon basamağı hesaplayıp bunun ne kadar sürdüğünü ölçelim. Pi sayısının 10 milyon basamağı komut satırı konsolunda görüntülenemeyecek kadar uzun olduğundan, çıkışı bir dosyaya yönlendiririz.
time ./pi 10000000 > pi10m.txt
Program aşağıdaki gibi bir çıktı verir:
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
pi10m.txt
dosyasına kaydedildiğinden şu anda rakamlar eklenmiyor. Son üç satır, programın çalışmasının ne kadar sürdüğünü ve ne kadar CPU kullandığını açıklar.
- real: başından sonuna kadar geçen gerçek süredir.Yukarıdaki örnekte, 10 milyon pi sayısının hesaplanması 9,7 saniye sürmüştür.
- user: ne kadar CPU süresi kullandığını belirtir, "gerçek" değerinden büyüktür çünkü makinenin iki CPU çekirdeği vardır ve her çekirdek, toplama dahil edilir.
- sys: ağ ve G/Ç gibi sistem görevlerini işlemek için işletim sisteminin programı çalıştırmak için ihtiyaç duyduğu süre. Bu işlem yaklaşık 0,4 saniye sürdü.Bu, sonucu diske yazmak için çoğunlukla gereken süredir.
pi10m.txt dosyasını inceleyip her birinin ilk ve son 100 rakamını görebiliriz.
İlk basamakları kontrol edelim. Bu komut ilk 100 ondalık basamağı (ve ilk 3 ve ondalık basamağı) verir.
head -c 102 pi10m.txt
Sonuç aşağıdaki gibi görünmelidir.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Sonraki komut son 100 ondalık sayıyı verir.
tail -c 100 pi10m.txt
Sonuç aşağıdaki gibi görünmelidir.
610515549257985759204553246894468742702504639790565326553194060999469787333810631719481735348955897
8. Kümeyi temizleyin
Compute Engine örneğinizi kapatmayı unutmayın. Aksi takdirde örneğiniz çalışmaya ve maliyet oluşturmaya devam eder.
Sanal makine üzerindeyseniz (SSH'ye bağlıysanız) önce çıkış komutunu çalıştırarak çıkış yapın.
exit
Ardından örneği ve ilişkili diskleri silmek için aşağıdaki gcloud compute instances delete
komutunu çalıştırın. Kaynağın silinmesini onaylamanız istenir.
gcloud compute instances delete pi-codelab
9. Sırada ne var?
Tebrikler, bu Compute Engine codelab'ini tamamladınız ve pi sayısının 10 milyon basamağını hesapladınız.
2022'de pi sayısının 100 trilyon basamağını hesaplamak için aynı altyapıyı kullandık. Performansımızı görmek için duyuruyu okuyun. Sonuçların tamamına pi.delivery demo sitemizden ulaşabilirsiniz.
Google Cloud Blogu'nda Hesaplama ve Yüksek Performanslı Bilgi İşlem ile ilgili en son gelişmeleri takip edin.
Diğer Compute Engine özellikleri
Compute Engine, zengin bir özellik grubuna sahiptir. Bunlardan bazılarını öğrenmek isteyebilirsiniz :
- Öncelikli Sanal Makineler: https://cloud.google.com/compute/docs/instances/create-start-preemptible-instance
- Tek kiracılı düğümler - https://cloud.google.com/compute/docs/nodes/create-nodes
- GPU'lar ve TPU'lar: https://cloud.google.com/compute/docs/gpus/add-gpus
- Windows örnekleri: https://cloud.google.com/compute/docs/instances/windows/creating-managing-windows-instances
- Kaynakları Etiketleme: https://cloud.google.com/compute/docs/labeling-resources
- Sanal Makineleri Compute Engine'e Taşıma: https://cloud.google.com/compute/docs/vm-migration/
Geri bildiriminizi paylaşın
- Lütfen çok kısa bir süre ayırarak anketimizi doldurun.