# \[ANN\] Tiamat: Automatic parallelism across multiple machines

**URL:** <https://www.ruby-forum.com/t/ann-tiamat-automatic-parallelism-across-multiple-machines/177757>\
**Category:** Ruby\
**Created:** [October 23, 2009, 5:42am UTC](https://www.ruby-forum.com/t/ann-tiamat-automatic-parallelism-across-multiple-machines/177757 "2009-10-23T05:42:43Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![noagenda](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/8c91f0/32.png) [@noagenda](https://www.ruby-forum.com/u/noagenda)\
**Post date:** [October 23, 2009, 5:42am UTC](https://www.ruby-forum.com/t/ann-tiamat-automatic-parallelism-across-multiple-machines/177757/1 "2009-10-23T05:42:43Z")

</div>

= Tiamat

== Summary

Automatic parallelism across multiple cores and machines: a plugin for  
Pure.

== Synopsis

require ‘tiamat/autoconfig’  
require ‘benchmark’

mod = Pure.define do  
def total(left, right)  
left + right  
end

```
def left
  (1..500_000).inject(0) { |acc, n| acc + n }
end

def right
  (1..500_000).inject(0) { |acc, n| acc + n }
end

```

end

# compute using two threads

puts Benchmark.realtime { mod.compute(2).total } # =\>  
0.4432079792022705

# compute using two local Ruby interpreters

Tiamat.open\_local(2) {  
puts Benchmark.realtime { mod.compute.total } # =\>  
0.2420041561126709  
}

== Description

Tiamat is a worker plugin for the pure functional package. It links  
Ruby interpreters together with DRb, forming a back-end for Pure’s  
parallelizing engine.

== Install

% gem install tiamat

Or for the (non-gem) .tgz package,

% ruby install.rb [–uninstall]

== Links

- Pure: [http://purefunctional.rubyforge.org](http://purefunctional.rubyforge.org)

- Documentation: [http://tiamat.rubyforge.org](http://tiamat.rubyforge.org)

- Download: [http://rubyforge.org/frs/?group\_id=9145](http://rubyforge.org/frs/?group_id=9145)

- Rubyforge home: [http://rubyforge.org/projects/tiamat](http://rubyforge.org/projects/tiamat)

- Repository: [GitHub - quix/tiamat: Automatic parallelism across multiple cores and machines](http://github.com/quix/tiamat)

== Author

- James M. Lawrence [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![noagenda](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/8c91f0/32.png) [@noagenda](https://www.ruby-forum.com/u/noagenda)\
**Post date:** [October 23, 2009, 7:08pm UTC](https://www.ruby-forum.com/t/ann-tiamat-automatic-parallelism-across-multiple-machines/177757/2 "2009-10-23T19:08:05Z")

</div>

On Thu, Oct 22, 2009 at 11:42 PM, James M. Lawrence  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> = Tiamat  
> == Author
> 
> - James M. Lawrence [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> –  
> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).

James this is wicked, love what you’re doing, although I have no idea  
on how to use it yet =)

Does Tiamat work on top of Pure? Where should I start?

–  
Kind Regards,  
Rajinder Y.

[http://DevMentor.org](http://DevMentor.org)

Do Good! - Share Freely, Enrich and Empower people to Transform their  
lives.

---

<div class="post-metadata">

**Author:** ![noagenda](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/8c91f0/32.png) [@noagenda](https://www.ruby-forum.com/u/noagenda)\
**Post date:** [October 24, 2009, 4:54pm UTC](https://www.ruby-forum.com/t/ann-tiamat-automatic-parallelism-across-multiple-machines/177757/3 "2009-10-24T16:54:45Z")

</div>

Rajinder Y. wrote:

> James this is wicked, love what you’re doing, although I have no idea  
> on how to use it yet =)
> 
> Does Tiamat work on top of Pure? Where should I start?

Yes, Tiamat is a back-end for Pure. The first step is to install it and  
then run through the examples in the readmes. Have you tried that?

---

<div class="post-metadata">

**Author:** ![noagenda](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/8c91f0/32.png) [@noagenda](https://www.ruby-forum.com/u/noagenda)\
**Post date:** [October 25, 2009, 7:15am UTC](https://www.ruby-forum.com/t/ann-tiamat-automatic-parallelism-across-multiple-machines/177757/4 "2009-10-25T07:15:14Z")

</div>

James M. Lawrence wrote:

> Rajinder Y. wrote:
> 
> > James this is wicked, love what you’re doing, although I have no idea  
> > on how to use it yet =)
> > 
> > Does Tiamat work on top of Pure? Where should I start?
> 
> Yes, Tiamat is a back-end for Pure. The first step is to install it and  
> then run through the examples in the readmes. Have you tried that?

I’ve install pure (0.2.0), however I get the following error when I try  
to run  
the 1st example from the site

irb(main):001:0\> require ‘pure/dsl’  
LoadError: no such file to load – pure/dsl  
from (irb):1:in `require’  
from (irb):1

–  
Kind Regards,  
Rajinder Y.

[http://DevMentor.org](http://DevMentor.org)

Do Good! - Share Freely, Enrich and Empower people to Transform their  
lives.

---

<div class="post-metadata">

**Author:** ![noagenda](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/8c91f0/32.png) [@noagenda](https://www.ruby-forum.com/u/noagenda)\
**Post date:** [October 26, 2009, 2:52pm UTC](https://www.ruby-forum.com/t/ann-tiamat-automatic-parallelism-across-multiple-machines/177757/5 "2009-10-26T14:52:51Z")

</div>

Rajinder Y. wrote:

> James M. Lawrence wrote:
> 
> > Rajinder Y. wrote:
> > 
> > > James this is wicked, love what you’re doing, although I have no idea  
> > > on how to use it yet =)
> > > 
> > > Does Tiamat work on top of Pure? Where should I start?
> > 
> > Yes, Tiamat is a back-end for Pure. The first step is to install it and  
> > then run through the examples in the readmes. Have you tried that?
> 
> I’ve install pure (0.2.0), however I get the following error when I try  
> to run  
> the 1st example from the site
> 
> irb(main):001:0\> require ‘pure/dsl’  
> LoadError: no such file to load – pure/dsl  
> from (irb):1:in `require’  
> from (irb):1

If you installed the gem, did you require ‘rubygems’ or set the RUBYOPT  
environment variable to ‘-rrubygems’?

---

<div class="post-metadata">

**Author:** ![noagenda](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/8c91f0/32.png) [@noagenda](https://www.ruby-forum.com/u/noagenda)\
**Post date:** [October 27, 2009, 2:00am UTC](https://www.ruby-forum.com/t/ann-tiamat-automatic-parallelism-across-multiple-machines/177757/6 "2009-10-27T02:00:22Z")

</div>

James M. Lawrence wrote:

> If you installed the gem, did you require ‘rubygems’ or set the RUBYOPT  
> environment variable to ‘-rrubygems’?

Hi James, that was my problem, thank you.

I will play around with pure, it looks very promising even though I  
don’t have  
immediate use for it now I think it’s well worth getting to know.

–  
Kind Regards,  
Rajinder Y.

[http://DevMentor.org](http://DevMentor.org)

Do Good! - Share Freely, Enrich and Empower people to Transform their  
lives.
