için bir işlev oluşturma Paralel olarak yapmak istediğim bir işlem var, ancak bazı strange error nedeniyle başarısız oldum. Şimdi, ana CPU'daki arızalı görevi birleştirmeyi ve hesaplamayı düşünüyorum. Ancak, .combin için böyle bir işlevin nasıl yazılacağını bilmiyorum.Foreach
Nasıl yazılmalıdır?
Bunları nasıl yazacağımı biliyorum, örneğin this yanıtı bir örnek sağlar, ancak başarısız olan görevlerle nasıl başa çıkılacağını sağlamaz.
Ancakforeach(i=1:100, .combine = function(x, y){tryCatch(?)} %dopar% {
long_process_which_fails_randomly(i)
}
, ben .combine fonksiyonunda bu görevin girişini kullanmak nasıl (bu yapılabilir ise):
ben böyle bir şey yapsın? Veya hesaplamak için bir bayrak veya liste döndürmek için %dopar%
'un içine girmem gerekir mi?
Cevabınız için teşekkürler! Tüm görev hesaplanana kadar neden paralel döngüyü tekrarlamaya başladığınızı açıklar mısınız? Bu şekilde daha kolay/hızlı olacağını düşünüyor musunuz, çünkü hata her seferinde farklı yinelemelerde gerçekleşir? – Llopis
@Llopis Her şey kendi özel probleminize bağlıdır. Hata ana sayfada gerçekleşemezse, yaklaşımınız muhtemelen daha iyidir. Usta üzerinde olması muhtemelse o zaman işçileri de kullanabilirsiniz çünkü bu daha hızlı olacaktır. Hataya dayanıklı programların yazılması zor olabilir, bu yüzden bazı farklı yaklaşımları düşünmek yararlı olacaktır. –
Hatanın kaynağını anlamıyorum gibi, tahmin etmek zor, ancak alternatifler için teşekkürler – Llopis