Angesichts der Größe der Daten betreibe ich mit arbeite ich möchte die Verarbeitung parallelAusgabe mit Paket foreach R-Daten-Kombination, wenn parallel
zu tun, habe ich den Code wie unten halten einen Kern frei, so ganz einrichten Maschine nicht
library(DoMC)
library(foreach)
library(itertools)
num_cores <- round(detectCores()*1-1) # num_cores is 7 in this case
registerDoMC(num_cores)
test_prediction <-
data.frame(
foreach(d=isplitRows(test, chunks = num_cores),
.combine=c,
.packages=c("stats")) %dopar% {
predict(cfModel, newdata=d)
}
)
verwendet wird, das Problem, dass test_prediction zurückgegeben weniger Zeilen als Test hat, und ich kann nicht herausfinden, warum
die Zeilen in einigen Versuchen wieder zu mir legen nahe, dass die .combine
in der foreach
nicht Daten von einigen der Kerne zu sammeln, obwohl ich nicht sicher bin, wie diese Theorie
Gesamtzahl der Reihen 603.054
Attempt 1: rows returned > 516,903 - 6/7s of data returned
Attempt 2: rows returned > 344,602 - 4/7s of data returned
Attempt 3: rows returned > 430,753 - 5/7s of data returned
Dies geschieht nur, wenn parallel laufen, um zu bestätigen, wenn ich die Option statt dann die richtige Anzahl der Zeilen zurückgegeben wird - obwohl ich nicht sicher bin, wie diese Theorie weiter zu untersuchen?
Im Allgemeinen, jede Hilfe auf, wenn es einen besseren Ansatz gibt, das parallel zu laufen?
> sessionInfo()
R version 3.3.0 beta (2016-03-30 r70404)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.4 LTS
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=C LC_COLLATE=C LC_MONETARY=C LC_MESSAGES=C LC_PAPER=C LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=C LC_IDENTIFICATION=C
attached base packages:
[1] parallel stats4 grid stats graphics grDevices utils datasets methods base
other attached packages:
[1] miniCRAN_0.2.7 markdown_0.7.7 slackr_1.4.2 readr_0.2.2 readxl_0.1.1 testthat_1.0.2 R2HTML_2.3.2 itertools_0.1-3 XML_3.98-1.4
[10] rvest_0.3.2 xml2_1.0.0 devtools_1.12.0 doParallel_1.0.10 rjson_0.2.15 RCurl_1.95-4.8 bitops_1.0-6 bit64_0.9-5 bit_1.1-12
[19] qcc_2.6 optiRum_0.37.3 scales_0.4.0 doMC_1.3.4 iterators_1.0.8 foreach_1.4.3 pryr_0.1.2 party_1.0-25 strucchange_1.5-1
[28] sandwich_2.3-4 zoo_1.7-13 modeltools_0.2-21 mvtnorm_1.0-5 e1071_1.6-7 randomForest_4.6-12 caret_6.0-70 lattice_0.20-29 timeDate_3012.100
[37] Kmisc_0.5.0 reshape2_1.4.1 gridExtra_2.2.1 tidyr_0.5.1 dplyr_0.5.0 plyr_1.8.4 data.table_1.9.6 sendmailR_1.2-1 RPostgreSQL_0.4-1
[46] ggplot2_2.1.0 lubridate_1.5.6 stringr_1.0.0 sqldf_0.4-10 RSQLite_1.0.0 DBI_0.4-1 gsubfn_0.6-6 proto_0.3-10
loaded via a namespace (and not attached):
[1] nlme_3.1-128 pbkrtest_0.4-6 httr_1.2.1 tools_3.3.0 R6_2.1.2 lazyeval_0.2.0 mgcv_1.8-3 colorspace_1.2-6 nnet_7.3-8 withr_1.0.2
[11] compiler_3.3.0 chron_2.3-47 quantreg_5.26 SparseM_1.7 AUC_0.3.0 digest_0.6.9 minqa_1.2.4 base64enc_0.1-3 lme4_1.1-12 jsonlite_1.0
[21] car_2.1-2 magrittr_1.5 Matrix_1.2-6 Rcpp_0.12.6 munsell_0.4.3 stringi_1.1.1 multcomp_1.4-6 MASS_7.3-35 crayon_1.3.2 splines_3.3.0
[31] knitr_1.13 tcltk_3.3.0 codetools_0.2-9 nloptr_1.0.4 MatrixModels_0.4-1 gtable_0.2.0 assertthat_0.1 coin_1.1-2 class_7.3-11 survival_2.39-5
[41] tibble_1.1 memoise_1.0.0 TH.data_1.0-7
Das ist schwer ohne reproduzierbar Beispiel zu untersuchen, würde
Sitzungsinformationen angegeben sind (nicht?). – Roland
Fairer Punkt, ich hatte gehofft, dass es etwas offensichtliches mit der Annäherung war, die ich nahm. Ich werde versuchen, ein reproduzierbares Beispiel zu erstellen –