There are 3 items remaining before releasing the final MCE 1.5.
- Document MCE::Stream
- Finish documentation on MCE::Loop
- Re-visit documentation on MCE::Flow
- Document MCE::Stream
;) mario
MCE 1.5 is backwards compatible with 1.4 and below.
The documentation, previously MCE.pod, moved to MCE::Core.pod with the
examples section placed in MCE::Examples.pod. The MCE.pod file serves
as an index page for the various documentation.IPC has been enhanced with 8 data channels. Many operations run 3x when
compared with MCE 1.4.Five models: MCE::Flow, MCE::Grep, MCE::Loop, MCE::Map, and MCE::Stream.
Hybrid queues via MCE::Queue allowing for normal and priority queues.
MCE::Subs for exporting functions prefixed with mce_; e.g. mce_wid.
All public methods can be called directly using the package name
and method e.g. MCE->wid, MCE->run.MCE->new(
max_workers => 'auto', user_func => sub { my $wid = MCE->wid; MCE->sendto("STDOUT", "Hello from $wid\n"); }
);
MCE->run;
New options (gather, interval, task_name).
The task_end option can now be specified at the top level.
See docs for use case.
Input_data can be specified inside the first task instead of having
to specify this at the top level. Input_data is ignored when specified
for tasks other than the first task.
user_tasks => [{
input_data => \@list,
...
},{
...
}
New public methods
chunk_id, gather, freeze, thaw, yield, task_name, print, printf, sayNew example (interval.pl).
Optimized the egrep.pl and wc.pl examples. These run much faster.
Try these out against large log files. Both examples fly.Barrier synchronization update. Two sockets are utilized instead of
2 lock files. This, now works wonderfully under the Cygwin environment.
For threading, the removal of 2 lock files increases the number of
threads allowed from about 1/3rd previously to under 1/2 of ulimit,
e.g. int(ulimit -n / 2 - 20).Removed the logic for determining MAX_OPEN_FILES and MAX_USER_PROCS.
MCE no longer has a constraint on max_workers allowed.Code re-factor work. Added a private method _validate_runstate called
by various methods. Organized the code slightly such as placement of
methods.Localize the input scalar $_ prior to calling userfunc. Folks can
use $ for input_data and sequence of numbers. Added section to docs
explaining DEFAULT INPUT SCALAR.