Learn R Programming

memuse (version 1.1)

howmany: howmany

Description

How many rows/columns of a matrix can be stored for a given memory size.

Usage

## S3 method for class 'memuse':
howmany(x, nrow, ncol, out.type="full", ..., 
               type="double", intsize=4)
  ## S3 method for class 'memuse':
howmany.par(x, nrow, ncol, out.type="full", cores=1, 
                 par="row", ..., type="double", intsize=4, 
                 ICTXT=0, bldim=c(4, 4))

Arguments

x
The size of a matrix stored as a memuse class object.
nrow, ncol
Number of (global) rows/columns of the matrix.
out.type
If the full dimensions or a reduced representation should be returned (see Details section below). Options are "full" and "approximate" (with partial matching).
cores
The number of cores/processors
par
Type of data distribution. Choices are "row", "column", and "dmat". The first is for row-contiguous (distribyted by row) distributions, such as the "GBD" format (see the pbdDEMO package vignette). Next, "column" is for the transpose, column-conti
...
Additional arguments.
type
"double" or "int"; the storage type of the data matrix. If you don't know the type, it is probably stored as a double, so the default value will suffice.
intsize
The size (in bytes) of an integer. Default is 4, but this is platform dependent.
ICTXT
BLACS context number; only used with howbig.par() with par="dmat".
bldim
Blocking factor for block-cyclically decomposed (dmat) data.

Value

  • howmany() returns a numeric pair, the dimensions of a matrix.

    howmany.par() returns a list (the global and local dimensions), each of which is a numeric pair.

Details

This function provides the maximum dimension of an unallocated, dense, in-core, numeric matrix of known byte size. For example, it will show the largest possible square matrix which is 16 GiB (46340x46340). If the both nrow and ncol are missing (blank inputs), then the largest square matrix will be returned. If one of nrow or ncol is supplied and the other is missing, then the non-supplied argument (nrow or ncol) will be determined according to the supplied one. If both arguments are supplied, an error is produced --- you probably meant to use howmany().

If out.type="approximate", then a reduced representation of the dimensions will be returned. For example, the reduced representation of the number 1234567890 would be "1.2b", since this number is basically 1.2 billion. Not super useful, but kind of cute, and it arguably enhances readability when fishing for a ballpark figure.

See Also

howbig

Examples

Run this code
x <- mu(1, "gib")

# largest square matrix that's 1 GiB
howmany(x)
# same, but ballpark figure
howmany(mu(1, "gib"), out.type="approx")

Run the code above in your browser using DataLab