Some problems are so large that it is not possible, or at least not convenient, to store all of the data in main memory during program execution. Consider the problem of solving a system of simultaneous linear equations. This amount of computation is large compared to the amount of input and output required, so this problem is computationally intensive. These routines are designed to be easy to use and highly efficient. Highly-efficient computational kernels perform at peak attainable speed on the hardware.
Virtual matrices are easy to create and use.
Detailed performance measurement capabilities are built in. Performance statistics can be printed automatically to give users complete information on software and hardware performance. Users can easily change certain tuning parameters to optimize the software for each specific problem and computing environment. You can think of a virtual matrix as a mathematical matrix, the elements of which are accessed in a certain way, using subroutine calls. In some ways, a virtual matrix is like a two-dimensional Fortran array.