application-specific tools netsolve, ninf, and neos cse 225 chas wurster

51
Application-specific Tools Netsolve, Ninf, and NEOS CSE 225 Chas Wurster

Post on 20-Dec-2015

219 views

Category:

Documents


0 download

TRANSCRIPT

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.