Users' Guide to NetSolve V2.0

Dorian Arnold

Sudesh Agrawal

Susan Blackford

Jack Dongarra

Christoph Fabianek

Tomo Hiroyasu

Eric Meek

Michelle Miller

Kiran Sagi

Keith Seymour

Zhiao Shi

Sathish Vadhiyar

Legal Restrictions

Allowed Usage:

Users may use NetSolve in any capacity they wish. We only ask that proper credit and citations be used when the NetSolve system is being leveraged in other software systems.

Redistribution:

Users are allowed to freely distribute the NetSolve system in unmodified form. At no time is a user to accept monetary or other compensation for redistributing parts or all of the NetSolve system.

Modification of Code:

Users are free to make whatever changes they wish to the NetSolve system to suit their personal needs. We mandate, however, that you clearly highlight which portions are of the original system and which are a result of the third-party modification.

Warranty Disclaimer:

USER ACKNOWLEDGES AND AGREES THAT: (A) NEITHER THE NetSolve TEAM NOR THE BOARD OF REGENTS OF THE UNIVERSITY OF TENNESSEE SYSTEM (REGENTS) MAKE ANY REPRESENTATIONS OR WARRANTIES WHATSOEVER ABOUT THE SUITABILITY OF NetSolve FOR ANY PURPOSE; (B) NetSolve IS PROVIDED ON AN "AS IS, WITH ALL DEFECTS" BASIS WITHOUT EXPRESS OR IMPLIED WARRANTIES, INCLUDING WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT; (C) NEITHER THE NetSolve TEAM NOR THE REGENTS SHALL BE LIABLE FOR ANY DAMAGE OR LOSS OF ANY KIND ARISING OUT OF OR RESULTING FROM USER'S POSSESSION OR USE OF NetSolve (INCLUDING DATA LOSS OR CORRUPTION), REGARDLESS OF WHETHER SUCH LIABILITY IS BASED IN TORT, CONTRACT, OR OTHERWISE; AND (D) NEITHER THE NetSolve TEAM NOR THE REGENTS HAVE AN OBLIGATION TO PROVIDE DEBUGGING, MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS EXCEPT WHERE EXPLICIT WRITTEN ARRANGEMENTS HAVE BEEN PRE-ARRANGED.

Damages Disclaimer:

USER ACKNOWLEDGES AND AGREES THAT IN NO EVENT WILL THE NetSolve TEAM OR THE REGENTS BE LIABLE TO USER FOR ANY SPECIAL, CONSEQUENTIAL, INDIRECT OR SIMILAR DAMAGES, INCLUDING ANY LOST PROFITS OR LOST DATA ARISING OUT OF THE USE OR INABILITY TO USE NetSolve EVEN IF THE NetSolve TEAM OR THE REGENTS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

Attribution Requirement:

User agrees that any reports, publications, or other disclosure of results obtained with NetSolve will attribute its use by an appropriate citation. The appropriate reference for NetSolve is "The NetSolve Software Program (NetSolve) was developed by the NetSolve Team at the Computer Science Department of the University of Tennessee, Knoxville. All rights, title, and interest in NetSolve are owned by the NetSolve Team."

Compliance with Applicable Laws:

User agrees to abide by copyright law and all other applicable laws of the United States including, but not limited to, export control laws.


