To keep NetSolve as general as possible, we needed to find a formal way of describing a problem. Such a description must be carefully chosen, since it will affect the ability to interface NetSolve with arbitrary software.
A problem is defined as a 3-tuple: < name, inputs, outputs >,
where
An object is itself described as follows: < object, data>,
where object can be 'MATRIX', 'VECTOR' or 'SCALAR' and data can be any of the standard FORTRAN data types. This description has proved to be sufficient to interface NetSolve with numerous software packages. The NetSolve administrator can then not only choose the best platform on which to install NetSolve, but also select the best packages available on the chosen platform.
The current installation of NetSolve at the University of Tennessee uses the BLAS [&make_named_href('', "node19.html#blas1","[9]")], [&make_named_href('', "node19.html#blas2","[10]")], [&make_named_href('', "node19.html#blas3","[11]")], LAPACK [&make_named_href('', "node19.html#lapack","[12]")], ItPack [&make_named_href('', "node19.html#itpack","[13]")], LINPACK [&make_named_href('', "node19.html#linpack","[14]")] and FitPack [&make_named_href('', "node19.html#fitpack","[15]")]. These packages are available on a large number of platforms and are freely distributed. The use of ScaLAPACK [&make_named_href('', "node19.html#scalapack","[16]")] on massively parallel processors would be a way to use the power of high-performance parallel machines via NetSolve.