По умолчанию (no.combine) foreach/% dopar% возвращает результаты в списке. Правильно ли порядок результатов в списке соответствует порядку цикла/итерации? Другими словами, порядок будет таким же, как при повторном повторе? ИЛИ заполняется ли список как параллельная задача? Просмотрев документацию, я вижу, что есть параметр .inorder, но, похоже, применяется только при использовании функции .combine.
Foreach% dopar% - гарантия на порядок результатов?
Ответ 1
Когда вызов заканчивается, результат foreach
будет в том же порядке, что и для "нормального" цикла. Тем не менее, нет гарантии для порядка, в котором они попадают ": в теории (и при параллелизации, также на практике) первый элемент может быть заполнен позже второго.
Таким образом, у вас нет гарантии на порядок выполнения (например, индикаторы выполнения или ведение журнала могут быть вымощены буревестником), но вы можете быть уверены, что результаты будут в том порядке, в котором вы их ожидаете.