## ----eval=FALSE--------------------------------------------------------------- # nap <- function(seconds) { # Sys.sleep(seconds) # } # # start <- Sys.time() # nap(1) # nap(2) # nap(3) # end <- Sys.time() # print(end - start) ## ----eval=FALSE--------------------------------------------------------------- # library(future) # library(civis) # # # Define a concurrent backend with enough processes so each function # # we want to run concurrently has its own process. Here we'll need at least 2. # plan("multiprocess", workers=10) # # # Load data # data(iris) # data(airquality) # airquality <- airquality[!is.na(airquality$Ozone),] # remove missing in dv # # # Create a future for each model, using the special %<-% assignment operator. # # These futures are created immediately, kicking off the models. # air_model %<-% civis_ml(airquality, "Ozone", "gradient_boosting_regressor") # iris_model %<-% civis_ml(iris, "Species", "sparse_logistic") # # # At this point, `air_model` has not finished training yet. That's okay, # # the program will just wait until `air_model` is done before printing it. # print("airquality R^2:") # print(air_model$metrics$metrics$r_squared) # print("iris ROC:") # print(iris_model$metrics$metrics$roc_auc) ## ----eval=FALSE--------------------------------------------------------------- # library(parallel) # library(doParallel) # library(foreach) # library(civis) # # # Register a local cluster with enough processes so each function # # we want to run concurrently has its own process. Here we'll # # need at least 3, with 1 for each model_type in model_types. # cluster <- makeCluster(10) # registerDoParallel(cluster) # # # Model types to build # model_types <- c("sparse_logistic", # "gradient_boosting_classifier", # "random_forest_classifier") # # # Load data # data(iris) # # # Listen for multiple models to complete concurrently # model_results <- foreach(model_type=iter(model_types), .packages='civis') %dopar% { # civis_ml(iris, "Species", model_type) # } # stopCluster(cluster) # print("ROC Results") # lapply(model_results, function(result) result$metrics$metrics$roc_auc) ## ----eval=FALSE--------------------------------------------------------------- # library(civis) # library(parallel) # # # Model types to build # model_types <- c("sparse_logistic", # "gradient_boosting_classifier", # "random_forest_classifier") # # # Load data # data(iris) # # # Loop over all models in parallel with a max of 10 processes # model_results <- mclapply(model_types, function(model_type) { # civis_ml(iris, "Species", model_type) # }, mc.cores=10) # # # Wait for all models simultaneously # print("ROC Results") # lapply(model_results, function(result) result$metrics$metrics$roc_auc)