I was recently watching a huge swarm of bees gathering nectar on a flowering plant. It got me thinking about how each bee does its own little tiny job, yet they all come together to collect a lot of nectar and keep the hive going in the end. I was inspired to try and come up with a way this system could be replicated in Perl.

One idea I had was regarding the problem of finding an element in a very large array. Using two well-known techniques, this problem could be "swarmed" and solved fairly quickly. The techniques are (1) splitting the array into smaller chunks, and (2) forking. Basically, you split the array up into much smaller arrays, then fork a process (a "bee") to search each of the chunks for the item. Once the item is found, all of the "bees" stop processing and return.

What do you think of this idea? And can you think of any other ways it could be applied?

Update: I just found Proc::Swarm. While it's not identical to my concept, it's certainly similar.

---
It's all fine and dandy until someone has to look at the code.

In reply to "Swarming" by kwaping

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.