High-Performance Open-Source Archive
bigalgebra is designed to interoperate with the
bigmemory ecosystem. This vignette demonstrates how to
create in-memory and file-backed big.matrix objects,
interact with them via the package’s wrappers, and manage the underlying
resources safely.
big.matrix objectsIn-memory matrices behave much like ordinary R matrices but reside in shared memory, allowing multiple R sessions to access the same data.
X <- big.matrix(3, 3, type = "double", init = 0)
X[,] <- matrix(1:9, nrow = 3)
X[]
#> [,1] [,2] [,3]
#> [1,] 1 4 7
#> [2,] 2 5 8
#> [3,] 3 6 9Once created, the objects can be passed directly to Level 1 helpers:
File-backed matrices persist their contents on disk, making them suitable for data sets that exceed available RAM.
dir.create(tmp_fb <- tempfile())
Y <- filebacked.big.matrix(4, 2, type = "double",
backingpath = tmp_fb,
backingfile = "fb.bin",
descriptorfile = "fb.desc",
init = 0)
Y[,] <- matrix(runif(8), nrow = 4)
Y[]
#> [,1] [,2]
#> [1,] 0.83810103 0.9403402
#> [2,] 0.07914527 0.6366314
#> [3,] 0.08777354 0.6489197
#> [4,] 0.47269952 0.9071992These objects participate in higher-level operations without being loaded into memory.
Z <- filebacked.big.matrix(4, 2, type = "double",
backingpath = tmp_fb,
backingfile = "res.bin",
descriptorfile = "res.desc",
init = 0)
dvcal(ALPHA = 1.5, X = Y, BETA = 0, Y = Z)
Z[]
#> [,1] [,2]
#> [1,] 1.2571515 1.4105103
#> [2,] 0.1187179 0.9549470
#> [3,] 0.1316603 0.9733795
#> [4,] 0.7090493 1.3607988File-backed matrices allocate resources on disk. Deleting the backing and descriptor files once they are no longer needed helps keep the workspace tidy.
Need mirroring services?
Contact our team at info@vpspulse.com.
Mirror powered by VPSpulse
Infrastructure sponsored by VPSPulse & Secure Payments by ArionPay.