Gledis a Generic Lightweight Environment for Distributed computing.
Gledis a C++ framework for rapid development of applications with support for GUI, 3D-graphics and distributed computing. It extends the
ROOTframework (standard data-analysis tool in high-energy physics) with mechanisms for object collection management & serialization, multi-threaded execution, GUI auto-generation (object browser & editor) and dynamic visualization (OpenGL).
Distributed computing model of
Gled is a
hierarchy of nodes connected via TCP/IP sockets.
Gled provides authentication & access control,
data exchange, proxying of object collections and remote method-call
propagation & execution.
Gled can be dynamically extended with
library sets. Their creation is facilitated by a set of scripts for
creation of user-code stubs. Simple tasks and application
configuration can be efficiently done via the interactive C++
Gled is used for development of programs in high
energy physics and as a research tool in distributed and grid computing.
Gled is the development platform for
Gledimplements a specific clustering paradigm, offering servers, proxies, clients and viewers with a high degree of code reuse. The top-level server node exposes its object space to first-level nodes which provide proxying facilities to second-level nodes and at the same time function as servers, exporting their own independent object spaces. Each node in the ordered tree structure therefore functions as a client, a proxy and a server. Viewing and rendering facilities are optional and can be instantiated at any node. An infrastructure for propagation and broadcasting of method invocation requests is provided and is general enough to allow for authentication and an efficient access control. Synchronization of object spaces is achieved via streaming of object graphs and a time-ordered delivery of method invocation requests. Independent local object-spaces exist on every node and can be used for objects pertaining to local computation and rendering.
GledOO framework provides facilities for generic programming in a server-proxy-client hierarchy.
ZGlassis the common base of all
Gledclasses and represents a generic object-graph-member with ability to have named pointers (or links) to other objects.
ZListis the container base class and
ZNodean object-tree-member base class. Object graphs can be traversed by algorithms (existing within the same object structure, but on any node in the server-client tree) to achieve modification of object-graph state or produce visual effects. Aggregates of objects enter into the structures at different levels and can be arbitrarily propagated to other nodes in the server-client tree. To minimise network traffic, parts of object graph can be retrieved from local files or databases. Node hierarchy and object aggregate dependency is accessible to alghoritms.
Gled is a
application with full access to
data analysis and presentation services, object I/O and CINT, the
Objects can acquire their own threads to perform different tasks
such as computation, data acquisition and analysis or dynamic
visualisation. Results obtained can be pushed to other computing
nodes or storage devices. As threads are spawned and controlled by
standard gled method invocation requests, schedulers and job control
mechanisms spawning across the whole
Gled cluster can
easily be implemented. Optimized streaming and method invocation
propagation is provided for use in HEP computations with large data
sets and fast data transfers.
Gledfeatures automatically generated GUI widgets (using
FLTK, the Fast Light ToolKit) that provide object interaction and editing following
C++inheritance hierarchy. Widgets for exported object-members (data and methods) are created automatically. Their callbacks send Gled method invocation requests, thus allowing interaction with remote objects. An object collection browser, object instantiation interface and method execution request builder is provided.
The viewer implements a versatile 3D rendering infrastructure where the user has detailed control over rendering. Several rendering sessions can be operated independently. Direct access to OpenGL is provided within a parallel class structure (class Foo has renderer Foo_GL_Rnr). Renderer permits direct mouse and keyboard interaction with objects and the camera.
Gled is developed and maintained by Matev¾ Tadel, © 1999-2010
Gled is free software, released under the General GNU Public License (GPL) version 2.0
Gled in a form of
be distributed under different licensing terms.
|Matev¾ Tadel||   ||design, development, basic documentation|
|Jan Jona Javor¹ek||meta-design, user documentation, web|
Gled is supported by
Experimental Particle Physics
Department of the Jozef Stefan
Institute (JSI), Ljubljana, Slovenia.
Since November 2001 development of
Gled is partially supported by projects funded
by Slovenian Ministry of Education,
Science and Sport.
Since September 2004
is used as a tool for dynamic visualization and prototyping of
visualization algorithms by the ALICE
collaboration at CERN. Some core
development has been carried out in this context.
been indispensable. Many thanks to all involved.
Perl(preprocessing, building and general sanity)
ROOT(streaming, IO, CINT C++ interpreter and other ROOT services)
FLTK, the Fast Light ToolKit (for GUI)
Gled's libsets may (and do) have additional dependencies.
Greed- Global Research Environment for Equitable Development