remoteCalcChol {bigGP} | R Documentation |
Calculate Distributed Cholesky Decomposition
Description
remoteCalcChol
calculates a distributed Cholesky decomposition
from a distributed positive definite matrix. The Cholesky factor and
the original matrix can both be contained within environments and
ReferenceClass objects as well as the global environment on the slave processes.
Usage
remoteCalcChol(matName, cholName, matPos = '.GlobalEnv', cholPos = '.GlobalEnv', n, h = 1)
Arguments
matName |
name of the input (positive definite) matrix, given as a character string, giving the name of the object on the slave processes. |
cholName |
an name, given as a character string, giving the name to be used for the Cholesky factor matrix on the slave processes. |
matPos |
where to look for the input matrix, given as a character string (unlike
|
cholPos |
where to do the assignment of the Cholesky factor matrix, given as a character string (unlike
|
n |
a positive integer, the number of rows and columns of the input matrix. |
h |
a positive integer, the block replication factor, |
Details
Computes the distributed Cholesky decomposition using a blocked
algorithm similar to that in ScaLapack. When h
is 1, the number
of blocks, representing the
lower triangle of the original matrix and of the Cholesky factor, is
equal to the number of processes. For larger values of h
, there
are multiple blocks assigned to each process.
References
Paciorek, C.J., B. Lipshitz, W. Zhuo, Prabhat, C.G. Kaufman, and R.C. Thomas. 2015. Parallelizing Gaussian Process Calculations in R. Journal of Statistical Software, 63(10), 1-23. doi:10.18637/jss.v063.i10.
Paciorek, C.J., B. Lipshitz, W. Zhuo, Prabhat, C.G. Kaufman, and R.C. Thomas. 2013. Parallelizing Gaussian Process Calculations in R. arXiv:1305.4886. https://arxiv.org/abs/1305.4886.
See Also
Examples
## Not run:
if(require(fields)) {
SN2011fe <- SN2011fe_subset
SN2011fe_newdata <- SN2011fe_newdata_subset
SN2011fe_mle <- SN2011fe_mle_subset
nProc <- 3
n <- nrow(SN2011fe)
m <- nrow(SN2011fe_newdata)
nu <- 2
inputs <- c(as.list(SN2011fe), as.list(SN2011fe_newdata), nu = nu)
prob <- krigeProblem$new("prob", numProcesses = nProc, n = n, m = m,
predMeanFunction = SN2011fe_predmeanfunc, crossCovFunction = SN2011fe_crosscovfunc,
predCovFunction = SN2011fe_predcovfunc, meanFunction = SN2011fe_meanfunc,
covFunction = SN2011fe_covfunc, inputs = inputs, params = SN2011fe_mle$par,
data = SN2011fe$flux, packages = c("fields"))
remoteCalcChol(matName = 'C', cholName = 'L', matPos = 'prob',
cholPos = 'prob', n = n, h = prob$h_n)
L <- collectTriangularMatrix('L', objPos = 'prob', n = n, h = prob$h_n)
}
## End(Not run)