Application for site specific environmental authority - Application ...
Application-specific Tools
description
Transcript of Application-specific Tools
Application-specific Tools
Netsolve, Ninf, and NEOS
CSE 225Chas Wurster
UCSD CSE225 presentation by Chas
Wurster
Outline Goal of application-specific tools General issues Netsolve Ninf NEOS Comparisons
UCSD CSE225 presentation by Chas
Wurster
Goals Easy access to the Grid. Provide specific services. High performance.
UCSD CSE225 presentation by Chas
Wurster
General Issues Ease of use Scheduling Heterogeneous Problems
UCSD CSE225 presentation by Chas
Wurster
Ease of Use Users are not computer scientists. Users must want to use the
system. Need to integrate with existing
client programs (Matamatica, Matlab, etc.).
UCSD CSE225 presentation by Chas
Wurster
Scheduling for Global Computing
Dispatch computation to the Most Suitable Computation Server
Server / Network Status dynamically change
Status information is distributed Scheduling is inherently difficult What is the Most Suitable?
UCSD CSE225 presentation by Chas
Wurster
Issues for Global Scheduling Load imbalance comes from
ignoring server status server characteristics communication issues computation characteristics
False load concentration Delay of load information propagation
Security
UCSD CSE225 presentation by Chas
Wurster
Requirements for Global Scheduling
Gathering various Information Server Status
Load average, CPU time breakdown (system, user, idle)
Server Characteristics Performance, Number of CPU, Amount of
Memory Network Status
Latency, Throughput Computation Characteristics
Calculation order, communication size
UCSD CSE225 presentation by Chas
Wurster
Heterogeneous Issues Problems
Erroneous Results Deadlock
Reasons Differences in FP ops (IEEE vs. Cray) Precision Network Communication
UCSD CSE225 presentation by Chas
Wurster
Netsolve Allows users to access
computational resources for scientific computing without installing the resources on the users computer.
UCSD CSE225 presentation by Chas
Wurster
Client
Client Side
Server Side
Client
Server
MPP
requestClientProxy
ClientProxy
ServerProxy
ServerProxy
ServerProxy
ServerProxy
Network of
Servers
Overview of Netsolve
Agents
Client
ClientProxy
ClientProxy
ClientProxy
ClientProxy
AgentAgent
AgentAgent
request
response
UCSD CSE225 presentation by Chas
Wurster
Client Simple to use Wide range of interfaces
Fortran, C, Matlab, Mathematica, Java Synchronous and asynchronous
calls
UCSD CSE225 presentation by Chas
Wurster
Agent Database
Servers Resources on each server
Resource Broker Server selection
Fault-tolerance Agent can handle server failures
UCSD CSE225 presentation by Chas
Wurster
Server Uniform access to software Configurability Preinstallation Benchmarking
UCSD CSE225 presentation by Chas
Wurster
Example Matrix multiplication Matlab command
c = a * b c, a, b are matrixes
UCSD CSE225 presentation by Chas
Wurster
Walkthrough (New Service) Create IDL
IDL must support all client languages Write server app Distribute app to servers Benchmark app on servers Register servers with agents
UCSD CSE225 presentation by Chas
Wurster
Walkthrough (Using Service) Client looks up services supported
Matlab, Mathamatica, and Java have GUIs C and Fortran must be looked up by hand
Client calls the agent based on the IDL When the call is made the interface is pulled
to the client (no stubs are needed) Agent finds best server Server returns results
UCSD CSE225 presentation by Chas
Wurster
Netsolve Example Matlab Function
[x y] = netsolve('eig',a) Returns
Contacting server on cupid.cs.utk.edu x = y = 10.1204 0-0.9801 0.8991... ...
UCSD CSE225 presentation by Chas
Wurster
Results
UCSD CSE225 presentation by Chas
Wurster
Integration Ninf Legion Globus Condor IBP NWS
UCSD CSE225 presentation by Chas
Wurster
Integration (notes cont.)
UCSD CSE225 presentation by Chas
Wurster
Netsolve Conclusion Cannot handle intermediate data Easily integrated into the grid Provides excellent results for large
problems
UCSD CSE225 presentation by Chas
Wurster
Ninf Networked infrastructure for global
computing Provides a globally distributed
parallel computing environment
UCSD CSE225 presentation by Chas
Wurster
Overview of Ninf
MetaServer
C Client
NumericalRoutineNumericalRoutineNumericalRoutineNumericalRoutine
NumericalRoutineNumericalRoutine
NinfServer
NinfServer
NumericalRoutineNumericalRoutineNumericalRoutineNumericalRoutine
NumericalRoutineNumericalRoutine
NinfServer
NinfServer
NumericalRoutineNumericalRoutineNumericalRoutineNumericalRoutine
NumericalRoutineNumericalRoutine
NinfServer
NinfServer
MathematicaClient
JavaClient
Remote high-performance routine invocation
Transparent view to the programmers
Automatic workload distribution
UCSD CSE225 presentation by Chas
Wurster
Client Simple to use Interfaces include
Fortran, C/C++, Java, Excel, Mathematica
Synchronous and Asynchronous calls
Callbacks
UCSD CSE225 presentation by Chas
Wurster
Metaserver Server location Functions available on server Bandwidth based distance Computational ability of server State of the server (load) Java based
UCSD CSE225 presentation by Chas
Wurster
MetaServer Architecture
Client
Client Side
Server Side
Client
Server
Server
DirectoryService
DirectoryService
SchedulerScheduler
Data
Throughput Measurement
Load query
Schedulequery
ClientProxy
ClientProxy
ServerProxy
ServerProxy
ServerProbe Module
ServerProbe Module
ServerProxy
ServerProxy
ServerProxy
ServerProxy
MetaServer
UCSD CSE225 presentation by Chas
Wurster
MetaServer Features Parallel programming
Ninf_transaction_begin() Ninf_call("dmmul",N,A,B,E); Ninf_call("dmmul",N,C,D,F); Ninf_call("dmmul",N,E,F,G); Ninf_transaction_end()
Load balancing and Scheduling MetaServer to MetaServer
communication
UCSD CSE225 presentation by Chas
Wurster
MetaServer Scheduling Server Status
Load average CPU time breakdown
Server Characteristics Measured using linpack benchmark Number of CPUs is taken from a
configuration file Amount of Memory is automatically
detected
UCSD CSE225 presentation by Chas
Wurster
MetaServer Scheduling(2) Network Status
Latency Throughput
Computation Characteristics Calculation order communication size Declared in the Interface description Computed using actual arguments
UCSD CSE225 presentation by Chas
Wurster
MetaServer Communication Propagate information about
registered services Handles finding a server on a
different MetaServer for the client
UCSD CSE225 presentation by Chas
Wurster
Server Process to service remote requests Binaries of libraries and
applications are registered with the process
Web based data as arguments
UCSD CSE225 presentation by Chas
Wurster
Example Matrix multiplication Standard call
double A[N][N],B[N][N],C[N][N]; /* declaration */
dmmul(N,A,B,C); /* call matrix multiply*/
UCSD CSE225 presentation by Chas
Wurster
Ninf IDL Matrix multiply
Define dmmul(long mode_in int n, mode_in double A[n][n], mode_in double B[n][n], mode_out double C[n][n])
"... description ..." Required "libxxx.o" /* specify library
including this routine. */ Calls "C" dmmul(n,A,B,C); /* Use C calling
convention. */
UCSD CSE225 presentation by Chas
Wurster
Ninf Registration Take IDL and create a server stub Connect stubs to library routines Register library with the
MetaServer MetaServer tells other MetaServers
UCSD CSE225 presentation by Chas
Wurster
Ninf Example Ninf call
Ninf_call("dmmul",N,A,B,C); /* call remote Ninf library on server */
Server specific Ninf call Ninf_call(“ninf://…/dmmul",N,A,B,C);
Data location Ninf call Ninf_call(“dmmul",N,”http://.../…”,B,C);
UCSD CSE225 presentation by Chas
Wurster
Results
UCSD CSE225 presentation by Chas
Wurster
Integrations Main integration is Netsolve Looking at
NWS Standardization
UCSD CSE225 presentation by Chas
Wurster
Conclusion Ninf Client
Provides easy access to resource Ninf MetaServer Architecture
Gathers distributed information periodically Provides scheduling framework
Ninf Server Interface for numerical libraries
Preliminary Evaluations Ninf overhead is worthwhile for large
problems
UCSD CSE225 presentation by Chas
Wurster
NEOS Provides easy access to individual
solvers Web and email based
UCSD CSE225 presentation by Chas
Wurster
Overview of NEOS
Web Client
Clients
Java Client
Solver
Solverdaemondaemon
Single Server
Mail Client
WebWeb
ServerServer
Solvers
EmailEmail
daemondaemon
EngineEngine
Solverdaemondaemon
UCSD CSE225 presentation by Chas
Wurster
Client Submission tool (Java) Email Web
UCSD CSE225 presentation by Chas
Wurster
Server Can be downloaded from NEOS On installation
Sets up website and CGI scripts Creates a database for tracking
submissions Creates how to add solvers web page
You are in charge of letting people know how to find the server
UCSD CSE225 presentation by Chas
Wurster
NEOS Solver Registering new solver
Use the client tool to submit solver Best to email NEOS and ask for a
similar sample to modify Setup communication
Install communications package
UCSD CSE225 presentation by Chas
Wurster
Example BonsaiG
Branch and Bound solver for MILP problems
Submitted via email Returned a solution quickly
UCSD CSE225 presentation by Chas
Wurster
Conclusion NEOS is Web-centric NEOS servers are not
interconnected NEOS is being used
108,118 requests at Argonne in Dec. 1999
UCSD CSE225 presentation by Chas
Wurster
MetaNEOS Collaboration between researchers
at Condor and Globus Use the Grid to solve optimizations Make solver more available
UCSD CSE225 presentation by Chas
Wurster
MetaNEOS Goals Process very large jobs in parallel
by splitting them into tasks and distributing the tasks around its collection of computing resources
UCSD CSE225 presentation by Chas
Wurster
MetaNEOS Specifics Designing and Implementing
enhanced programming interfaces Discover algorithms that fit the
platforms Implement solvers for important
problem classes Driving the development of
metacomputing infrastructure
UCSD CSE225 presentation by Chas
Wurster
Comparisons Netsolve vs. Ninf
Netsolve agents do not share load info but Ninf does
Netsolve IDL is more complicated than Ninf IDL but give 100% of LAPACK instead of 40%
NEOS is also an application-specific tool but is quite different
UCSD CSE225 presentation by Chas
Wurster
Conclusions Application-Specific tools are
counting of the Grid for critical services.
The tools are ready to be used. The tools perform well.