Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

R - Parallel Computing


deadwoll

Öne çıkan mesajlar

Bir parametreye ait 200 farklı değer için bir regresyon modeline Bootstrap'le kovaryans matrisi hesaplatıp sonra trace'lerini alarak uygun değeri seçen bir loop yazdım da, verisetim bayağı büyük olduğundan 12 saatten fazla sürüyor bootstrap sayısını 100 yapsam dahi.

R'de multicore desteği yok native olarak, bazı package'lar var ama her fonksiyonla çalışmıyorlar + ben parallel computing'den anlamıyorum. Yapabildiğim tek şey 4 ayrı instance açıp değerleri 4'e bölüp köylü işi parallel computing yapmak oldu. Bu yöntem işimi bayağı hızlandırdı (5 saat falan sürüyor böyle) ama ben sürekli yeni yaklaşımlar deniyorum, o yüzden 5 saat inanılmaz uzun bir süre benim için. Yararlanabileceğimi ümit ettiğim iki tane intensive computing lab.ı var ama tek core kullandığım sürece bir anlamı yok benim için o lab.ların.

Bana akıl verecek, koduma omuz atacak birileri çıkarsa çok sevineceğim. (Başka dilde yaz falan demeyin çünkü kullandığım kütüphanelerin hepsi R'da)
Link to comment
Sosyal ağlarda paylaş

Python'da yaz. R dediğin matlab gibi eşek ölüsü bir şey büyüklü datalar kullandığında. Eminim python'da aradığın libraryler çoktan yazılmıştır.

Edit: Verdiğin keywordlerle google'da bi arama yaptım, python için ilk sonuç https://stackoverflow.com/questions/16707141/python-estimating-regression-parameter-confidence-intervals-with-scikits-boots
Link to comment
Sosyal ağlarda paylaş

Phoenixlin'a katılıyorum ama, eğer işin başındaysan ve veriseti büyükse (benim şu an uğraştığım 2tb kadar) R ile verimli olmuyor.

ben de python'da pandas ile single processing gidiyorum da, yakınlarda multiprocess'e çevirmem gerekicek, nası yapıcam bak benim de hemen hiç fikrim yok :)

R multiprocessing konusunda yardımcı olamıyacam ama, hiç uğraşmadım.
Link to comment
Sosyal ağlarda paylaş

senko said:

ben de python'da pandas ile single processing gidiyorum da, yakınlarda multiprocess'e çevirmem gerekicek, nası yapıcam bak benim de hemen hiç fikrim yok :)


Been there, done that:

https://www.ploggingdev.com/2017/01/multiprocessing-and-multithreading-in-python-3/

Çok atla deve değil. Hatta bi ara buna alıştığım için Java'da multithread kod yazamıyodum asdf
Link to comment
Sosyal ağlarda paylaş

Lancelion said:

R ile mpi'yi kullanmayi deneyebilirsin, muhtemelen olur ?

https://bioinfomagician.wordpress.com/2013/11/25/mpi-tutorial-for-r-rmpi/

gece biraz daha bakarim eger bu tutmazsa.


Buna bakmıştım da kafam almadıydı. Mümkün mertebe tidyverse'in dışında bir örnekle anlatan bir örnek varsa süper olur.

@Phoenixlin, abi bizim alandaki elemanlar hep R'da çalışıyorlar. Yeni yeni python'a geçenler var ama bizim alanın teoricileri hala R kullanıyor ve muhtemelen daha yıllarca kullanmaya devam edecekler :<

Özetle şu an tek çarem R'da halletmek şu işi.
Link to comment
Sosyal ağlarda paylaş

O zaman ilkokul yıllarından bir esinti yapayım: "Alanındakiler köprüden atlasa sende mi atlıcan?"

R'ı hobi olarak gene kullanırsın bir sıkıntı yok da Python'ı bir kere öğrendin mi R'da yapabileceğin her şeyi ve daha fazlasını yapabileceğini göreceksin. R günün sonunda

Python'da çok korkma yani inanılmaz kolay bir dil. Google'da ingilizce keyword yazıp, arama yapabilen herkes 1 haftada her türlü işini yapabilir konuma gelir.

Hatta Quora'dan da destekleyim (doğrusu tüm cevapları atmışım da boş vaktin olursa herkesin bakış açısını okumak mantıklı tabi):

https://www.quora.com/Which-is-better-for-data-analysis-R-or-Python-Is-R-still-a-better-data-analysis-language-than-Python-Has-anyone-else-used-Python-with-Pandas-to-a-large-extent-in-data-analysis-projects

Edit: Bu arada çok python goygoyu yapıp sorununa yardım etmeyince rahatsız oldum. Belki R için şunlar işine yarar:

https://www.cs.toronto.edu/~radford/ftp/pqR-guelph.pdf

