#' computeSynchrones
#'
-#' Compute the synchrones curves (sum of clusters elements) from a matrix of medoids,
+#' Compute the synchrones curves (sums of clusters elements) from a matrix of medoids,
#' using euclidian distance.
#'
-#' @param medoids matrix of medoids in columns (curves of same length as the series)
-#' @param getSeries Function to retrieve series (argument: 'indices', integer vector)
+#' @param medoids matrix of K medoids curves in columns
+#' @param getSeries Function to retrieve series (argument: 'indices', integer vector),
+#' as columns of a matrix
#' @param nb_curves How many series? (this is known, at this stage)
#' @inheritParams claws
#'
#'
#' @export
computeSynchrones <- function(medoids, getSeries, nb_curves,
- nb_series_per_chunk, ncores_clust=1,verbose=FALSE,parll=TRUE)
+ nb_series_per_chunk, ncores_clust=3, verbose=FALSE, parll=TRUE)
{
# Synchrones computation is embarassingly parallel: compute it by chunks of series
computeSynchronesChunk <- function(indices)
{
if (parll)
{
- require("bigmemory", quietly=TRUE)
- requireNamespace("synchronicity", quietly=TRUE)
require("epclust", quietly=TRUE)
+ requireNamespace("synchronicity", quietly=TRUE)
# The big.matrix objects need to be attached to be usable on the workers
synchrones <- bigmemory::attach.big.matrix(synchrones_desc)
medoids <- bigmemory::attach.big.matrix(medoids_desc)
medoids <- bigmemory::as.big.matrix(medoids)
medoids_desc <- bigmemory::describe(medoids)
# outfile=="" to see stderr/stdout on terminal
- cl <- parallel::makeCluster(ncores_clust, outfile="")
+ cl <-
+ if (verbose)
+ parallel::makeCluster(ncores_clust, outfile="")
+ else
+ parallel::makeCluster(ncores_clust)
parallel::clusterExport(cl, envir=environment(),
varlist=c("synchrones_desc","m_desc","medoids_desc","getSeries"))
}