usando parLapply paralela: incapaz de acessar variáveis ​​dentro do código paralelo

Eu recentemente tenho um computador com vários núcleos e estou aprendendo a usar a computação paralela. Eu sou bastante proficiente comlapply e foi ditoparLapply funciona de forma muito semelhante. Eu não estou operando corretamente embora. Parece que tenho que colocar explicitamente tudo dentro doparLapply para fazê-lo funcionar (isto é, funções a serem usadas, variáveis ​​etc.). Comlapply ele lê a partir do ambiente pai eparLapply não parece fazer isso. Então, no meu exemplo abaixo eu poderia fazer tudo funcionar colocando todas as informações dentroparLapply mas se eu usar isso dentro de uma função definida pelo usuário não posso colocar explicitamentetext.var dentro deparLapply.

library(parallel)
text.var <- rep("I like cake and ice cream so much!", 20)
ntv <- length(text.var)
gc.rate <- 10

pos <-  function(i) {
    paste(sapply(strsplit(tolower(i), " "), nchar), collapse=" | ")
}

lapply(seq_len(ntv), function(i) {
        x <- pos(text.var[i])
        if (i%%gc.rate==0) gc()
        return(x)
    }

)

#doesn't work
cl <- makeCluster(mc <- getOption("cl.cores", 4))
parLapply(cl, seq_len(ntv), function(i) {
        x <- pos(text.var[i])
        if (i%%gc.rate==0) gc()
        return(x)
    }

)

#does work but have to specify all the stuff inside parLapply
cl <- makeCluster(mc <- getOption("cl.cores", 4))
parLapply(cl, seq_len(ntv), function(i) {
        ######stuff I have to put inside parLapply##########
        text.var <- rep("I like cake and ice cream so much!", 20)
        ntv <- length(text.var)
        gc.rate <- 10
        pos <-  function(i) {
            paste(sapply(strsplit(tolower(i), " "), nchar), collapse=" | ")
        }
        ######stuff I have to put inside parLapply##########
        x <- pos(text.var[i])
        if (i%%gc.rate==0) gc()
        return(x)
    }
)

Como posso passartext.var, ntv, gc.rateepos paraparLapply sem explicitamente colocá-los dentro? (Eu estou supondo que você passá-los como uma lista de alguma forma)

PS windows 7 máquina, então eu preciso usarparLapply eu acho que

questionAnswers(3)

yourAnswerToTheQuestion