Paralelleştirelim mi?

R'da Paralel Programlama

Nabeel Imam

Data Scientist

Hadi bir bina inşa edelim

   

Son katın üstüne yeni kat yapmak: ardışık

 

Bitmiş yapıya pencere takmak: paralel

Bir bina inşaat halinde. Katlar yalnızca sırayla yapılabilir, pencereler ise paralel takılabilir.

R'da Paralel Programlama

Ardışık–paralel ölçeği

Yaygın hesaplama görevleri bir ölçeğe yerleştirilmiş: bir uçta ardışık, diğer uçta paralel. Yeni değişken oluşturma paralel uca yakınken, kümülatif toplam ardışık uca yakındır.

R'da Paralel Programlama

Klasik bir sayısal işlem

Bir milyon sayının kareköklerini hesaplamak

numbers <- 1:1000000


start <- Sys.time() sq_roots <- lapply(numbers, sqrt) end <- Sys.time()
end - start
Time difference of 1.044573 secs
R'da Paralel Programlama

Karekökü nasıl paralelleştiririz?

Karekökleri paralel hesaplamak için bir akış şeması. Birden milyona kadar tam sayılar, her biri 200.000 uzunluğunda beş gruba ayrılır.

R'da Paralel Programlama

Karekökü nasıl paralelleştiririz?

Bölünmüş veriler, birden fazla çekirdekten oluşan kümeye gönderilir. Her sayı grubu, karekök hesabı için bir çekirdeğe gider. Tüm çekirdekler meşgulse, yeni gruplar çekirdek boşalana kadar bekler.

R'da Paralel Programlama

Karekökü nasıl paralelleştiririz?

Karekökler her çekirdekten toplanır ve birleştirilerek bir milyon karekök elde edilir.

R'da Paralel Programlama

Paralelleştirilmiş bir sayısal işlem

Bir milyon sayının karekökleri, paralel olarak

library(parallel)


my_cluster <- makeCluster(3)
start <- Sys.time() sq_roots <- parLapply(my_cluster, numbers, sqrt) end <- Sys.time()
stopCluster(my_cluster)
end - start
Time difference of 0.8416824 secs
R'da Paralel Programlama

Beklediğimiz kadar hızlı değil

Birden milyona kadar sayıların kareköklerinin paralel hesaplanmasına ait bir akış şeması.

R'da Paralel Programlama

Beklediğimiz kadar hızlı değil

Paralel yürütme birkaç ek görevi içerir. İlki veriyi bölmektir.

R'da Paralel Programlama

Beklediğimiz kadar hızlı değil

Böldükten sonra, verinin her alt grubu kümedeki çekirdeklere kopyalanmalıdır.

R'da Paralel Programlama

Beklediğimiz kadar hızlı değil

Hesaptan sonra, her çekirdeğin çıktısı toplanıp nihai sonuç üretilir.

R'da Paralel Programlama

Beklediğimiz kadar hızlı değil

Sürecin tümünü orkestre etmek de bazı hesaplama kaynaklarını tüketir.

R'da Paralel Programlama

Peki, paralelleştirelim mi?

Yeterince karmaşık bir görev için şunları düşün:

Artıları

  • Ardışıktan daha hızlı
  • Uzun vadede daha maliyet-etkin

 

Eksileri

  • Özel programlama becerileri ister (ama sen hazırsın!)
  • Yüksek bellek kullanımı
R'da Paralel Programlama

Hadi pratik yapalım!

R'da Paralel Programlama

Preparing Video For Download...