480 likes | 580 Vues
Transparent access to finite element applications using grid and web technology. J. Lindemann P.A. Wernberg and G. Sandberg LUNARC, Lund University. Some earlier work.
E N D
Transparent access to finite element applications using grid and web technology J. Lindemann P.A. Wernberg and G. Sandberg LUNARC, Lund University
Some earlier work • R. Larsson, Encapsulation of a finite element program using a distributed object model, Masters dissertation TVSM-5095, Division of Structural Mechanics, Lund University, 1999 • J. Lindemann, O. Dahlblom, G. Sandberg, An Approach For Distribution Of Resources In Structural Analysis Software, ECCM ’99, Munich, Germany, 1999 • Programming and Visualisation Techniques in Finite element Software, Division of Structural Mechanics, Licentiate Dissertation, TVSM-3050, 2001 • Using CORBA middleware in finite element software, ICCS 2002 • Using CORBA middleware in finite element software, Future Generation Computer Systems, Elsevier, 2002, Accepted for publication
Transparent access • Creating a easier interface to present clusters • Extend user interface with grid services • Distributed applications integrating seamlessly with clusters and grids • CORBA interfaces to clusters and grids
Using clusters • Log in • Instructions on how to use SSH • Getting SSH client software if client is MS Windows • Instructions on unix tools • mkdir proj • sftp/scp user@... • Instructions on how to transfer files • vi/joe submit script • Submit script documentation • Queue management • qsub script • qstat ... • Transfer result files back • sftp/scp For many, this is a straightforward process, but why do we get so many questions??
Cluster Web Portal • Web interface well established interface • Most users know what to do • Multiple entrypoints • Novice users (web interface) • Intermediate users (web/cli modification) • Experienced users (web monitoring/cli) • Project based • One directory per project • Project includes input files and submission scripts • CWP creates submit scripts from job definition stored in database • templates for different application types
The Sleipner Test Cluster • CWP installed on retired production cluster • Easier to experiment without any users... • 8 nodes (legs...) • AMD 1100 Mhz • 1 Gb memory • 2x15 Gb striped disks • RedHat Linux 7.2 • Frontend • AMD 1000 Mhz • 256 Mb memory • 80 Gb disk • RedHat Linux 7.2 • Network • 100Mbit Fast Ethernet Lunarc clusters Whenim64 65 nodes Husmodern 32 nodes Sleipner 8 nodes
CWP Implementation • Apache Web Server SSL • PHP 4.x • OpenPBS • OpenSSH • Execution of commands • MySQL database • Job descriptions • User accounts (web accounts) • Announcements/news • Too be extended...
CWP Future • Jobsubmission through Nordugrid • PHP security functions must be implemented • Submission of jobs+input files to other clusters without shared filesystems or Nordugrid connection • Packing job and description into a job-package • Users must have account on other cluster • More application templates • Debugging, documentation and installation scripts
Components in software • Hardware often consist of components • Software components = hardware components. • Components in software can be exchanged. • If the interface is the same • Component model / Object model needed • CORBA, DCOM, RMI use an intermediate language for describing interfaces • Enabling component design
CORBA • Object Management Group’s specification for interoperability and interaction between objects and applications. • CORBA 1.1 released in 1991. • Language neutral. • Object oriented. • Object interfaces described using the Interface Definition Language, IDL.
CORBA concepts and terminology • client - entity that invokes a request on a CORBA object. • CORBA object - ”virtual” entity capable of being located by an ORB and having client requests invoked on it. • server - application in which one or more CORBA objects exist. • object reference - handle used to identify, locate and address a CORBA object. • servant - programming language entity that implements one or more CORBA objects.
IDL-compiler (C++) Interface Definition language interface Echo { string Shout(in string word); } class Echo : virtual public CORBA::Object { Echo(const Echo&); ... public: ... char* Shout(const char* word); };
Name service • CORBA objects acessed by object references • Unique identifier, also contains ip/port information • Must be retrieved somehow • CORBA 2.3 introduced a Name service • Provides location transparency • bm/servers/factories/forcepad -> object reference • Name service location provided at startup • DNS for CORBA objects
ForcePAD server interface • Designed to reduce the number of requests • Object request has a cost determined by latency and marshaling rate • Latency the most critical factor • A CORBA request 50-5000 times slower than a function call in C++ • Marshaling rate determined by network bandwith
CORBA and FE applications • For more information • Programming and Visualisation techniques in Finite Element Software, TVSM-3050 • Using CORBA middleware in finite element software, Future Generation Computer Systems, Elsevier, 2002
CORBA in clusters and grids • CORBA enabled applications requires a CORBA aware cluster • Globus toolkit has CORBA bindings for job submission and resource management • Bindings not very well supported/developed • How do we run CORBA enabled finite element applications using Globus? • Initial development of a CORBA enabled cluster has been done • Sleipner will testbed for these efforts
CORBA enabled cluster • Interface definitions needed (IDL) for • Cluster information system • Resource management • File transfer • Queue management • Job submission • Security • Each cluster becomes a set of CORBA objects • Simple grid solutions can be created by connecting CORBA enabled clusters • Communication over SSL
Queue system CORBA cluster
Conclusions • Broader user base requires • Simple user interface • Smooth learning curve • Experienced users benefit a better interface • Monitoring • Simple control • Web portal can be central point for grid based resources • CORBA based distributed finite element applications can be supported on clusters • CORBA based cluster abstraction • Globus CORBA interface • CORBA based applications enable powerful web based engineering tools