From 5d8a736d8c6d12daf0e7f945e88776706fac1d3e Mon Sep 17 00:00:00 2001 From: Jiaming Yuan Date: Wed, 9 Nov 2022 02:03:30 +0800 Subject: [PATCH] [R] Fix CRAN test notes. (#8428) - Limit the number of used CPU cores in examples. - Add a note for the constraint. - Bring back the cleanup script. --- .github/workflows/r_tests.yml | 6 ++++++ R-package/DESCRIPTION | 2 +- R-package/R/callbacks.R | 12 +++++++----- R-package/R/xgb.DMatrix.R | 14 +++++++------- R-package/R/xgb.DMatrix.save.R | 2 +- R-package/R/xgb.create.features.R | 14 +++++++++----- R-package/R/xgb.cv.R | 6 +++--- R-package/R/xgb.train.R | 4 ++-- R-package/man/cb.gblinear.history.Rd | 12 +++++++----- R-package/man/dim.xgb.DMatrix.Rd | 2 +- R-package/man/dimnames.xgb.DMatrix.Rd | 2 +- R-package/man/getinfo.Rd | 2 +- R-package/man/print.xgb.DMatrix.Rd | 2 +- R-package/man/setinfo.Rd | 2 +- R-package/man/slice.xgb.DMatrix.Rd | 2 +- R-package/man/xgb.DMatrix.Rd | 2 +- R-package/man/xgb.DMatrix.save.Rd | 2 +- R-package/man/xgb.create.features.Rd | 12 ++++++++---- R-package/man/xgb.cv.Rd | 4 ++-- R-package/man/xgb.train.Rd | 4 ++-- doc/contrib/release.rst | 20 +++++++++++++++++--- doc/tutorials/dask.rst | 2 +- 22 files changed, 81 insertions(+), 49 deletions(-) diff --git a/.github/workflows/r_tests.yml b/.github/workflows/r_tests.yml index 6bc95941d250..6174ea92046d 100644 --- a/.github/workflows/r_tests.yml +++ b/.github/workflows/r_tests.yml @@ -5,6 +5,7 @@ on: [push, pull_request] env: R_PACKAGES: c('XML', 'data.table', 'ggplot2', 'DiagrammeR', 'Ckmeans.1d.dp', 'vcd', 'testthat', 'lintr', 'knitr', 'rmarkdown', 'e1071', 'cplm', 'devtools', 'float', 'titanic') GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + _R_CHECK_EXAMPLE_TIMING_CPU_TO_ELAPSED_THRESHOLD_: 2.5 permissions: contents: read # to fetch code (actions/checkout) @@ -68,6 +69,7 @@ jobs: - {os: windows-latest, r: 'release', compiler: 'mingw', build: 'cmake'} env: R_REMOTES_NO_ERRORS_FROM_WARNINGS: true + _R_CHECK_EXAMPLE_TIMING_CPU_TO_ELAPSED_THRESHOLD_: 2.5 RSPM: ${{ matrix.config.rspm }} steps: @@ -121,6 +123,10 @@ jobs: config: - {r: 'release'} + env: + _R_CHECK_EXAMPLE_TIMING_CPU_TO_ELAPSED_THRESHOLD_: 2.5 + MAKE: "make -j$(nproc)" + steps: - uses: actions/checkout@v2 with: diff --git a/R-package/DESCRIPTION b/R-package/DESCRIPTION index 6fd158a1c3aa..d4e7375c64bb 100644 --- a/R-package/DESCRIPTION +++ b/R-package/DESCRIPTION @@ -66,5 +66,5 @@ Imports: methods, data.table (>= 1.9.6), jsonlite (>= 1.0), -RoxygenNote: 7.1.1 +RoxygenNote: 7.2.1 SystemRequirements: GNU make, C++14 diff --git a/R-package/R/callbacks.R b/R-package/R/callbacks.R index d5c69f52d3a8..fa947346937d 100644 --- a/R-package/R/callbacks.R +++ b/R-package/R/callbacks.R @@ -544,9 +544,11 @@ cb.cv.predict <- function(save_models = FALSE) { #' #' @return #' Results are stored in the \code{coefs} element of the closure. -#' The \code{\link{xgb.gblinear.history}} convenience function provides an easy way to access it. +#' The \code{\link{xgb.gblinear.history}} convenience function provides an easy +#' way to access it. #' With \code{xgb.train}, it is either a dense of a sparse matrix. -#' While with \code{xgb.cv}, it is a list (an element per each fold) of such matrices. +#' While with \code{xgb.cv}, it is a list (an element per each fold) of such +#' matrices. #' #' @seealso #' \code{\link{callbacks}}, \code{\link{xgb.gblinear.history}}. @@ -558,7 +560,7 @@ cb.cv.predict <- function(save_models = FALSE) { #' # without considering the 2nd order interactions: #' x <- model.matrix(Species ~ .^2, iris)[,-1] #' colnames(x) -#' dtrain <- xgb.DMatrix(scale(x), label = 1*(iris$Species == "versicolor")) +#' dtrain <- xgb.DMatrix(scale(x), label = 1*(iris$Species == "versicolor"), nthread = 2) #' param <- list(booster = "gblinear", objective = "reg:logistic", eval_metric = "auc", #' lambda = 0.0003, alpha = 0.0003, nthread = 2) #' # For 'shotgun', which is a default linear updater, using high eta values may result in @@ -583,14 +585,14 @@ cb.cv.predict <- function(save_models = FALSE) { #' #' # For xgb.cv: #' bst <- xgb.cv(param, dtrain, nfold = 5, nrounds = 100, eta = 0.8, -#' callbacks = list(cb.gblinear.history())) +#' callbacks = list(cb.gblinear.history())) #' # coefficients in the CV fold #3 #' matplot(xgb.gblinear.history(bst)[[3]], type = 'l') #' #' #' #### Multiclass classification: #' # -#' dtrain <- xgb.DMatrix(scale(x), label = as.numeric(iris$Species) - 1) +#' dtrain <- xgb.DMatrix(scale(x), label = as.numeric(iris$Species) - 1, nthread = 2) #' param <- list(booster = "gblinear", objective = "multi:softprob", num_class = 3, #' lambda = 0.0003, alpha = 0.0003, nthread = 2) #' # For the default linear updater 'shotgun' it sometimes is helpful diff --git a/R-package/R/xgb.DMatrix.R b/R-package/R/xgb.DMatrix.R index 3aade2396d0f..b843d651833a 100644 --- a/R-package/R/xgb.DMatrix.R +++ b/R-package/R/xgb.DMatrix.R @@ -18,7 +18,7 @@ #' #' @examples #' data(agaricus.train, package='xgboost') -#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) +#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) #' xgb.DMatrix.save(dtrain, 'xgb.DMatrix.data') #' dtrain <- xgb.DMatrix('xgb.DMatrix.data') #' if (file.exists('xgb.DMatrix.data')) file.remove('xgb.DMatrix.data') @@ -110,7 +110,7 @@ xgb.get.DMatrix <- function(data, label = NULL, missing = NA, weight = NULL, nth #' @examples #' data(agaricus.train, package='xgboost') #' train <- agaricus.train -#' dtrain <- xgb.DMatrix(train$data, label=train$label) +#' dtrain <- xgb.DMatrix(train$data, label=train$label, nthread = 2) #' #' stopifnot(nrow(dtrain) == nrow(train$data)) #' stopifnot(ncol(dtrain) == ncol(train$data)) @@ -138,7 +138,7 @@ dim.xgb.DMatrix <- function(x) { #' @examples #' data(agaricus.train, package='xgboost') #' train <- agaricus.train -#' dtrain <- xgb.DMatrix(train$data, label=train$label) +#' dtrain <- xgb.DMatrix(train$data, label=train$label, nthread = 2) #' dimnames(dtrain) #' colnames(dtrain) #' colnames(dtrain) <- make.names(1:ncol(train$data)) @@ -193,7 +193,7 @@ dimnames.xgb.DMatrix <- function(x) { #' #' @examples #' data(agaricus.train, package='xgboost') -#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) +#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) #' #' labels <- getinfo(dtrain, 'label') #' setinfo(dtrain, 'label', 1-labels) @@ -249,7 +249,7 @@ getinfo.xgb.DMatrix <- function(object, name, ...) { #' #' @examples #' data(agaricus.train, package='xgboost') -#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) +#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) #' #' labels <- getinfo(dtrain, 'label') #' setinfo(dtrain, 'label', 1-labels) @@ -345,7 +345,7 @@ setinfo.xgb.DMatrix <- function(object, name, info, ...) { #' #' @examples #' data(agaricus.train, package='xgboost') -#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) +#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) #' #' dsub <- slice(dtrain, 1:42) #' labels1 <- getinfo(dsub, 'label') @@ -401,7 +401,7 @@ slice.xgb.DMatrix <- function(object, idxset, ...) { #' #' @examples #' data(agaricus.train, package='xgboost') -#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) +#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) #' #' dtrain #' print(dtrain, verbose=TRUE) diff --git a/R-package/R/xgb.DMatrix.save.R b/R-package/R/xgb.DMatrix.save.R index e11b793b7d4b..91edb32d0c94 100644 --- a/R-package/R/xgb.DMatrix.save.R +++ b/R-package/R/xgb.DMatrix.save.R @@ -7,7 +7,7 @@ #' #' @examples #' data(agaricus.train, package='xgboost') -#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) +#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) #' xgb.DMatrix.save(dtrain, 'xgb.DMatrix.data') #' dtrain <- xgb.DMatrix('xgb.DMatrix.data') #' if (file.exists('xgb.DMatrix.data')) file.remove('xgb.DMatrix.data') diff --git a/R-package/R/xgb.create.features.R b/R-package/R/xgb.create.features.R index f00ac9314ce8..98b03ea8a984 100644 --- a/R-package/R/xgb.create.features.R +++ b/R-package/R/xgb.create.features.R @@ -48,8 +48,8 @@ #' @examples #' data(agaricus.train, package='xgboost') #' data(agaricus.test, package='xgboost') -#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) -#' dtest <- with(agaricus.test, xgb.DMatrix(data, label = label)) +#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) +#' dtest <- with(agaricus.test, xgb.DMatrix(data, label = label, nthread = 2)) #' #' param <- list(max_depth=2, eta=1, silent=1, objective='binary:logistic') #' nrounds = 4 @@ -65,8 +65,12 @@ #' new.features.test <- xgb.create.features(model = bst, agaricus.test$data) #' #' # learning with new features -#' new.dtrain <- xgb.DMatrix(data = new.features.train, label = agaricus.train$label) -#' new.dtest <- xgb.DMatrix(data = new.features.test, label = agaricus.test$label) +#' new.dtrain <- xgb.DMatrix( +#' data = new.features.train, label = agaricus.train$label, nthread = 2 +#' ) +#' new.dtest <- xgb.DMatrix( +#' data = new.features.test, label = agaricus.test$label, nthread = 2 +#' ) #' watchlist <- list(train = new.dtrain) #' bst <- xgb.train(params = param, data = new.dtrain, nrounds = nrounds, nthread = 2) #' @@ -79,7 +83,7 @@ #' accuracy.after, "!\n")) #' #' @export -xgb.create.features <- function(model, data, ...){ +xgb.create.features <- function(model, data, ...) { check.deprecation(...) pred_with_leaf <- predict(model, data, predleaf = TRUE) cols <- lapply(as.data.frame(pred_with_leaf), factor) diff --git a/R-package/R/xgb.cv.R b/R-package/R/xgb.cv.R index c07d452c1522..a7c009db6329 100644 --- a/R-package/R/xgb.cv.R +++ b/R-package/R/xgb.cv.R @@ -110,9 +110,9 @@ #' #' @examples #' data(agaricus.train, package='xgboost') -#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) +#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) #' cv <- xgb.cv(data = dtrain, nrounds = 3, nthread = 2, nfold = 5, metrics = list("rmse","auc"), -#' max_depth = 3, eta = 1, objective = "binary:logistic") +#' max_depth = 3, eta = 1, objective = "binary:logistic") #' print(cv) #' print(cv, verbose=TRUE) #' @@ -192,7 +192,7 @@ xgb.cv <- function(params=list(), data, nrounds, nfold, label = NULL, missing = # create the booster-folds # train_folds - dall <- xgb.get.DMatrix(data, label, missing) + dall <- xgb.get.DMatrix(data, label, missing, nthread = params$nthread) bst_folds <- lapply(seq_along(folds), function(k) { dtest <- slice(dall, folds[[k]]) # code originally contributed by @RolandASc on stackoverflow diff --git a/R-package/R/xgb.train.R b/R-package/R/xgb.train.R index 580449791a62..f23700511684 100644 --- a/R-package/R/xgb.train.R +++ b/R-package/R/xgb.train.R @@ -192,8 +192,8 @@ #' data(agaricus.train, package='xgboost') #' data(agaricus.test, package='xgboost') #' -#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) -#' dtest <- with(agaricus.test, xgb.DMatrix(data, label = label)) +#' dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) +#' dtest <- with(agaricus.test, xgb.DMatrix(data, label = label, nthread = 2)) #' watchlist <- list(train = dtrain, eval = dtest) #' #' ## A simple xgb.train example: diff --git a/R-package/man/cb.gblinear.history.Rd b/R-package/man/cb.gblinear.history.Rd index b111bd41dda1..fbbb56dbefc6 100644 --- a/R-package/man/cb.gblinear.history.Rd +++ b/R-package/man/cb.gblinear.history.Rd @@ -15,9 +15,11 @@ selected per iteration.} } \value{ Results are stored in the \code{coefs} element of the closure. -The \code{\link{xgb.gblinear.history}} convenience function provides an easy way to access it. +The \code{\link{xgb.gblinear.history}} convenience function provides an easy +way to access it. With \code{xgb.train}, it is either a dense of a sparse matrix. -While with \code{xgb.cv}, it is a list (an element per each fold) of such matrices. +While with \code{xgb.cv}, it is a list (an element per each fold) of such +matrices. } \description{ Callback closure for collecting the model coefficients history of a gblinear booster @@ -38,7 +40,7 @@ Callback function expects the following values to be set in its calling frame: # without considering the 2nd order interactions: x <- model.matrix(Species ~ .^2, iris)[,-1] colnames(x) -dtrain <- xgb.DMatrix(scale(x), label = 1*(iris$Species == "versicolor")) +dtrain <- xgb.DMatrix(scale(x), label = 1*(iris$Species == "versicolor"), nthread = 2) param <- list(booster = "gblinear", objective = "reg:logistic", eval_metric = "auc", lambda = 0.0003, alpha = 0.0003, nthread = 2) # For 'shotgun', which is a default linear updater, using high eta values may result in @@ -63,14 +65,14 @@ matplot(xgb.gblinear.history(bst), type = 'l') # For xgb.cv: bst <- xgb.cv(param, dtrain, nfold = 5, nrounds = 100, eta = 0.8, - callbacks = list(cb.gblinear.history())) + callbacks = list(cb.gblinear.history())) # coefficients in the CV fold #3 matplot(xgb.gblinear.history(bst)[[3]], type = 'l') #### Multiclass classification: # -dtrain <- xgb.DMatrix(scale(x), label = as.numeric(iris$Species) - 1) +dtrain <- xgb.DMatrix(scale(x), label = as.numeric(iris$Species) - 1, nthread = 2) param <- list(booster = "gblinear", objective = "multi:softprob", num_class = 3, lambda = 0.0003, alpha = 0.0003, nthread = 2) # For the default linear updater 'shotgun' it sometimes is helpful diff --git a/R-package/man/dim.xgb.DMatrix.Rd b/R-package/man/dim.xgb.DMatrix.Rd index 76c53dec2614..c9ea79177da3 100644 --- a/R-package/man/dim.xgb.DMatrix.Rd +++ b/R-package/man/dim.xgb.DMatrix.Rd @@ -19,7 +19,7 @@ be directly used with an \code{xgb.DMatrix} object. \examples{ data(agaricus.train, package='xgboost') train <- agaricus.train -dtrain <- xgb.DMatrix(train$data, label=train$label) +dtrain <- xgb.DMatrix(train$data, label=train$label, nthread = 2) stopifnot(nrow(dtrain) == nrow(train$data)) stopifnot(ncol(dtrain) == ncol(train$data)) diff --git a/R-package/man/dimnames.xgb.DMatrix.Rd b/R-package/man/dimnames.xgb.DMatrix.Rd index 032cb95a55dd..9f2a07d8d592 100644 --- a/R-package/man/dimnames.xgb.DMatrix.Rd +++ b/R-package/man/dimnames.xgb.DMatrix.Rd @@ -26,7 +26,7 @@ Since row names are irrelevant, it is recommended to use \code{colnames} directl \examples{ data(agaricus.train, package='xgboost') train <- agaricus.train -dtrain <- xgb.DMatrix(train$data, label=train$label) +dtrain <- xgb.DMatrix(train$data, label=train$label, nthread = 2) dimnames(dtrain) colnames(dtrain) colnames(dtrain) <- make.names(1:ncol(train$data)) diff --git a/R-package/man/getinfo.Rd b/R-package/man/getinfo.Rd index 246860bbd3f4..63222f3412c4 100644 --- a/R-package/man/getinfo.Rd +++ b/R-package/man/getinfo.Rd @@ -34,7 +34,7 @@ The \code{name} field can be one of the following: } \examples{ data(agaricus.train, package='xgboost') -dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) +dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) labels <- getinfo(dtrain, 'label') setinfo(dtrain, 'label', 1-labels) diff --git a/R-package/man/print.xgb.DMatrix.Rd b/R-package/man/print.xgb.DMatrix.Rd index f6cb2f62bea6..72c3d35e9043 100644 --- a/R-package/man/print.xgb.DMatrix.Rd +++ b/R-package/man/print.xgb.DMatrix.Rd @@ -19,7 +19,7 @@ Currently it displays dimensions and presence of info-fields and colnames. } \examples{ data(agaricus.train, package='xgboost') -dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) +dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) dtrain print(dtrain, verbose=TRUE) diff --git a/R-package/man/setinfo.Rd b/R-package/man/setinfo.Rd index 696a04c2ddea..c29fcfa7e976 100644 --- a/R-package/man/setinfo.Rd +++ b/R-package/man/setinfo.Rd @@ -33,7 +33,7 @@ The \code{name} field can be one of the following: } \examples{ data(agaricus.train, package='xgboost') -dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) +dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) labels <- getinfo(dtrain, 'label') setinfo(dtrain, 'label', 1-labels) diff --git a/R-package/man/slice.xgb.DMatrix.Rd b/R-package/man/slice.xgb.DMatrix.Rd index 5fffc203410a..cb65083e2aa2 100644 --- a/R-package/man/slice.xgb.DMatrix.Rd +++ b/R-package/man/slice.xgb.DMatrix.Rd @@ -28,7 +28,7 @@ original xgb.DMatrix object } \examples{ data(agaricus.train, package='xgboost') -dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) +dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) dsub <- slice(dtrain, 1:42) labels1 <- getinfo(dsub, 'label') diff --git a/R-package/man/xgb.DMatrix.Rd b/R-package/man/xgb.DMatrix.Rd index 52a31cfd1435..742073faddc4 100644 --- a/R-package/man/xgb.DMatrix.Rd +++ b/R-package/man/xgb.DMatrix.Rd @@ -38,7 +38,7 @@ Supported input file formats are either a LIBSVM text file or a binary file that } \examples{ data(agaricus.train, package='xgboost') -dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) +dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) xgb.DMatrix.save(dtrain, 'xgb.DMatrix.data') dtrain <- xgb.DMatrix('xgb.DMatrix.data') if (file.exists('xgb.DMatrix.data')) file.remove('xgb.DMatrix.data') diff --git a/R-package/man/xgb.DMatrix.save.Rd b/R-package/man/xgb.DMatrix.save.Rd index 63e6930a874b..40151605954f 100644 --- a/R-package/man/xgb.DMatrix.save.Rd +++ b/R-package/man/xgb.DMatrix.save.Rd @@ -16,7 +16,7 @@ Save xgb.DMatrix object to binary file } \examples{ data(agaricus.train, package='xgboost') -dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) +dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) xgb.DMatrix.save(dtrain, 'xgb.DMatrix.data') dtrain <- xgb.DMatrix('xgb.DMatrix.data') if (file.exists('xgb.DMatrix.data')) file.remove('xgb.DMatrix.data') diff --git a/R-package/man/xgb.create.features.Rd b/R-package/man/xgb.create.features.Rd index 52ac052cb71d..64d4af158ef3 100644 --- a/R-package/man/xgb.create.features.Rd +++ b/R-package/man/xgb.create.features.Rd @@ -59,8 +59,8 @@ a rule on certain features." \examples{ data(agaricus.train, package='xgboost') data(agaricus.test, package='xgboost') -dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) -dtest <- with(agaricus.test, xgb.DMatrix(data, label = label)) +dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) +dtest <- with(agaricus.test, xgb.DMatrix(data, label = label, nthread = 2)) param <- list(max_depth=2, eta=1, silent=1, objective='binary:logistic') nrounds = 4 @@ -76,8 +76,12 @@ new.features.train <- xgb.create.features(model = bst, agaricus.train$data) new.features.test <- xgb.create.features(model = bst, agaricus.test$data) # learning with new features -new.dtrain <- xgb.DMatrix(data = new.features.train, label = agaricus.train$label) -new.dtest <- xgb.DMatrix(data = new.features.test, label = agaricus.test$label) +new.dtrain <- xgb.DMatrix( + data = new.features.train, label = agaricus.train$label, nthread = 2 +) +new.dtest <- xgb.DMatrix( + data = new.features.test, label = agaricus.test$label, nthread = 2 +) watchlist <- list(train = new.dtrain) bst <- xgb.train(params = param, data = new.dtrain, nrounds = nrounds, nthread = 2) diff --git a/R-package/man/xgb.cv.Rd b/R-package/man/xgb.cv.Rd index 09f5091bd84f..8a962423de5e 100644 --- a/R-package/man/xgb.cv.Rd +++ b/R-package/man/xgb.cv.Rd @@ -158,9 +158,9 @@ Adapted from \url{https://en.wikipedia.org/wiki/Cross-validation_\%28statistics\ } \examples{ data(agaricus.train, package='xgboost') -dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) +dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) cv <- xgb.cv(data = dtrain, nrounds = 3, nthread = 2, nfold = 5, metrics = list("rmse","auc"), - max_depth = 3, eta = 1, objective = "binary:logistic") + max_depth = 3, eta = 1, objective = "binary:logistic") print(cv) print(cv, verbose=TRUE) diff --git a/R-package/man/xgb.train.Rd b/R-package/man/xgb.train.Rd index 5313bb15eea4..b2c9f9edc6d4 100644 --- a/R-package/man/xgb.train.Rd +++ b/R-package/man/xgb.train.Rd @@ -241,8 +241,8 @@ The following callbacks are automatically created when certain parameters are se data(agaricus.train, package='xgboost') data(agaricus.test, package='xgboost') -dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label)) -dtest <- with(agaricus.test, xgb.DMatrix(data, label = label)) +dtrain <- with(agaricus.train, xgb.DMatrix(data, label = label, nthread = 2)) +dtest <- with(agaricus.test, xgb.DMatrix(data, label = label, nthread = 2)) watchlist <- list(train = dtrain, eval = dtest) ## A simple xgb.train example: diff --git a/doc/contrib/release.rst b/doc/contrib/release.rst index c457c6560a64..86dda38fee8b 100644 --- a/doc/contrib/release.rst +++ b/doc/contrib/release.rst @@ -4,7 +4,7 @@ XGBoost Release Policy ======================= Versioning Policy ---------------------------- +----------------- Starting from XGBoost 1.0.0, each XGBoost release will be versioned as [MAJOR].[FEATURE].[MAINTENANCE] @@ -34,6 +34,20 @@ Making a Release + The CRAN package is maintained by `Tong He `_ and `Jiaming Yuan `__. - Before submitting a release, one should test the package on `R-hub `__ and `win-builder `__ first. Please note that the R-hub Windows instance doesn't have the exact same environment as the one hosted on win-builder. - + The Maven package is maintained by `Nan Zhu `_ and `Hyunsu Cho `_. + + +R CRAN Package +-------------- +Before submitting a release, one should test the package on `R-hub `__ and `win-builder `__ first. Please note that the R-hub Windows instance doesn't have the exact same environment as the one hosted on win-builder. + +According to the `CRAN policy `__: + + If running a package uses multiple threads/cores it must never use more than two simultaneously: the check farm is a shared resource and will typically be running many checks simultaneously. + +We need to check the number of CPUs used in examples. Export ``_R_CHECK_EXAMPLE_TIMING_CPU_TO_ELAPSED_THRESHOLD_=2.5`` before running ``R CMD check --as-cran`` `[1] <#references>`__ and make sure the machine you are using has enough CPU cores to reveal any potential policy violation. + +References +---------- + +[1] https://stat.ethz.ch/pipermail/r-package-devel/2022q4/008610.html diff --git a/doc/tutorials/dask.rst b/doc/tutorials/dask.rst index e7fd85066646..fdc4dd20b11a 100644 --- a/doc/tutorials/dask.rst +++ b/doc/tutorials/dask.rst @@ -564,7 +564,7 @@ Here are some pratices on reducing memory usage with dask and xgboost. nice summary. - When using GPU input, like dataframe loaded by ``dask_cudf``, you can try - :py:class:`xgboost.dask.DaskDeviceQuantileDMatrix` as a drop in replacement for ``DaskDMatrix`` + :py:class:`xgboost.dask.DaskQuantileDMatrix` as a drop in replacement for ``DaskDMatrix`` to reduce overall memory usage. See :ref:`sphx_glr_python_dask-examples_gpu_training.py` for an example.