https://stackoverflow.com/questions/17196261/understanding-the-differences-between-mclapply-and-parlapply-in-r
Link to comment
Sosyal ağlarda paylaş

Phoenixlin said:

senko said:

ben de python'da pandas ile single processing gidiyorum da, yakınlarda multiprocess'e çevirmem gerekicek, nası yapıcam bak benim de hemen hiç fikrim yok :)


Been there, done that:

https://www.ploggingdev.com/2017/01/multiprocessing-and-multithreading-in-python-3/

Çok atla deve değil. Hatta bi ara buna alıştığım için Java'da multithread kod yazamıyodum asdf


Kaçırdığım bir nokta ta olabilir de, baktığım kadarı ile sadece I/O parallelization sağlıyor bu.
Benim işler biraz daha cpu bound sanki, (high frequency stock exchange datası)
Link to comment
Sosyal ağlarda paylaş

senko said:

Phoenixlin said:

senko said:

ben de python'da pandas ile single processing gidiyorum da, yakınlarda multiprocess'e çevirmem gerekicek, nası yapıcam bak benim de hemen hiç fikrim yok :)


Been there, done that:

https://www.ploggingdev.com/2017/01/multiprocessing-and-multithreading-in-python-3/

Çok atla deve değil. Hatta bi ara buna alıştığım için Java'da multithread kod yazamıyodum asdf


Kaçırdığım bir nokta ta olabilir de, baktığım kadarı ile sadece I/O parallelization sağlıyor bu.
Benim işler biraz daha cpu bound sanki, (high frequency stock exchange datası)


bak bunun için yeni bi library çıktı pandas API'ıyla tamamen compatible olan;
https://rise.cs.berkeley.edu/blog/pandas-on-ray/

import'u pandas yerine ray diye değiştiriyorsun o kadar.
Link to comment
Sosyal ağlarda paylaş

  • 8 ay sonra ...
Geçen hafta pazartesi günü doktora tezini savundum. Bugün evrakları falan tamamlarken, şu işin foreach + doParallel'le mümkün olan çok basit bir çözümü aklıma geldi durduk yere. Koştur koştur ofise geldim, kodu güncellemem 15dk sürmedi. İlk compile ettiğimde bug'sız falan şak diye çalıştı. Bir de hali hazırda tek loop dahi uzun sürdüğü için inanılmaz verimli. Direk 4 kat hızlandı analiz süresi.

Elle 4 ayrı R instance'ı çalıştırıp amele gibi uğraştıydım şu işle. Neyse Ryzen 7'yi de çektim. Şimdi R düşünsün.
Link to comment
Sosyal ağlarda paylaş

Bu arada tez için 4-5 tane test yazdıydım R üzerinde. Tezden makale çıkartınca kodları da paylaşayım, yavaş yavaş bir portföy oluşturayım diyorum. Github'a falan mı yüklemek gerek? Runmycode falan da var ama hangisi iyidir?

Bir de mesela başka bir elemanın yazdığı ve kendi sitesinde public olarak mevcut bir fonksiyonu da (adamın geliştirdiği estimator) kullanıyor yazdığım 2 tane test, atıf yaparak kendi yüklediğim kodun içerisinde onları kullanmamda bir sakınca var mı? Bu işlerin telifi falan nasıl oluyor? Her şey nonprofit bu arada, akademik çalışma benimki de, öteki de.
Link to comment
Sosyal ağlarda paylaş

deadwoll said:

Bu arada tez için 4-5 tane test yazdıydım R üzerinde. Tezden makale çıkartınca kodları da paylaşayım, yavaş yavaş bir portföy oluşturayım diyorum. Github'a falan mı yüklemek gerek? Runmycode falan da var ama hangisi iyidir?

Bir de mesela başka bir elemanın yazdığı ve kendi sitesinde public olarak mevcut bir fonksiyonu da (adamın geliştirdiği estimator) kullanıyor yazdığım 2 tane test, atıf yaparak kendi yüklediğim kodun içerisinde onları kullanmamda bir sakınca var mı? Bu işlerin telifi falan nasıl oluyor? Her şey nonprofit bu arada, akademik çalışma benimki de, öteki de.


adamlarin kodu publish ederken koydugu lisansa bagli, tezin bir yerinde yoksa repo'da, kodda belirtmislerdir lisansi. en kotu sorabilirsin, en azindan senden cikmis olur sorumluluk.
Link to comment
Sosyal ağlarda paylaş

  • 4 ay sonra ...

Başka konu açmıyım dedim.

Ben bu multi-core olayına bayağı kafayı taktım da, iteratif tahmincileri multi-core olarak kullanmak mümkün mü? Ayrık işlemleri yaptırıyorum artık performanslı olarak ama iteratif yöntemlerle çözülen problemleri (maximum likelihood tahmincileriyle mesela) nasıl ele alabilirim?

 

Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...