<?xml version='1.0'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:atom="http://www.w3.org/2005/Atom" >
<channel>
	<title><![CDATA[BOL: Many-Core Engine (MCE) for Perl example]]></title>
	<link>https://bioinformaticsonline.com/bookmarks/view/30696/many-core-engine-mce-for-perl-example?</link>
	<atom:link href="https://bioinformaticsonline.com/bookmarks/view/30696/many-core-engine-mce-for-perl-example?" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/30696/many-core-engine-mce-for-perl-example</guid>
	<pubDate>Tue, 31 Jan 2017 05:37:50 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/30696/many-core-engine-mce-for-perl-example</link>
	<title><![CDATA[Many-Core Engine (MCE) for Perl example]]></title>
	<description><![CDATA[<p><span>MCE spawns a pool of workers and therefore does not fork a new process per each element of data. Instead, MCE follows a bank queuing model. Imagine the line being the data and bank-tellers the parallel workers. MCE enhances that model by adding the ability to chunk the next n elements from the input stream to the next available worker.</span></p>
<p>CORE MODULES</p>
<p>Three modules make up the core engine for MCE.</p>
<dl><dt id="MCE::Core"><a href="https://metacpan.org/pod/MCE#MCE::Core"><span></span></a><a></a><a href="https://metacpan.org/pod/distribution/MCE/lib/MCE/Core.pod">MCE::Core</a></dt><dd>
<p>Provides the Core API for Many-Core Engine. The various MCE options are described here.</p>
</dd><dt id="MCE::Signal"><a href="https://metacpan.org/pod/MCE#MCE::Signal"><span></span></a><a></a><a href="https://metacpan.org/pod/MCE::Signal">MCE::Signal</a></dt><dd>
<p>Temporary directory creation, cleanup, and signal handling.</p>
</dd><dt id="MCE::Util"><a href="https://metacpan.org/pod/MCE#MCE::Util"><span></span></a><a></a><a href="https://metacpan.org/pod/MCE::Util">MCE::Util</a></dt><dd>
<p>Utility functions for Many-Core Engine.</p>
</dd></dl>
<p><a href="https://metacpan.org/pod/MCE#MCE-EXTRAS"><span></span></a><a></a>MCE EXTRAS</p>
<p>There are 4 add-on modules for use with MCE.</p>
<dl><dt id="MCE::Candy"><a href="https://metacpan.org/pod/MCE#MCE::Candy"><span></span></a><a></a><a href="https://metacpan.org/pod/MCE::Candy">MCE::Candy</a></dt><dd>
<p>Provides a collection of sugar methods and output iterators for preserving output order.</p>
</dd><dt id="MCE::Mutex"><a href="https://metacpan.org/pod/MCE#MCE::Mutex"><span></span></a><a></a><a href="https://metacpan.org/pod/MCE::Mutex">MCE::Mutex</a></dt><dd>
<p>Provides a simple semaphore implementation supporting threads and processes.</p>
</dd><dt id="MCE::Queue"><a href="https://metacpan.org/pod/MCE#MCE::Queue"><span></span></a><a></a><a href="https://metacpan.org/pod/MCE::Queue">MCE::Queue</a></dt><dd>
<p>Provides a hybrid queuing implementation for MCE supporting normal queues and priority queues from a single module. MCE::Queue exchanges data via the core engine to enable queuing to work for both children (spawned from fork) and threads.</p>
</dd><dt id="MCE::Relay"><a href="https://metacpan.org/pod/MCE#MCE::Relay"><span></span></a><a></a><a href="https://metacpan.org/pod/MCE::Relay">MCE::Relay</a></dt><dd>
<p>Enables workers to receive and pass on information orderly with zero involvement by the manager process while running.</p>
</dd></dl>
<p><a href="https://metacpan.org/pod/MCE#MCE-MODELS"><span></span></a><a></a>MCE MODELS</p>
<p>The models take Many-Core Engine to a new level for ease of use. Two options (chunk_size and max_workers) are configured automatically as well as spawning and shutdown.</p>
<dl><dt id="MCE::Loop"><a href="https://metacpan.org/pod/MCE#MCE::Loop"><span></span></a><a></a><a href="https://metacpan.org/pod/MCE::Loop">MCE::Loop</a></dt><dd>
<p>Provides a parallel loop utilizing MCE for building creative loops.</p>
</dd><dt id="MCE::Flow"><a href="https://metacpan.org/pod/MCE#MCE::Flow"><span></span></a><a></a><a href="https://metacpan.org/pod/MCE::Flow">MCE::Flow</a></dt><dd>
<p>A parallel flow model for building creative applications. This makes use of user_tasks in MCE. The author has full control when utilizing this model. MCE::Flow is similar to MCE::Loop, but allows for multiple code blocks to run in parallel with a slight change to syntax.</p>
</dd><dt id="MCE::Grep"><a href="https://metacpan.org/pod/MCE#MCE::Grep"><span></span></a><a></a><a href="https://metacpan.org/pod/MCE::Grep">MCE::Grep</a></dt><dd>
<p>Provides a parallel grep implementation similar to the native grep function.</p>
</dd><dt id="MCE::Map"><a href="https://metacpan.org/pod/MCE#MCE::Map"><span></span></a><a></a><a href="https://metacpan.org/pod/MCE::Map">MCE::Map</a></dt><dd>
<p>Provides a parallel map model similar to the native map function.</p>
</dd><dt id="MCE::Step"><a href="https://metacpan.org/pod/MCE#MCE::Step"><span></span></a><a></a><a href="https://metacpan.org/pod/MCE::Step">MCE::Step</a></dt><dd>
<p>Provides a parallel step implementation utilizing MCE::Queue between user tasks. MCE::Step is a spin off from MCE::Flow with a touch of MCE::Stream. This model, introduced in 1.506, allows one to pass data from one sub-task into the next transparently.</p>
</dd><dt id="MCE::Stream"><a href="https://metacpan.org/pod/MCE#MCE::Stream"><span></span></a><a></a><a href="https://metacpan.org/pod/MCE::Stream">MCE::Stream</a></dt><dd>
<p>Provides an efficient parallel implementation for chaining multiple maps and greps together through user_tasks and MCE::Queue. Like with MCE::Flow, MCE::Stream can run multiple code blocks in parallel with a slight change to syntax from MCE::Map and MCE::Grep.</p>
</dd></dl>
<p><a href="https://metacpan.org/pod/MCE#MISCELLANEOUS"><span></span></a>MISCELLANEOUS</p>
<p>Miscellaneous additions included with the distribution.</p>
<dl><dt id="MCE::Examples"><a href="https://metacpan.org/pod/MCE#MCE::Examples"><span></span></a><a></a><a href="https://metacpan.org/pod/distribution/MCE/lib/MCE/Examples.pod">MCE::Examples</a></dt><dd>
<p>Describes various demonstrations for MCE including a Monte Carlo simulation.</p>
</dd><dt id="MCE::Subs"><a href="https://metacpan.org/pod/MCE#MCE::Subs"><span></span></a><a></a><a href="https://metacpan.org/pod/MCE::Subs">MCE::Subs</a></dt><dd>
<p>Exports functions mapped directly to MCE methods; e.g. mce_wid. The module allows 3 options; :manager, :worker, and :getter.</p>
</dd></dl>
<p><a href="https://metacpan.org/pod/MCE#REQUIREMENTS"><span></span></a>REQUIREMENTS</p>
<p>Perl 5.8.0 or later. PDL::IO::Storable is required in scripts running PDL.</p>
<p><a href="https://metacpan.org/pod/MCE#SOURCE-AND-FURTHER-READING"><span></span></a><a></a>SOURCE AND FURTHER READING</p>
<p>The source, cookbook, and examples are hosted at GitHub.</p>
<ul>
<li>
<p><a href="https://github.com/marioroy/mce-perl">https://github.com/marioroy/mce-perl</a></p>
</li>
<li>
<p><a href="https://github.com/marioroy/mce-cookbook">https://github.com/marioroy/mce-cookbook</a></p>
</li>
<li>
<p><a href="https://github.com/marioroy/mce-examples">https://github.com/marioroy/mce-examples</a></p>
</li>
</ul>
<p><a href="https://metacpan.org/pod/MCE#SEE-ALSO"><span></span></a><a></a>SEE ALSO</p>
<p><code>MCE::Shared</code>&nbsp;provides data sharing capabilities for&nbsp;<code>MCE</code>. It includes&nbsp;<code>MCE::Hobo</code>&nbsp;for running code asynchronously.</p>
<ul>
<li>
<p><a href="https://metacpan.org/pod/MCE::Shared">MCE::Shared</a></p>
</li>
<li>
<p><a href="https://metacpan.org/pod/MCE::Hobo">MCE::Hobo</a></p>
</li>
</ul><p>Address of the bookmark: <a href="https://github.com/marioroy/mce-examples" rel="nofollow">https://github.com/marioroy/mce-examples</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>

</channel>
</rss>