¿Foreach% dopar%-garantía por orden de resultados?
(1)
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, ¿se completa la lista cuando se completa una tarea paralela? Al examinar la documentación, veo que hay un parámetro .inorder, pero parece que solo se aplica cuando se usa una función .combine.
Cuando finalice 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 el que "llegan": en teoría (y cuando se realiza una paralelización, también en la práctica), el primer elemento puede completarse más tarde que el segundo.
Por lo tanto, no tiene 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.