foreach% dopar% - ¿garantía por orden de resultados?

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.

preguntado el 29 de agosto de 11 a las 11:08

1 Respuestas

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

Nick- gracias! Aprecié la distinción entre orden de ejecución y orden de resultados - SFun28

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.