Что вы хотите сделать, это определить количество ядер, которое у вас есть.
nCores <- detectCores() - 1
В большинстве случаев люди добавляют минус 1, чтобы убедиться, что у вас осталось одно ядро, чтобы делать другие вещи.
cluster <- makeCluster(nCores)
Это установит количество кластеров, на которых вы хотите, чтобы ваш код работал. Существует несколько параллельных методов (doParallel, parApply, parLapply, foreach, ..).
Основываясь на выбранном вами параллельном методе, он будет запускаться на одном созданном вами кластере.
Небольшой пример, который я использовал в моем коде
no_cores <- detectCores() - 1
cluster <- makeCluster(no_cores)
result <- parLapply(cluster, docs$text, preProcessChunk)
stopCluster(cluster)
Я также вижу, что вы используете носок. Не уверен, что "type = SOCK" работает.
Я всегда использую "type = PSOCK". FORK также существует, но это зависит от того, какую ОС вы используете.
FORK: "to divide in branches and go separate ways"
Systems: Unix/Mac (not Windows)
Environment: Link all
PSOCK: Parallel Socket Cluster
Systems: All (including Windows)
Environment: Empty