digitalmars.D.announce - Tango Compute Grid
- Lars Ivar Igesund (29/29) Jun 27 2007 Dear D community
- Robert Fraser (2/40) Jun 27 2007
- Sean Kelly (6/7) Jun 27 2007 Not currently, though the grid tech could be used as a somewhat
- Robert Fraser (2/12) Jun 27 2007
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
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
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
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