Users' Guide to NetSolve V1.4: | ||
---|---|---|
Prev | Chapter 13. Downloading, Installing, and Testing the Agent and Server | Next |
It is possible to add new functionalities to a NetSolve computational server by specifying additional problem description files in the server configuration file. In fact, a number of PDFs have been written for a variety of serial and parallel software packages: ARPACK, Aztec, BLAS, ITPACK, LAPACK, MA28, PETSc, ScaLAPACK, and SuperLU. These PDFs are available in the $NETSOLVE_ROOT/problems/ directory. If a user has one of these software libraries compiled on the architecture to which he is installing NetSolve, he can easily add this functionality to his server in three steps.
During the configure phase of NetSolve, specify the configure option(s) for enabling the respective library. Refer to the section called Installation on Unix Systems for details. This step will automatically set the needed @LIB line(s) in the respective $NETSOLVE_ROOT/problems/ PDF file, as well as set the required variables in the $NETSOLVE_ROOT/conf/Makefile.$NETSOLVE_ARCH.inc file.
Uncomment the respective line in the keyword section @PROBLEMS: of the $NETSOLVE_ROOT/server_config file.
Recompile the server by typing make server in the $NETSOLVE_ROOT/ directory.
Note | |
---|---|
If you are enabling sparse_iterative_sovle or sparse_direct_solve, you will need to type make wrappers followed by make server. |
NetSolve's distributed memory services (e.g., ScaLAPACK, PETSc) are spawned using MPI (mpirun -machinefile MPImachines ...) and thus require an MPI machine file describing the parallel machine on which to run. The name of the file containing this list of homogeneous machines is called $NETSOLVE_ROOT/MPImachines and is referenced in the file $NETSOLVE_ROOT/server_config for configuring the server. Therefore, if you are enabling parallel services within a server, the user MUST edit this $NETSOLVE_ROOT/MPImachines file to list the specific machines to be used. The current implementation of NetSolve allows only one MPImachines file per server. This spawning file is tied to the server, and not to a specific service enabled. Thus, unfortunately, if you wish to enable parallel services on different clusters, then you must enable the software on different servers -- i.e., maintain a separate NetSolve source code tree for each server enablement so that each parallel service can have its own MPImachines file from which to spawn. A future release of NetSolve should identify a separate MPImachines file with each parallel service that can be enabled.
To enable LAPACK within NetSolve, one must perform the following steps:
During the configure phase of the NetSolve installation, type
UNIX> ./configure --with-lapacklib=LAPACK_LIB --with-blaslib=BLAS_LIB |
The user must then uncomment the respective line
#./problems/lapack |
And lastly, the user must recompile the server by typing make server in the $NETSOLVE_ROOT/ directory.
To enable ScaLAPACK within NetSolve, one must perform the following steps.
During the configure phase of the NetSolve installation, type
UNIX> ./configure --with-scalapacklib=SCALAPACK_LIB \ --with-blacslib=BLACS_LIB --with-blaslib=BLAS_LIB \ --with-mpidir=MPI_DIR |
The user must then uncomment the respective line
#./problems/scalapack |
And lastly, the user must recompile the server by typing make server in the $NETSOLVE_ROOT/ directory.
NetSolve offers a 'sparse_iterative_solve' service as a convenient interface to sparse iterative methods packages such as PETSc, Aztec, and ITPACK. If the user would like to enable PETSc, Aztec, or ITPACK within NetSolve, he must perform the following steps.
During the configure phase of the NetSolve installation, type
UNIX> ./configure --with-petsc=PETSC_DIR --with-aztec=AZTEC_DIR \ --with-azteclib=AZTEC_LIB --with-lapacklib=LAPACK_LIB \ --with-blaslib=BLAS_LIB --with-mpidir=MPI_DIR |
The user must then uncomment the respective line
#./problems/sparse_iterative_solve |
And second, the user must compile the server by typing make wrappers and make server in the $NETSOLVE_ROOT/ directory.
NetSolve offers a 'sparse_direct_solve' service as a convenient interface to sparse direct methods packages such as SuperLU and MA28. If the user would like to enable SuperLU or MA28 within NetSolve, he must perform the following steps.
During the configure phase of the NetSolve installation, type (for example, to enable SuperLU)
UNIX> ./configure --with-superlu=SUPERLU_DIR --with-superlulib=SUPERLU_LIB \ --with-lapacklib=LAPACK_LIB --with-blaslib=BLAS_LIB \ --with-mpidir=MPI_DIR |
The user must then uncomment the respective line
#./problems/sparse_direct_solve |
And lastly, the user must compile the server by typing make wrappers and make server in the $NETSOLVE_ROOT/ directory.