﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>Ayende Rahien commented on Pipes and filters: The multi threaded version</title><description>See my latest post about Rhino ETL for the answer.
</description><link>http://ayende.com/3083/pipes-and-filters-the-multi-threaded-version#comment8</link><guid>http://ayende.com/3083/pipes-and-filters-the-multi-threaded-version#comment8</guid><pubDate>Wed, 16 Jan 2008 07:31:22 GMT</pubDate></item><item><title>Vijay SAnthanam commented on Pipes and filters: The multi threaded version</title><description>Hi Ayende,
  
  
I like your pipe and filter implementation, its super concise and effective.
  
  
But I'm curious how you intend to implement forks and joins into your pipe and filter pattern. I'd like to see you try this out :)
</description><link>http://ayende.com/3083/pipes-and-filters-the-multi-threaded-version#comment7</link><guid>http://ayende.com/3083/pipes-and-filters-the-multi-threaded-version#comment7</guid><pubDate>Tue, 08 Jan 2008 15:04:49 GMT</pubDate></item><item><title>Jeremy Gray commented on Pipes and filters: The multi threaded version</title><description>I've said it before but I'll say it again: you really need to go catch up on the ParallelFX libraries. The CTP is available and there are great videos on Channel9. You'll find parallel for loops, parallel foreach, parallel LINQ (over objects at the least, not sure about the others), tasks, futures, all with configurable parallelization, work-stealing, ordering, etc. It is well worth checking out, if only to help distinguish your goals and approach from theirs. It'd help us readers for that reason, too. ;)
</description><link>http://ayende.com/3083/pipes-and-filters-the-multi-threaded-version#comment6</link><guid>http://ayende.com/3083/pipes-and-filters-the-multi-threaded-version#comment6</guid><pubDate>Sun, 06 Jan 2008 18:46:36 GMT</pubDate></item><item><title>Ayende Rahien commented on Pipes and filters: The multi threaded version</title><description>Jon,
  
If I never have to write multi threaded code again, I'll be very happy.
  
See my previous response to pipelines &amp; linq in the previous thread.
  
I don't think that you can scale the syntax to be appropriate.
  
  
I would love to see myself proved wrong, however.
</description><link>http://ayende.com/3083/pipes-and-filters-the-multi-threaded-version#comment5</link><guid>http://ayende.com/3083/pipes-and-filters-the-multi-threaded-version#comment5</guid><pubDate>Sun, 06 Jan 2008 15:05:30 GMT</pubDate></item><item><title>Jon Skeet commented on Pipes and filters: The multi threaded version</title><description>Having rediscovered LINQ as pipes and filters, I think you've now rediscovered Parallel LINQ :)
  
  
Seriously, it would be worth looking into LINQ further, and the Parallel Extensions. There's a CTP available at
  
http://www.microsoft.com/downloads/details.aspx?FamilyId=E848DC1D-5BE3-4941-8705-024BC7F180BA&amp;displaylang=en
  
  
Without in any way wishing to cast aspersions on your multithreading abilities, the guys behind Parallel LINQ have spent a long time on it and are seriously smart on concurrency. I'm sure they'd value your input, too.
  
  
Jon
  
</description><link>http://ayende.com/3083/pipes-and-filters-the-multi-threaded-version#comment4</link><guid>http://ayende.com/3083/pipes-and-filters-the-multi-threaded-version#comment4</guid><pubDate>Sun, 06 Jan 2008 15:01:49 GMT</pubDate></item><item><title>Patrick Smacchia commented on Pipes and filters: The multi threaded version</title><description>In my book Practical .NET2 and C#2 I explain how to code pipeline with iterators of C#2 (keyword yield and yield break). The result is super concise syntax. For example:
  
http://www.practicaldot.net/Chapter_14/Listing_14_47.htm
  
  
And also how to compute prime numbers with pipes with not even 20 lines of code.
  
http://www.practicaldot.net/Chapter_14/Listing_14_50.htm
  
  
The whole chapter is available as an article here:
  
http://65.214.43.45/tt/articles/showarticle.tss?id=IteratorsWithC2
</description><link>http://ayende.com/3083/pipes-and-filters-the-multi-threaded-version#comment3</link><guid>http://ayende.com/3083/pipes-and-filters-the-multi-threaded-version#comment3</guid><pubDate>Sun, 06 Jan 2008 10:05:58 GMT</pubDate></item><item><title>Reshef commented on Pipes and filters: The multi threaded version</title><description>Forgot to put this link:
  
http://labs.google.com/papers/mapreduce.html
  
For the map reduce...
</description><link>http://ayende.com/3083/pipes-and-filters-the-multi-threaded-version#comment2</link><guid>http://ayende.com/3083/pipes-and-filters-the-multi-threaded-version#comment2</guid><pubDate>Sun, 06 Jan 2008 06:43:48 GMT</pubDate></item><item><title>Reshef commented on Pipes and filters: The multi threaded version</title><description>Take a look at Google's map-reduce. It really resembles what u showed here, especially the multi threaded version, except that they use it for massive computations on grids of computers. I think that with a little remoting or WCF your pipeline implementation can do something similar.
</description><link>http://ayende.com/3083/pipes-and-filters-the-multi-threaded-version#comment1</link><guid>http://ayende.com/3083/pipes-and-filters-the-multi-threaded-version#comment1</guid><pubDate>Sun, 06 Jan 2008 06:42:38 GMT</pubDate></item></channel></rss>