Ben ikisini de kullanıyorum. Matlab'daki işlevleri ve algoritmaları sık sık prototiplerim çünkü belirtildiği gibi, saf bir matematiksel dile yakın bir şeyde bir algoritmayı ifade etmek daha kolaydır.
R'nin mükemmel kütüphaneleri var. Hala öğreniyorum, ama Matlab'ı toz içinde bırakmaya başlıyorum çünkü R'yi tanıdığınızda, oradaki fonksiyonları prototiplemek de oldukça kolay.
Ancak, algoritmaların bir üretim ortamında verimli bir şekilde çalışmasını istiyorsanız, C ++ gibi derlenmiş bir dile geçmek en iyisidir. C ++ 'ı hem Matlab'a hem de R'ye kaydırma deneyimim var (ve bu konuda excel), ancak R ile daha iyi bir deneyim yaşadım. Yasal Uyarı: Lisans öğrencisi olarak, dll'lerim için Matlab'ın son bir sürümünü kullanmadım, Neredeyse sadece Matlab 7.1'de (4 yaşında gibi) çalışıyorum. Belki de yeni sürümler daha iyi çalışır, ancak Matlab'ın arkasındaki bir C ++ dll'sinin Windows XP'nin mavi ekrana neden olduğu bir dizi sınırın dışında uygunsuz bir şekilde yürüdüğüm için kafamın üstündeki iki durumu düşünebilirim - çok zor bir sorun her hata yaptığınızda bilgisayarınız yeniden başlatılırsa hata ayıkla ...
Son olarak, R topluluğu Matlab topluluğundan daha hızlı ve daha fazla ivme kazanıyor gibi görünüyor. Dahası, ücretsiz olduğu için Godforsaken flexlm lisans yöneticisi ile de anlaşmazsınız.
Not: Hemen hemen tüm gelişimim MCMC algoritmalarında. C ++ 'da üretimde yaklaşık% 90'ı ggplot2 kullanarak R'de görselleştirme ile yapıyorum.
Paralel Yorumlar için Güncelleme:
Şu anda geliştirme süremin önemli bir kısmı MCMC rutinlerini paralelleştirmeye harcanıyor (bu benim doktora tezim). Matlab'ın paralel araç kutusunu ve Star P'nin çözümünü kullandım (sanırım şimdi Microsoft'a ait mi ?? - jeez başka bir tane gobbled ...) Paralel araç kutusunu bir yapılandırma kabusu olarak buldum - kullandığımda, her bir istemci düğümüne kök erişimi gerektiriyordu. Sanırım şu küçük "hatayı" düzelttiler, ama yine de bir karmaşa. * 'P çözümünün zarif olduğunu, ancak genellikle profilin zor olduğunu gördüm. Ben kullanmadıysanız ceket , ama iyi şeyler duydum. Ayrıca GPU hesaplamasını da destekleyen paralel araç kutusunun daha yeni sürümlerini kullanmadım.
R paralel paketlerle neredeyse hiç deneyimim yok.
Deneyimime göre, kod ayrıştırma, görev ayrıştırma ve bellek / kaynak ayırma için daha küçük bir ayrıntı düzeyine sahip olduğunuz C ++ düzeyinde gerçekleşmelidir. Programları yüksek düzeyde paralelleştirmeye çalışırsanız , kodunuz önemsiz bir şekilde ayrıştırılamazsa (aynı zamanda kukla paralellik olarak da bilinir) genellikle yalnızca minimum bir hızlanma elde edersiniz . Bununla birlikte, OpenMP kullanarak C ++ düzeyinde tek bir satır kullanarak makul hızlandırmalar elde edebilirsiniz :
#pragma omp parallel for
Daha karmaşık şemaların bir öğrenme eğrisi vardır, ancak gpgpu şeylerinin nereye gittiğini gerçekten seviyorum. JSM'den bu yıl, R'deki GPU gelişimi hakkında konuştuğum az sayıda insan, bunu söylemek gerekirse, sadece "derin uçtaki ayak parmakları" olduğunu söylüyor. Ancak belirtildiği gibi, yakın gelecekte değişmek için asgari deneyimim var.