foreach% dopar% - ¿garantía por orden de resultados?
Frecuentes
Visto 2,235 veces
18
De forma predeterminada (sin .combine), foreach/%dopar% devuelve los resultados en una lista. ¿Se garantiza que el orden de los resultados en la lista coincida con el orden del bucle/iteración? En otras palabras, ¿el orden será el mismo que cuando se itera secuencialmente? ¿O la lista se completa a medida que se completa una tarea paralela? Navegando por la documentación, veo que hay un parámetro .inorder, pero parece que solo se aplica cuando se usa una función .combine.
1 Respuestas
26
Cuando finaliza la llamada, el resultado de foreach
estará en el mismo orden que para un bucle 'normal'. Sin embargo, no hay garantía para el orden en que 'llegan allí': en teoría (y al paralelizar, también en la práctica), el primer elemento puede completarse más tarde que el segundo.
Por lo tanto, no tiene ninguna garantía sobre el orden de ejecución (por ejemplo, las barras de progreso o el registro pueden estar improvisados), pero puede estar seguro de que los resultados estarán en el orden que espera.
Respondido 29 ago 11, 16:08
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas r foreach or haz tu propia pregunta.
Nick- gracias! Aprecié la distinción entre orden de ejecución y orden de resultados - SFun28