Table of Contents
Preface
Who Should Read This Document
Organization of This Document
Document Conventions
Request for Comments
I. Introduction
1. A NetSolve Overview
An Introduction to Distributed Computing
What is NetSolve?
Who is the NetSolve User?
The Status of NetSolve
2. Related Projects and Systems
II. The User's Manual
3. Downloading, Installing, and Testing the Client
Installation on Unix Systems using ns_install
Installation on Unix Systems using ns_install
Installation on Unix Systems
Testing the Unix installation
Installation on Windows systems
Testing the Windows installation
4. Introduction to the NetSolve Client
NetSolve Problem Specification
Available Client Interfaces
Problems that can be solved with NetSolve
Naming Scheme for a NetSolve problem
5. C and Fortran77 Interfaces
Introduction
What is the Calling Sequence?
Blocking Call
Nonblocking Call
Catching errors
Row- or column-major
Limitations of the Fortran77 interface
Built-in examples
6. Matlab Interface
Introduction
What to Do First
Calling netsolve() to perform computation
Calling netsolve_nb()
What Can Go Wrong?
Catching NetSolve errors
Demo
Optional: Testing the NetSolve BLAS interfaces
Optional: Testing the NetSolve LAPACK interfaces
Optional: Testing the NetSolve ScaLAPACK interfaces
Optional: Testing the NetSolve 'sparse_iterative_solve' interface
Optional: Testing the NetSolve 'sparse_direct_solve' interface
7. Mathematica Interface
Introduction
What to do first
Blocking call to NetSolve
Nonblocking Call to NetSolve
Catching Errors
Demo
Optional: Testing the NetSolve BLAS interfaces
Optional: Testing the NetSolve LAPACK interfaces
8. NetSolve Request Farming
Calling Farming in C
An example
Catching errors
Calling Farming in Matlab
An example
Current Implementation
9. NetSolve Request Sequencing
Goals and Methodologies
The Application Programming Interface
Execution Scheduling at the Server
10. Asynchronous Request Handling
netslpr
netslwt
netslkill
netsl_assignment
11. Security in NetSolve Client
Introduction
Compiling a Kerberized Server
Running a Kerberized NetSolve Client
12. Troubleshooting
Details of the Makefile.NETSOLVE_ARCH.inc File
III. The Administrator's Manual
13. Downloading, Installing, and Testing the Agent and Server
Installation on Unix Systems using ns_install
Installation on Unix Systems using ns_install
Installation on Unix Systems using configure
Testing the Software
Expanding the Server Capabilities
14. Running the NetSolve Agent
15. Running the NetSolve Server
Starting a Server
The Server Configuration File
Dynamic Servers
Hardware/Software Servers
16. NetSolve Management Tools for Administrators
NS_config
NS_problems
NS_probdesc
NS_killagent
NS_killserver
NS_killall
17. The Problem Description File
Contents of a Problem Description File
NetSolve IDL - Simplified PDF
idltopdf Utility
18. Security in NetSolve
Introduction
Compiling a Kerberized Server
Installing a Kerberized Server
Running a Kerberized Server
IV. Miscellaneous Features
19. Using Condor-G with NetSolve
Introduction
To Use Condor-G with NetSolve
How it works
20. Distributed Storage Infrastructure (DSI) in NetSolve
DSI Introduction
Using DSI
DSI APIs
DSI Example
21. GridRPC
Introduction
Compilation Instructions
Testing
Additional Notes on Writing and Compiling GridRPC Programs
Function Handles and Session IDs
Initializing and Finalizing Functions
Remote Function Handle Management Functions
GridRPC Call Functions
Asynchronous GridRPC Control Functions
Asynchronous GridRPC Wait Functions
Error Reporting Functions
Argument Stack Functions
Detailed GridRPC API Specification
22. Using the Network Weather Service
Introduction
Using NWS
NWS Components utilized in NetSolve
NetSolve agent and the NWS nameserver, memory and forecast
NetSolve server and the NWS sensor
23. Using Octave with NetSolve
Building the Octave Interface
What to Do First
Calling netsolve() to perform computations
Calling netsolve_nb()
Testing scripts
V. References
24. Matlab Reference Manual
25. C Reference Manual
26. Fortran Reference Manual
27. Error Handling in NetSolve
VI. Appendices
A. NetSolve Tutorials
Tutorial for basic data types (int, double, char)
Tutorial for Handling Files
Tutorial for Matrix and Vector Operations
Tutorial for Sparse Matrices
B. C++ Examples
Overview of C++ Examples
Step 1: Installation of NetSolve
Step 2: Installation of Server service
Step 3. Installation of Client Software
Step 4. Starting the NetSolve Agent/Server
Start Optimization
C. Complete C Example
D. Complete Fortran77 Example
Bibliography
List of Tables
17-1. Available data types
17-2. Available object types
27-1. Error Codes
List of Figures
1-1. The NetSolve System
9-1. Sample C Code Using Request Sequencing Constructs
20-1. Example 1 (without using DSI)
20-2. Example 2 (using DSI)