510 likes | 655 Views
Application-specific Tools. Netsolve, Ninf, and NEOS CSE 225 Chas Wurster. Outline. Goal of application-specific tools General issues Netsolve Ninf NEOS Comparisons. Goals. Easy access to the Grid. Provide specific services. High performance. General Issues. Ease of use Scheduling
E N D
Application-specific Tools Netsolve, Ninf, and NEOS CSE 225 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
Overview of Netsolve Server Side Agents Client Side Server Client Proxy Client Agent MPP Server Proxy Client Proxy Client Agent request Network of Servers Client Client Proxy request Server Proxy 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
Ninf Server Ninf Server Ninf Server NumericalRoutine NumericalRoutine NumericalRoutine NumericalRoutine NumericalRoutine NumericalRoutine NumericalRoutine NumericalRoutine NumericalRoutine Overview of Ninf • Remote high-performance routine invocation • Transparent view to the programmers • Automatic workload distribution C Client Java Client MetaServer Mathematica Client 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 Directory Service Server Side Server Proxy MetaServer Client Side Scheduler Server Probe Module Server Proxy Client Server Load query Schedule query Data Client Client Proxy Server Proxy Server Throughput Measurement 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 Solvers Single Server Clients Solver daemon Email Mail Client Solver daemon Web Engine Web Client Server Java Client daemon Solver 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