BaşlayınÜcretsiz Başlayın

Zamanlamalar parSapply()

Zar oyununun çalıştırılması utandırıcı derecede paraleldir (embarrassingly parallel). Bu tür simülasyonlar genellikle (ama her zaman değil) iyi bir hızlanma sağlar. Daha önce olduğu gibi, microbenchmark() veya system.time() kullanabiliriz. Basitlik açısından, bu egzersizde system.time() kullanacağız.

Bu egzersiz

Verimli R Kodu Yazma

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

play() fonksiyonu çalışma alanında tanımlı. Yüz bin oyun oynamak istediğimizi varsayalım.

  • no_of_games değerini 1e5 olarak ayarla.
  • play() fonksiyonunun seri biçimde art arda çağrılmasını zamanlamak için system.time() kullan.
    • 1:no_of_games ve play() sarmalayıcı fonksiyonuyla sapply() çağır.
    • Sonucu serial değişkenine ata.
    • Zamanlamak için bu çağrıyı system.time() içine al.
  • 4 çekirdekli bir küme (cluster) nesnesi oluştur ve play() fonksiyonunu bu kümeye dışa aktar.
  • play() fonksiyonunun paralel biçimde art arda çağrılmasını zamanlamak için system.time() kullan.
    • serial oluştururken kullandığın kodu yeniden düzenle, fakat paralel çalışacak şekilde.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Set the number of games to play
no_of_games <- ___

# Time serial version
system.time(serial <- sapply(1:___, function(i) play()))

# Set up cluster
cl <- makeCluster(___)
clusterExport(cl, "play")

# Time parallel version
system.time(par <- ___)

# Stop cluster
stopCluster(cl)
Kodu Düzenle ve Çalıştır