NAME
Parallel::Simple::Dynamic - executes the block of program code in parallel on several processors
VERSION
This document describes Parallel::Simple::Dynamic version 0.0.1
SYNOPSIS
use Parallel::Simple::Dynamic;
# A list of items
my @list;
# Creat a new object
my $psd = Parallel::Simple::Dynamic->new();
# Execute the call_back subroutine in 4 parallel processes
my @result = $psd->drun( { call_back => \&call_back, parts => 4, list => \@list } );
exit;
DESCRIPTION
There are some problems in bioinformatics and other fields that can be separated into a number of parallel tasks with no dependency between them (embarrassingly parallel problem).
Parallel::Simple::Dynamic is an object-oriented module that can be used for execution of this kind of tasks in parallel on multiple processor systems. This can remarkably reduce time of running the program and solving the problem.
METHODS
- drun
-
Processes each segment of data-set in parallel on separate processor. There are three properties of
drun
method needs to be specified. list is a set of data that needs to be processed, call_back is a subroutine that needs to be executed on this set of data, and parts is a number of processors what you want to use. - partition
-
Identifies the elements for each data-segment
- calc_segments
-
Splits the set of data into separate independent segments
DEPENDENCIES
Class::Std;
Class::Std::Utils;
Parallel::Simple qw( prun );
POSIX qw(ceil);
AUTHOR
Aleksandra Markovets, <marsa@cpan.org>
Roger A Hall, <rogerhall@cpan.org>
BUGS
Please report any bugs or feature requests to bug-parallel-simple-dynamic at rt.cpan.org
, or through the web interface at http://rt.cpan.org. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
LICENSE AND COPYRIGHT
Copyright 2010 Aleksandra Markovets.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information