<div dir="ltr">There's a reasonable collection of resources here for parallel patterns:<div><br></div><div><a href="http://www.cs.uiuc.edu/homes/snir/PPP/">http://www.cs.uiuc.edu/homes/snir/PPP/</a><br></div><div><br></div>
<div>POSA2 probably has the most accessible and well known concurrency patterns:</div><div><br></div><div><a href="http://www.cs.wustl.edu/~schmidt/POSA/POSA2/">http://www.cs.wustl.edu/~schmidt/POSA/POSA2/</a></div><div><br>
</div><div>POSA4 has a reasonable set for distributed systems, at least the well known patterns:</div><div><br></div><div><a href="http://www.dre.vanderbilt.edu/~schmidt/POSA4-TOC.pdf">http://www.dre.vanderbilt.edu/~schmidt/POSA4-TOC.pdf</a><br>
<br></div><div>Another good one is The Art of Multiprocessor Programming:</div><div><br></div><div><a href="http://www.amazon.com/Art-Multiprocessor-Programming-ebook/dp/B00245A4U0">http://www.amazon.com/Art-Multiprocessor-Programming-ebook/dp/B00245A4U0</a><br>
</div><div><br></div><div>Naming sucks though. An audience with Java/JVM experience may know of</div><div>the LMAX Disruptor and maybe the coalescing ring buffer but that level of</div><div>detail may be too audience specific. Or, being general, these are just queue</div>
<div>variants.</div><div><br></div><div>Forgetting the patterns for a minute. Making sure Amdahl, Little and Moore's laws</div><div>are known and understood would be a good start. Possibly with explaining what</div><div>
being concurrent, parallel or simultaneous means. Good foundations irrespective</div><div>of the terminology ultimately chosen...</div><div><br></div><div>Cheers,</div><div><br></div><div>Darach.</div><div><br></div><div>
<br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Feb 19, 2014 at 10:48 PM, Miles Fidelman <span dir="ltr"><<a href="mailto:mfidelman@meetinghouse.net" target="_blank">mfidelman@meetinghouse.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">Joe Armstrong wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Ptolemy and his mates thought the planets moved in epicyles, they make wonderful drawings<br>
of this, and gave examples - trouble was they were all wrong. Good old Kepler put them<br>
right with a few equations.<br>
</blockquote>
<br></div>
Of course the numerical algorithms used to produce navigational tables look suspiciously like cycles and epicycles :-)<div class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
I would be interested to hear what name people suggest, but I'm<br>
afraid there's about as many concurrency patterns as there are<br>
possible combinations.<br>
<br>
<br>
Yes - but names like gen_server supervisor, gen_fsm are useful to express designs (to people who know<br>
OTP) but we need more well know names<br>
</blockquote>
<br></div>
how about supervisor and finite state machine - pretty standard terminology<div class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I suggest calling the DNS pattern Howard and the load<br>
balancer-replacement pattern Clementine.<br>
<br>
<br>
?<br>
<br>
</blockquote></div>
How about Fred (as in "Let Fred do it" - the generic autopilot), or George (as in "I'll love him, and hug him, and call him George.") :-)<br>
<br>
Cheers,<br>
<br>
Miles<div class="im HOEnZb"><br>
<br>
-- <br>
In theory, there is no difference between theory and practice.<br>
In practice, there is. .... Yogi Berra<br>
<br></div><div class="HOEnZb"><div class="h5">
______________________________<u></u>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br></div>