Tezim, oldukça uzun süren çok fazla simülasyon çalışması yapmam gerekiyor. Bilgisayarımın 4 çekirdeği var, bu yüzden iki farklı çekirdeği kullanmasına izin vererek, Rstudio'da iki R-betiğini aynı anda çalıştırmanın mümkün olup olmadığını merak ediyorum. Eğer bu yapılabilirse, tüm bu senaryoları çalıştıran bilgisayarı gece bırakarak çok zaman kazandırabilirim. Sonuçlar aynı ortamda sona gerekmez varsayarsakAynı anda birden fazla R-betiği çalıştırın
cevap
, sen RStudio projeleri kullanarak bunu başarabilirsiniz: https://support.rstudio.com/hc/en-us/articles/200526207-Using-Projects
İlk iki ayrı proje oluşturun. İkisini de aynı anda açabilirsiniz, bu da iki işlemle sonuçlanacaktır. Daha sonra her bir senaryodaki her bir komut dosyasını açabilir ve her birini ayrı ayrı yürütebilirsiniz. Daha sonra çekirdek dağıtımını yönetmek için işletim sisteminizde. Aşağıdaki kodu
if(Sys.info()["sysname"]=="Windows"){
library(doParallel)
cl<-makeCluster(numberOfCores)
registerDoParallel(cl)
}else{
library(doMC)
registerDoMC(numberOfCores)
}
library(foreach)
someList<-list("file1","file2")
returnComputation <-
foreach(x=someList) %dopar%{
source(x)
}
if(Sys.info()["sysname"]=="Windows") stopCluster(cl)
Hala ihtiyacınız çıktı adapte olacaktır ile aynı oturumda (burada https://cran.r-project.org/web/packages/doMC/vignettes/gettingstartedMC.pdf açıklandığı gibi) Sen çok çekirdekli paralelliği elde edebilirsiniz
.
Ne yazık ki, bu Windows'da desteklenmiyor gibi görünüyor (belirtilen belgelere göre) – mrjoseph
Eğer RStudio'ya sağ tıklarsanız, RStudio'nun birkaç ayrı "oturumunu" açabilmeniz gerekir (Projeleri kullanıp kullanmadığınız veya kullanmamanız). Varsayılan olarak, bunlar her biri 1 çekirdek kullanır. İşte
nohup Rscript script.R &
"&: Arka planda çalışan
RCMD script.R
RScript script.R
: Eğer hatasız çalışır biliyorum birkaç komut dosyaları var Ancak, ben komut satırı aracılığıyla farklı parametrelere bu çalışan öneriyoruz "betiği arka planda çalıştırır (fg
ile htop
ile izlenebilir ve kill <pid>
veya pkill rsession
ile öldürülmüş olabilir) ve nohup
çıkışı bir dosyaya kaydeder ve terminal kapatılırsa çalışmaya devam eder.
bir komut argümanları iletme:
for ii in 1 2 3
do
nohup Rscript script.R $ii &
done
:
Rscript script.R 1 2 3
Bu çok bash bir döngü Bash döngü ile Rscript birden çok örneğini çalıştırabilir commandArgs()
çıktısı olarak R c(1, 2, 3)
geçecek
Paralel koşma (R içinde):
Genellikle, R komut dosyanızdaki belirli bir adımın hesaplamaları yavaşlattığını göreceksiniz, önerebilir miyim R kodunuzda paralel kodu çalıştırarak ayrı ayrı çalıştırmak yerine Bunun yerine kullanılması nedeniyle, Genel R. içinde paralel olarak döngüler çalıştırmak için snow package öneriyoruz:
cl <- makeCluster(n)
# n = number of cores (I'd recommend one less than machine capacity)
clusterExport(list=ls()) #export input data to all cores
output_list <- parLapply(cl, input_list, function(x) ...)
stopCluster() # close cluster when complete (particularly on shared machines)
bunu kullanın yerde normalde paralel olarak çalıştırmak için R bir lapply
fonksiyonunu kullanmak.
- 1. Mongoose Aynı anda birden fazla veri silme
- 2. HTML5'te aynı sesi aynı anda birden fazla oynatabilir miyim?
- 3. Neden Aynı anahtar kelimeyle birden fazla sütunu aynı anda güncelleyemiyorum?
- 4. Android uygulamasını aynı anda birden çok cihazda çalıştırın (Xamarin)
- 5. Aynı makineden birden fazla cassandra düğümünü (bir küme) çalıştırın?
- 6. Eclipse'den iki Java programını aynı anda çalıştırın.
- 7. Aynı anda scrapyd
- 8. Android Studio'da aynı anda çalışan birden fazla cihaz için Logcat?
- 9. Python'da aynı anda birden fazla pencere nasıl çalıştırırım?
- 10. Emacs'te birden fazla noktayı aynı anda nasıl düzenlerim?
- 11. Bir JVM'nin aynı anda birden fazla program çalıştırması mümkün mü?
- 12. Aynı anda birden fazla kısıtlama nasıl düşülür (Oracle, SQL)
- 13. Birden fazla liste kutusu aynı anda ilerler mi?
- 14. Albacore'u kullanarak aynı anda nasıl birden fazla proje oluştururum?
- 15. Ransack ile birden fazla modeli aynı anda arayın
- 16. Birden fazla iletki testi paketini aynı anda nasıl çalıştırırım?
- 17. Mongoose aynı anda birden fazla veritabanı isteğine izin veriyor mu?
- 18. Aynı anda birden fazla AJAX isteğim olabilir mi?
- 19. Android'de aynı anda birden fazla sensör verisi alın
- 20. Metni seçerek veya aynı anda birden fazla metin seçmeyi engelleyin
- 21. Aynı anda birden fazla yöntem çağırın veya arayın.
- 22. jBehave ile aynı anda birden fazla test nasıl yürütülür?
- 23. Aynı anda birden çok PayPal İşlemi
- 24. NodeJS - birden fazla nesne birden fazla dosya üzerinde aynı ad
- 25. Aynı anda işlevleri çağırmak için 2 döngüyü çalıştırın?
- 26. Aynı kaynaktan birden fazla ses kaynağını (MediaPlayer) aynı anda çalabilmemin bir yolu var mı?
- 27. MATLAB'da aynı anda birden çok değişken tanımlayın?
- 28. Aynı anda birden çok IMAP iletisi alma
- 29. Aynı anda birden çok SQLite veritabanını kullanma
- 30. Birden çok düğmeyi aynı anda nasıl yüklerim?
Bence böyle bir sorunun cevabı var [link] (http://stackoverflow.com/questions/10835122/multithreading-with-r/10835234), veya orada [link] (http://stackoverflow.com/ sorular/18377870/running-jobs-in-background-in-r) – Batanichek
Birden çok R oturumu kurabilir ve komut dosyalarınızı her oturum için çalıştırabilirsiniz. – Hav0k