Поскольку параллельные задания выполняются в одно и то же время, и поскольку случайное начальное число поступает из системного времени, параллельное выполнение четырех экземпляров временного файла обычно дает одинаковые результаты (если у вас 4 ядра, то есть.только два ядра, вы получите две пары идентичных имен временных файлов).
Лучше сначала сгенерировать имена временных файлов и передать их своей функции в качестве аргумента:
filenames <- tempfile( rep("file",4) )
mclapply( filenames, function(x){})
Если вы используете чужую функцию, в которой есть вызов временного файла, то добавление PID в имя временного файла путем изменения функции временного файла, как было предложено ранее, является, вероятно, самым простым планом:
tempfile <- function( pattern = "file", tmpdir = tempdir(), fileext = ""){
.Internal(tempfile(paste("pid", Sys.getpid(), pattern, sep=""), tmpdir, fileext))}
mclapply( 1:4, function(x) tempfile() )