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