ncores = ifelse(is.integer(ncores), ncores, parallel::detectCores())
cl = parallel::makeCluster(ncores)
parallel::clusterExport(cl=cl, varlist=c("X", "Y", "K", "p"), envir=environment())
ncores = ifelse(is.integer(ncores), ncores, parallel::detectCores())
cl = parallel::makeCluster(ncores)
parallel::clusterExport(cl=cl, varlist=c("X", "Y", "K", "p"), envir=environment())