www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Tango Compute Grid

reply Lars Ivar Igesund <larsivar igesund.net> writes:
Dear D community

Tango has an optional package for enabling high-performance clustered
designs. The package supports distributed instances of cache, queue, and
task (rmi/rpc). All activity on a cluster operates via a named 'channel',
akin to a publish/subscribe channel i.e. once a channel is opened, cluster
operations can be performed upon it. Channels are often named based upon
the content flowing through them. For example, a common idiom is to use the
name of a class, and retain that channel purely for appropriate serialized
instances. 

Data held within a cache is temporal, and the content is spread out across
the cluster using a DHT (distributed hash table) approach. Queue instances
are distributed in a similar manner, and are persisted to disk. Execution
of task/rpc is generally synchronous, though queues can be used to house
asynchronous task execution where a decoupled design is more suitable.
Either way, task execution is spread across the cluster in a manner akin to
queuing. 

Throughput is far beyond any other similar approach known to us, and the
consistent interface across each of queue/cache/task makes the design
simple to use. We expect to make this functionality available in the next
release of Tango. 

Contact:
http://www.dsource.org/projects/tango/wiki/Contact 

Signed, 

The Tango Team 

http://www.dsource.org/projects/tango/wiki/Contributors 

----

Tango is a D library providing a cohesive runtime and library for the D
programming language. A feature list can be found on
http://www.dsource.org/projects/tango/wiki/Features
Jun 27 2007
parent reply Robert Fraser <fraserofthenight gmail.com> writes:
Not directly related, but is there a (lighter-weight, memory-only, not
distributed) queuing mechanism in Tango that allows intra-process communication
through an asynchronous thread pooling mechanism? That is, one thread can place
events in a queue that are handled by another thread pool when it gets to them,
like a lightweight SEDA implementation?

Lars Ivar Igesund Wrote:

 Dear D community
 
 Tango has an optional package for enabling high-performance clustered
 designs. The package supports distributed instances of cache, queue, and
 task (rmi/rpc). All activity on a cluster operates via a named 'channel',
 akin to a publish/subscribe channel i.e. once a channel is opened, cluster
 operations can be performed upon it. Channels are often named based upon
 the content flowing through them. For example, a common idiom is to use the
 name of a class, and retain that channel purely for appropriate serialized
 instances. 
 
 Data held within a cache is temporal, and the content is spread out across
 the cluster using a DHT (distributed hash table) approach. Queue instances
 are distributed in a similar manner, and are persisted to disk. Execution
 of task/rpc is generally synchronous, though queues can be used to house
 asynchronous task execution where a decoupled design is more suitable.
 Either way, task execution is spread across the cluster in a manner akin to
 queuing. 
 
 Throughput is far beyond any other similar approach known to us, and the
 consistent interface across each of queue/cache/task makes the design
 simple to use. We expect to make this functionality available in the next
 release of Tango. 
 
 Contact:
 http://www.dsource.org/projects/tango/wiki/Contact 
 
 Signed, 
 
 The Tango Team 
 
 http://www.dsource.org/projects/tango/wiki/Contributors 
 
 ----
 
 Tango is a D library providing a cohesive runtime and library for the D
 programming language. A feature list can be found on
 http://www.dsource.org/projects/tango/wiki/Features

Jun 27 2007
parent reply Sean Kelly <sean f4.ca> writes:
Robert Fraser wrote:
 Not directly related, but is there a (lighter-weight, memory-only, not
distributed) queuing mechanism in Tango that allows intra-process communication
through an asynchronous thread pooling mechanism? That is, one thread can place
events in a queue that are handled by another thread pool when it gets to them,
like a lightweight SEDA implementation?

Not currently, though the grid tech could be used as a somewhat heavyweight version of that. That said, I had the same thought when all of this was introduced to me, so expect something along those lines in Tango eventually. Sean
Jun 27 2007
parent Robert Fraser <fraserofthenight gmail.com> writes:
Awesome! Thanks to you & the Tango team for all your hard work!

Sean Kelly Wrote:

 Robert Fraser wrote:
 Not directly related, but is there a (lighter-weight, memory-only, not
distributed) queuing mechanism in Tango that allows intra-process communication
through an asynchronous thread pooling mechanism? That is, one thread can place
events in a queue that are handled by another thread pool when it gets to them,
like a lightweight SEDA implementation?

Not currently, though the grid tech could be used as a somewhat heavyweight version of that. That said, I had the same thought when all of this was introduced to me, so expect something along those lines in Tango eventually. Sean

Jun 27 2007