2011-07-29 30 views
7

R'de paralel işlemeyle ilgili bir soru gördüğümde, foreach işlevini kullanır. for döngüler çok R-benzeri olmadığından, apply'un paralel bir sürümü var mı ve eğer öyleyse neden daha popüler değil?R paralel uzantıları, 'apply' metaforunu kırıyor mu?

+0

Benim durumumda, "foreach" temyizinde, birden fazla değişkeni işleve aktarmamı, sonuçları nasıl birleştireceğini seçmem ve "apply" eşdeğerlerinden daha okunabilir olmama izin vermesidir. Gerçi hız açısından nasıl karşılaştırdıklarını bilmiyorum. – Backlin

+0

@Backlin: Fakat aynı eleştiriler “for” ve “apply” (paralel olmayan versiyonlar) ile yapılabiliyordu ve insanlar başvuru aileleri için coşkulu bir şekilde tartışıyorlar. O kadar hızlı bir şey gibi bir stil bir şey .... –

cevap

9

çok çekirdekli içinde

  • mclapply()
  • Kan numuneleri yanı sıra papply olarak adanmış paketler halinde

  • mpi.apply() (karda

    • parLapply() ile başlayan *apply sayısız paralel versiyonları vardır muhtemelen artık devam etmiyor).

  • +0

    Kimse onlar hakkında herhangi bir soru sormazsa kullanmak o kadar kolay mı? :-) Belki de sadece son birkaç hafta oldu ama oldukça fazla foreach soruları ve bunların hiçbiri yoktu. Bu üç adet SO verimi için arama sadece mclapply() için sonuç verir ve o kadar çok değil. –

    +0

    Örneğin bir anket kağıdı ile başlayabilirsiniz [bu, JSS'de] (http://www.jstatsoft.org/v31/i01/paper). –

    +0

    Bu kullanışlı bir kağıttır. –

    1

    @Dirk doğrudur. plyr paketinin artık paralel bir arka uç desteği olduğunu ekledim.

    plyr paketi için, paralel bir arka uçta bırakmanın herhangi bir düşünceyi almadığı için çok az değinildiği söylenebilir: sadece bir bayrak.

    +0

    Sanırım işe yaramıyor çünkü hiç bahsetmiyor. Neden başvurma ile aynı şekilde çalışmıyor? Nihayetinde bu doğru metafor gibi gözüküyor: kütüphanelerin paralelleşmeyi ele almasına izin verin ve tüm kullanıcının yapması gereken, paralel çalışmasını isteyip istemediğine karar vermektir .... –

    +0

    Pragmatik olarak, bu işlevin bir kısmı oldukça yeni ve insanlar sadece benimsemeye başlıyor. – Iterator

    +0

    Evet ama foreach en yenisi gibi görünüyor ve tüm dikkatini çeken ... –