Как указано в заголовке: в чем же разница между @parallel
и pmap
? Я не имею в виду очевидный макрос для цикла, а другой работает над функциями, я имею в виду, как точно отличается их реализация и как я должен использовать это знание для выбора между ними?
Причина, по которой я спрашиваю, заключается в том, что многие приложения, которые я пишу, могут использовать либо конструкцию: я мог бы написать цикл и вычислить что-то с помощью @parallel
, или обернуть то, что было бы в цикле, в функцию и вызвать pmap
на этом. Я слежу за советом по использованию @parallel
для вещей, которые быстро оцениваются, и pmap
для вызовов, где каждая задача занимает гораздо больше времени (как указано в документации), но я чувствую, что, если у меня есть лучшее понимание что я делаю, я бы мог сделать лучший выбор.
Например: @parallel
делить работу перед оценкой? Я заметил, что если я запускаю параллельный цикл, в котором каждый внутренний вызов занимает произвольное количество времени, @parallel
может занять много времени, потому что в конце у меня осталось очень мало процессов. pmap
на тех же микротестах, похоже, не имеет этого: pmap
перераспределение работы по мере необходимости?
Другие вопросы, подобные этому, проистекают из моего незнания того, как именно pmap
отличается от @parallel
.