The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Best strategy

For high number of randomization and number of weights, the multiprocessing strategy is faster.

But for low randomization numbers and number of weights, prefer sequential processing for better performances.


## increase the randomization_number to at least 1000 to have
## better results
## our analysis parameters:
tad_analysis_parameter <- list(
  weights = TAD::AB[, c(5:102)],
  weights_factor = TAD::AB[, c("Year", "Plot", "Treatment", "Bloc")],
  trait_data = log(TAD::trait[["SLA"]]),
  aggregation_factor_name = c("Year", "Bloc"),
  statistics_factor_name = c("Treatment"),
  regenerate_abundance_df = TRUE,
  regenerate_weighted_moments_df = TRUE,
  regenerate_stat_per_obs_df = TRUE,
  regenerate_stat_per_rand_df = TRUE,
  seed = 1312,
  significativity_threshold = c(0.05, 0.95)
)

## We will try different strategies, with different number of randomisations
## with a fixed number of weights (98)
strategies <- list(
  sequencial = future::sequential,
  multisession = future::multisession
)
results_string <- list()

## We run the TAD with 10 and then with 1000 randomisations, with
## multiprocessing and without multiprocessing to see the difference
for (randomization_number in c(10, 1000)) {

  tad_analysis_parameter$randomization_number <- randomization_number

  for (strat in names(strategies)) {

    ## We set the strategy
    future::plan(strategies[[strat]])

    time_before <- proc.time()[[1]]
    do.call(TAD::launch_analysis_tad, tad_analysis_parameter)
    ellapsed_time <- proc.time()[[1]] - time_before

    results_string[[length(results_string) + 1]] <- sprintf(
      "[%s rand - %12s] The TAD Analysis took %s seconds.",
      as.character(randomization_number),
      as.character(strat),
      as.character(ellapsed_time)
    )

  }
  ## Always reset the strategy to sequential after your processing
  future::plan(future::sequential)
}
#> Loading required package: foreach
#> Loading required package: future

cat(paste(results_string, collapse = "\n"), "\n")
#> [10 rand -   sequencial] The TAD Analysis took 4.574 seconds.
#> [10 rand - multisession] The TAD Analysis took 6.907 seconds.
#> [1000 rand -   sequencial] The TAD Analysis took 333.664 seconds.
#> [1000 rand - multisession] The TAD Analysis took 60.419 seconds.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.