У меня очень большой набор данных (17 000 объектов в 360 выборках), для которого мне нужно вычислить некоторые индексы разнообразия.Это занимает очень много времени (3-4 дня на один образец), поэтому я хочу идти параллельно.У меня есть около 50 доступных процессоров, поэтому каждый процессор должен делать около 7 выборок (столбцов) последовательно.
Я могу выполнить это:
df <- data.frame(matrix(sample.int(1000, 2000*360, TRUE), 2000, 360))
dflist <- as.list(df)
library(parallel)
cl <- makeCluster(detectCores()-1)
clusterExport(cl, "dflist")
results <- parLapply(cl, df.list, function(x) range(x)) #range as a wild card
, и это даст желаемый результат, но яНе знаю, действительно ли это работает, как я думаю, что это работает.Итак, мой вопрос: позволяет ли эта команда каждому процессу подобрать следующий свободный объект в dflist
после завершения текущей задачи?Или мне нужно назначить определенный набор объектов в dflist
каждому процессу?