CM319 High Performance Computing Advanced Parallel and Distributed Programming - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

CM319 High Performance Computing Advanced Parallel and Distributed Programming

Description:

CM319 - High Performance Computing (Advanced Parallel and Distributed Programming) ... Dr Jeff Reeve. jsr_at_ecs.soton.ac.uk. Zepler 4023. The Course. Course: 22 Lectures ... – PowerPoint PPT presentation

Number of Views:46
Avg rating:3.0/5.0
Slides: 21
Provided by: db2a2
Category:

less

Transcript and Presenter's Notes

Title: CM319 High Performance Computing Advanced Parallel and Distributed Programming


1
CM319 - High Performance Computing (Advanced
Parallel and Distributed Programming)
  • Distributed Programming
  • Dr David Lancaster
  • djl_at_ecs.soton.ac.uk
  • Zepler 3237
  • Parallel Programming
  • Dr Jeff Reeve
  • jsr_at_ecs.soton.ac.uk
  • Zepler 4023

2
The Course
  • Course 22 Lectures
  • 11, Distributed Programming
  • 11, Parallel Programming
  • Assessment Exam 70, Coursework 30
  • Coursework One Assignment on distributed
    programming
  • 3-tier system using JDBC and CORBA

3
Course Structure
  • Introduction to CORBA (2)
  • The Assignment - JDBC (1)
  • CORBA and Java IDL (4)
  • Design techniques and special topics (3)
  • Review (1)
  • ltChange Lecturergt
  • Parallel Programming methods/algorithms (3)
  • Advanced MPI programming (3)
  • Program Optimization (5)

4
Books and other Reference Material
  • Books
  • R. Orfali and D. Harkey, Client/Server
    Programming with Java and Corba, 2nd Edition,
    Wiley, 1998.
  • A.Vogel and K. Duddy, Java Programming with
    CORBA, 2nd Edition, Wiley, 1998.
  • M. Henning and S. Vinoski, Advanced CORBA
    Programming with C, Addison-Wesley, 1999.
  • Other
  • Java JDK 1.2 Specification, API, Tutorials, Docs
  • www.ecs.soton.ac.uk/notes/cm319
  • www.omg.org/

5
High Performance Computing
  • Was Supercomputers for Science/Engineering
  • Then came the Commodity Train
  • Now...
  • Beowulf Clusters
  • Web related systems ISPs, Ebay...
  • AOL -- Server has 40,000 CPUs, more than 4
    Tbytes of memory and supports more than a million
    users.

6
High Performance Computing
  • Science/Engineering
  • Parallel Programming
  • Tightly coupled homogeneous platforms
  • MPI/OpenMP
  • Web related systems
  • Distributed Programming
  • Heterogeneous platforms
  • Object Oriented
  • CORBA, RMI, DCOM

7
Dealing with Heterogeneity
  • Find platform independent models and abstractions
    that can be used to help solve a wide variety of
    problems
  • Hide as much low-level complexity as possible
    without sacrificing performance
  • Essentially provides a homogeneous development
    layer on top of the mess

8
Programming heterogeneous distributed systems
  • Write individual programs and communicate via
    sockets
  • perennial
  • Write individual programs that communicate via
    RPC
  • 1980s
  • Call remote objects as though they were local
  • 1990s and beyond

9
Objects in a local system
  • Objects consist of data and methods
  • Objects communicate by invoking methods on other
    objects
  • Each object has an object reference (ObjRef)
  • The ObjRef enables the object to be the target of
    a message
  • ObjRefs are first class variables (can be
    assigned to variables, passed as args and
    returned as results of methods)

10
Objects in a distributed system
  • OO programs are logically partitioned along
    objects
  • Objects are physically partitioned
  • ObjRefss must be extended to IORs
  • IORs should be first class variables

11
Remote Operation Call
12
Transparency
  • Location Transparency
  • The client neither knows nor cares where the
    server is
  • achieved by local proxy for each remote object
  • Programming Language Independence
  • The client does care what language is used by the
    server
  • Use an Interface Definition Language (IDL)
  • Stub and skeleton are required to marshall and
    unmarshall args and results

13
Common Object Request Broker Architecture (CORBA)
  • A framework for distributed programming
  • For heterogeneous platforms
  • Transparent
  • Object Oriented
  • Supported by the OMG

14
Object Management Group
  • OMG formed 1989
  • over 800 companies, NOT Microsoft
  • Mission Add distributed object capabilities to
    existing OO languages via interface specification
  • Check out www.omg.org
  • Read 1-page What is CORBA

15
CORBA
  • Versions
  • CORBA 1.0, 1991 - IDL spec and C binding
  • CORBA 2.0, 1994 - IIOP spec, C binding
  • CORBA 2.2, 1998 - POA
  • CORBA 2.3, 1999 - Objects by value
  • CORBA 3.0, 1999 draft

16
CORBA
  • Architectural Model
  • Object Model how interfaces to objects are
    described
  • Reference Model characterises interactions
    between such objects
  • Specification defines
  • ORB the message bus
  • IDL interface definition language
  • Language Mappings C,C,Java,COBOL,Smalltalk..
  • Services naming, trading, event...

17
Alternatives to CORBA?
  • Java RMI
  • language specific
  • Stubs and skeletons generated directly from Java
    code
  • Good for a complete Java solution
  • DCOM
  • Microsoft specific
  • Good for complete MS solution
  • CORBA (Specification only)
  • language, h/w and vendor independent
  • Best for developing distributed applications on
    different h/w, O/Ss, languages.
  • But Bridges can link all 3.

18
Java IDL A CORBA implementation
  • Partial implementation of CORBA specification,
    bundled with JDK 1.2
  • Compared with commercial implementations
  • Java IDL is lightweight and minimalist
  • no Interface repository, limited services,
    volatile naming service
  • Commercial implementations support
  • security, dynamic invocation, load-balancing,
    persistence, thread pooling, etc
  • Can develop on 1 ORB and replace with another

19
Some (only a few) other issues...
  • Support for dynamic binding
  • Garbage collection
  • Object replication / migration
  • Locating objects from a name

20
Definitions
  • CORBA Object - a virtual entity, make concrete
    with a servant
  • Client - invokes a request
  • Server - an application in which CORBA objects
    exist
  • Object Reference - an opaque handle to identify,
    locate and address a CORBA Object
  • Servant - a programming language entity that
    implements CORBA Objects
Write a Comment
User Comments (0)
About PowerShow.com