240 likes | 368 Views
Grid Programming Environments. Topics. GrADS XIO MPICH-G2. GrADS – Grid Application Development Software. Internet, P2P, Grid Middleware – Large Scale Resource Sharing Grid application development GrADS supports. GrADS – Vision. Currently, development on top of existing infrastructure
E N D
Topics • GrADS • XIO • MPICH-G2
GrADS – Grid Application Development Software • Internet, P2P, Grid Middleware – Large Scale Resource Sharing • Grid application development • GrADS supports
GrADS – Vision • Currently, development on top of existing infrastructure • Useful applications, but too difficult • Must become easier to develop • Specify a program in high level language • Seamlessly access the Grid
GrADS – Problems • Insulate User from Grid complexity • Provide Execution Environment adapting Application to the Dynamically changing Grid
GrADS – Program Preparation System (PPS) • Applications assembled as modules in high level language • Built on pre-existing component libraries • Express a computation in terms that make sense for expert in application domain
GrADS – Program Preparation System (PPS) • Modules bound together into: • Components • Libraries • Applications • With a coordination language
GrADS – Program Preparation System (PPS) • Creates annotated modules • Application is compiled with: • Software Components • GrADS Libraries • Configurable Object Program (COP)
GrADS – Telescoping Languages • Allow users to write applications in high level domain specific language • TeleGen Compiler reads domain specific library • Produces Optimizer that understands how to use the library
GrADS – Telescoping Languages • Optimizer is compiler for a new language: • Base Language (e.g. C/C++) • Augmented functions specific to the domain • Language implemented as preprocessor
GrADS – Execution Environment • COP is delivered to Execution Environment • Determine Available Resources • Secure Subset for Application • Service Negotiator brokers Allocation/Scheduling • Dynamic Optimizer Tailors COP for good performance
GrADS – Execution Environment • Real-Time Monitor tracks behavior of program, checks PC • On violation, monitor interrupts execution • Possible actions: • Invoke Dynamic Optimizer • Negotiate new set of resources • Invoke both Optimizer and negotiate new set of resources
GrADS – Execution Environment • Dynamic Forecasts to reduce overhead of renegotiation
XIO – Globus eXtensible Input/Output system • What is XIO? • API able to present different I/O problems uniformly
XIO – Globus eXtensible Input/Output system • Goal: Present a simple Open/Close/Read/Write (OCRW) interface for all byte stream I/O: • Local Disk • Electron Microscope • TCP/IP • Custom Protocols
XIO – Globus eXtensible Input/Output system • Does not try to map every type of I/O to a single API • Does not hide all details of the underlying protocol
XIO – Globus eXtensible Input/Output system • For XIO application to access a protocol, special Driver must be written • Application can then access protocol through OCRW Interface • Application may want to interact with underlying driver • Interaction is of course Driver specific
MPICH-G2 • Is a Grid-enabled version of MPI used in parallel computing • Low-level programming model, yet has sophisticated measures for: • Handling Heterogeneity • Modular Programs • Management of Latency • Representation of Global Operations
MPI – Message Passing Interface • Standard that defines library of routines to implement message-passing model • Point-to-point communication functions: • Send to initiate Data transfer • Receive to extract data from system data structures • Collective operations (broadcast, reductions) involving multiple processes
MPI – Message Passing Interface • Underlying performance issues accessible to programmers
MPICH-G2 • Asynchronous operations used for Latency Management • Communicator Construct used to represent hierarchical structure of heterogeneous systems • Run MPI programs across multiple computers