Предположим, у нас есть:
full_data
как фрейм данных с измерениями: 1000x110
, inputs_indexes
как вектор значений: 1:100
, labels_indexes
как вектор значений: 101:110
, ext_obj = array(NA, c(100, 100, 10))
, определенный в файле непосредственно перед использованием метода parSapply()
.
Я бы хотел изменить его параллельно, поэтому я готовлю среду следующим образом:
socket_cluster = makeCluster(detectCores() - 1)
clusterEvalQ(socket_cluster, require(infotheo))
clusterExport(socket_cluster, c("full_data", "labels_indexes", "ext_obj"))
Невозможно изменить ext_obj
при выполнении следующего кода:
sapply(labels_indexes, function(label)
{
parSapply(socket_cluster, inputs_indexes, function(candidate)
{
sapply(1:candidate, function(taken)
{
ext_obj[candidate, taken, label - 100] <<- interinformation(data.frame(full_data[, candidate], full_data[, taken], full_data[, label]))
})
})
})
Есть ли способ сделать параллельные вычисления для одного объекта?