У меня есть 4 различные функции, которые в настоящее время работают последовательно, но это отнимает много времени. Моя локальная система имеет 4 ядра. Как запустить эти 4 функции во всех 4 ядрах параллельно. Пример: функция 1 в ядре 1, функция 2 в ядре 2 и т. Д.
Примечание. Эти 4 функции являются независимыми.
Я попробовал приведенный ниже код из параллельной библиотеки, но не обнаружил существенной разницы во времени выполнения. Пожалуйста, помогите
library(parallel)
cl <- makeCluster(4)
clusterExport(cl, varlist=c("foo", "foo1", "foo2", "foo3"))
cores <- seq_along(cl)
clusterApply(cl[cores], cores, function(core) {
if (core == 1) {
foo(5, 4)
} else if (core == 2) {
foo1(5, 3)
} else if (core == 3) {
foo2(5, 4)
} else if (core == 4) {
foo3(5, 2)
}
})
stopCluster(cl)