driver parallel lines
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 4158
Parallel BZIP2 1.0.2
Parallel BZIP2 project is a parallel implementation of the bzip2 block. more>>
Parallel BZIP2 project is a parallel implementation of the bzip2 block- sorting file compressor that uses pthreads and achieves near-linear speedup on SMP machines. The output of this version is fully compatible with bzip2 1.0.2 (ie: anything compressed with PBZIP2 can be decompressed with bzip2).
PBZIP2 should work on any system that has a pthreads compatible C++ compiler (such as gcc). It has been tested on: Linux, Windows (cygwin & MinGW), Solaris, Tru64/OSF1, HP-UX, and Irix.
<<lessPBZIP2 should work on any system that has a pthreads compatible C++ compiler (such as gcc). It has been tested on: Linux, Windows (cygwin & MinGW), Solaris, Tru64/OSF1, HP-UX, and Irix.
Download (0.026MB)
Added: 2007-07-26 License: BSD License Price:
828 downloads
Device::ParallelPort 1.00
Device::ParallelPort is a Parallel Port Driver for Perl. more>>
Device::ParallelPort is a Parallel Port Driver for Perl.
SYNOPSIS
my $port = Device::ParallelPort->new();
$port->set_bit(3,1);
print $port->get_bit(3) . "n";
print ord($port->get_byte(0)) . "n";
$port->set_byte(0, chr(255));
A parallel port driver module. This module provides an API to all parallel ports, by providing the ability to write any number of drivers. Modules are available for linux (both directly and via parport), win32 and a simple script version.
NOTE - This actual module is a factory class only - it is used to automatically return the correct class and has not other intelligence / purpose.
DRIVER MODULES
NOTE - You MUST load one of the drivers for your operating system before this module will correctly work - they are in separate CPAN Modules.
L - Direct hardware access to a base address.
L - Linux access to /dev/parport drivers
L - Run a script with parameters
L - Pretending byte driver for testing
L - Pretending bit driver for testing
L - Windows 32 DLL access driver
DEVICE MODULES ^
L - An example that can talk to a printer
L - Simple JayCar electronics latched, addressable controller
L - SerialFlash of bits - useful for many driver chips
<<lessSYNOPSIS
my $port = Device::ParallelPort->new();
$port->set_bit(3,1);
print $port->get_bit(3) . "n";
print ord($port->get_byte(0)) . "n";
$port->set_byte(0, chr(255));
A parallel port driver module. This module provides an API to all parallel ports, by providing the ability to write any number of drivers. Modules are available for linux (both directly and via parport), win32 and a simple script version.
NOTE - This actual module is a factory class only - it is used to automatically return the correct class and has not other intelligence / purpose.
DRIVER MODULES
NOTE - You MUST load one of the drivers for your operating system before this module will correctly work - they are in separate CPAN Modules.
L - Direct hardware access to a base address.
L - Linux access to /dev/parport drivers
L - Run a script with parameters
L - Pretending byte driver for testing
L - Pretending bit driver for testing
L - Windows 32 DLL access driver
DEVICE MODULES ^
L - An example that can talk to a printer
L - Simple JayCar electronics latched, addressable controller
L - SerialFlash of bits - useful for many driver chips
Download (0.020MB)
Added: 2007-04-12 License: Perl Artistic License Price:
928 downloads
Parallel Network Scanner 1.11
Parallel Network Scanner provides a fast network services scanner. more>>
Parallel Network Scanner provides a fast network services scanner.
pnscan is a scanner for TCP network services. It uses multithreading to increase its speed.
pnscan tries to be smart as to how many threads to start - it will dynamically start only as many as is needed to make progress in the scan - up to a maximum either as specified with the "-n" command line option, or 8 minus the maximum number of available file descriptors (pnscan tries to increase
it to the max limit automatically) - or any internal limit on the system (Linux normally only allows 256 threads).
Host ranges can be specified both as a CIDR - network name or IP address / mask bit length and as a range. When using CIDR notation - the first and last address is ignored (normally used for broadcasts)
Some examples:
192.168.0.0/24
192.160.0.1:192.160.0.254
arpanet/8
USAGE - EXAMPLES
# Scan network 192.168.0.0/24 for SSH daemons on port 22
pnscan 192.168.0.0/24 22
pnscan 192.168.0.1:192.168.0.254 ssh
# Scan hosts 192.168.10.34 ... 98 for IDENT servers, max 8 threads
pnscan -n8 -w"VERSION" 192.168.10.34:192.168.10.98 113
# Scan host 127.0.0.1 for WWW servers on all ports
pnscan -w"HEAD / HTTP/1.0rnrn" -r"Server:" 192.168.0.32 1:65525
pnscan -w"HEAD / HTTP/1.0rnrn" -r"Server:" localhost 1:65525
# Send binary data and expect the binary sequence FF 00 FF on port 145.
pnscan -W"05 5A 37" -R"FF 00 FF" 192.168.0.32 145
# Scan for Roxen servers and print the whole Server-line
pnscan -l -w"HEAD / HTTP/1.0rnrn" -r"Roxen" localhost 1:65525
# Scan for pidentd servers and try to locate the version
pnscan -w"VERSION" 192.160.0.0/24 113
# Scan network arpanet/24 for daytime servers and sort them IP-numerically
pnscan arpanet/10 daytime | ipsort
# Read host (&port) lines from stdin and scan the selected hosts for SSH
echo 192.160.10.11 ssh | pnscan -v
echo 192.160.10.12 | pnscan 22
Enhancements:
- pnscan.sgml Added the other options implemented in pnscan.c.
- pnscan.c: Modified the threads startup code to dynamically only start as many threads as is needed.
<<lesspnscan is a scanner for TCP network services. It uses multithreading to increase its speed.
pnscan tries to be smart as to how many threads to start - it will dynamically start only as many as is needed to make progress in the scan - up to a maximum either as specified with the "-n" command line option, or 8 minus the maximum number of available file descriptors (pnscan tries to increase
it to the max limit automatically) - or any internal limit on the system (Linux normally only allows 256 threads).
Host ranges can be specified both as a CIDR - network name or IP address / mask bit length and as a range. When using CIDR notation - the first and last address is ignored (normally used for broadcasts)
Some examples:
192.168.0.0/24
192.160.0.1:192.160.0.254
arpanet/8
USAGE - EXAMPLES
# Scan network 192.168.0.0/24 for SSH daemons on port 22
pnscan 192.168.0.0/24 22
pnscan 192.168.0.1:192.168.0.254 ssh
# Scan hosts 192.168.10.34 ... 98 for IDENT servers, max 8 threads
pnscan -n8 -w"VERSION" 192.168.10.34:192.168.10.98 113
# Scan host 127.0.0.1 for WWW servers on all ports
pnscan -w"HEAD / HTTP/1.0rnrn" -r"Server:" 192.168.0.32 1:65525
pnscan -w"HEAD / HTTP/1.0rnrn" -r"Server:" localhost 1:65525
# Send binary data and expect the binary sequence FF 00 FF on port 145.
pnscan -W"05 5A 37" -R"FF 00 FF" 192.168.0.32 145
# Scan for Roxen servers and print the whole Server-line
pnscan -l -w"HEAD / HTTP/1.0rnrn" -r"Roxen" localhost 1:65525
# Scan for pidentd servers and try to locate the version
pnscan -w"VERSION" 192.160.0.0/24 113
# Scan network arpanet/24 for daytime servers and sort them IP-numerically
pnscan arpanet/10 daytime | ipsort
# Read host (&port) lines from stdin and scan the selected hosts for SSH
echo 192.160.10.11 ssh | pnscan -v
echo 192.160.10.12 | pnscan 22
Enhancements:
- pnscan.sgml Added the other options implemented in pnscan.c.
- pnscan.c: Modified the threads startup code to dynamically only start as many threads as is needed.
Download (0.014MB)
Added: 2007-03-12 License: Freeware Price:
958 downloads
Parallel Bladeenc 0.92.1b5
Parallel Bladeenc is a true parallel version of the Bladeenc MP3 encoder. more>>
Parallel Bladeenc is a true parallel version of the Bladeenc MP3 encoder; it distributes work across CPUs to speed up MP3 encoding. It uses the Message Passing Interface (MPI) for parallelization across SMPs and/or multiple machines. Hence, if you have a 4-way SMP, you can encode your MP3s about 4 times as fast as the regular Bladeenc; if you have two 4-way SMPs, you can encode about 8 times as fast.
The difficult part about parallelization is typically about how to split the problem up into independent (or nearly independent) parts. The structure shown above - assuming that the encode() function was independent of previous calls to encode() - is trivial to parallelize.
For example, if we want to run on four machines, we can split the input file into four parts, give 1/4 of the file to each machine, and let each machine loop over encode() for their portion of the file. Then take the output from each machine, put it in the right order, and write it out to a single output file. Done.
With such a scheme, the more work that you throw at it, the more efficient it will become.
Hence, trying this scheme with small MP3 files will probably not result in any noticeable speedup (in fact, it may be slower than running in serial, because of the added overhead for working in parallel). It is necessary to give the parallel engine enough work to offset the overhead added by the parallel framework. Generally, this is not very much overhead (read on to find out why), but parallel is not free.
Enhancements:
- Fixed minor error that caused an error message from MPICH when shutting down. Thanks to Gary Smith for pointing this out.
<<lessThe difficult part about parallelization is typically about how to split the problem up into independent (or nearly independent) parts. The structure shown above - assuming that the encode() function was independent of previous calls to encode() - is trivial to parallelize.
For example, if we want to run on four machines, we can split the input file into four parts, give 1/4 of the file to each machine, and let each machine loop over encode() for their portion of the file. Then take the output from each machine, put it in the right order, and write it out to a single output file. Done.
With such a scheme, the more work that you throw at it, the more efficient it will become.
Hence, trying this scheme with small MP3 files will probably not result in any noticeable speedup (in fact, it may be slower than running in serial, because of the added overhead for working in parallel). It is necessary to give the parallel engine enough work to offset the overhead added by the parallel framework. Generally, this is not very much overhead (read on to find out why), but parallel is not free.
Enhancements:
- Fixed minor error that caused an error message from MPICH when shutting down. Thanks to Gary Smith for pointing this out.
Download (0.22MB)
Added: 2006-07-18 License: LGPL (GNU Lesser General Public License) Price:
1193 downloads
File::Find::Parallel 0.0.4
File::Find::Parallel allows you to traverse a number of similar directories in parallel. more>>
File::Find::Parallel allows you to traverse a number of similar directories in parallel.
SYNOPSIS
use File::Find::Parallel;
my $ffp = File::Find::Parallel->new( qw( /foo /bar ) );
print "Union:n";
my $union = $ffp->any_iterator
print " $_n" while $_ = $union->();
print "Intersection:n";
my $inter = $ffp->all_iterator
print " $_n" while $_ = $inter->();
File::Find is the ideal tool for quickly scanning a single directory. But sometimes its nice to be able to perform operations on multiple similar directories in parallel. Perhaps you need to compare the contents of two directories or convert files that are shared in more than one directory into hard links.
This module manufactures iterators that visit each file and directory in either the union or the intersection of a number of directories. Hmm. What does that mean?
Given two directory trees like this
foo
foo/a
foo/b/c
foo/d
bar
bar/a
bar/b
bar/e
you can choose to work with the intersection of the two directory structures:
.
./a
./b
That is the subdirectories and files that the foo and bar share.
Alternately you can work with the union of the two directory structures:
.
./a
./b
./b/c
./d
./e
Still not clear? Well, if you wanted to do a recursive diff on the two directories youd iterate their union so you could report files that were present in foo but missing from bar and vice-versa.
If, on the other hand you wanted to scan the directories and find all the files that are common to all of them youd iterate their intersection and receive only files and directories that were present in all the directories being scanned.
The any_iterator and all_iterator are built on a more general purpose method: want_iterator. If, for example, you want to make links between files that are found in more than one directory you might get your iterator like this:
my $iter = $ffp->want_iterator( 2 );
The apparently magic 2 reflects the fact that if youre going to be making links you need at least two files. No matter how many directories you are iterating over in parallel you will only see files and directories that appear in at least two of those directories.
File::Find::Parallel can scan any number of directories at the same time. Heres an example (on Unix systems) that returns the list of all files and directories that are contained in all home directories.
use File::Glob :glob;
use File::Find::Parallel;
my $find = File::Find::Parallel->new( bsd_glob( /home/* ) );
my @common = ( );
my $iter = $find->all_iterator;
while ( defined my $obj = $iter->() ) {
push @common, $obj;
}
print "The following files are common to ",
"all directories below /home :n";
print " $_n" for @common;
For a complete concrete example of its use see lncopies in the bin subdirectory of this distribution.
Iterators
The iterator returned by any_iterator, all_iterator or want_iterator is a code reference. Call it to get the next file or directory. When all files and directories have been returned the iterator will return undef.
Once created an iterator is independent of the File::Find::Parallel object that created it. If the object goes out of scope and is destroyed during the life of the iterator it will still function normally.
You may have many active iterators for a single File::Find::Parallel object at any time.
<<lessSYNOPSIS
use File::Find::Parallel;
my $ffp = File::Find::Parallel->new( qw( /foo /bar ) );
print "Union:n";
my $union = $ffp->any_iterator
print " $_n" while $_ = $union->();
print "Intersection:n";
my $inter = $ffp->all_iterator
print " $_n" while $_ = $inter->();
File::Find is the ideal tool for quickly scanning a single directory. But sometimes its nice to be able to perform operations on multiple similar directories in parallel. Perhaps you need to compare the contents of two directories or convert files that are shared in more than one directory into hard links.
This module manufactures iterators that visit each file and directory in either the union or the intersection of a number of directories. Hmm. What does that mean?
Given two directory trees like this
foo
foo/a
foo/b/c
foo/d
bar
bar/a
bar/b
bar/e
you can choose to work with the intersection of the two directory structures:
.
./a
./b
That is the subdirectories and files that the foo and bar share.
Alternately you can work with the union of the two directory structures:
.
./a
./b
./b/c
./d
./e
Still not clear? Well, if you wanted to do a recursive diff on the two directories youd iterate their union so you could report files that were present in foo but missing from bar and vice-versa.
If, on the other hand you wanted to scan the directories and find all the files that are common to all of them youd iterate their intersection and receive only files and directories that were present in all the directories being scanned.
The any_iterator and all_iterator are built on a more general purpose method: want_iterator. If, for example, you want to make links between files that are found in more than one directory you might get your iterator like this:
my $iter = $ffp->want_iterator( 2 );
The apparently magic 2 reflects the fact that if youre going to be making links you need at least two files. No matter how many directories you are iterating over in parallel you will only see files and directories that appear in at least two of those directories.
File::Find::Parallel can scan any number of directories at the same time. Heres an example (on Unix systems) that returns the list of all files and directories that are contained in all home directories.
use File::Glob :glob;
use File::Find::Parallel;
my $find = File::Find::Parallel->new( bsd_glob( /home/* ) );
my @common = ( );
my $iter = $find->all_iterator;
while ( defined my $obj = $iter->() ) {
push @common, $obj;
}
print "The following files are common to ",
"all directories below /home :n";
print " $_n" for @common;
For a complete concrete example of its use see lncopies in the bin subdirectory of this distribution.
Iterators
The iterator returned by any_iterator, all_iterator or want_iterator is a code reference. Call it to get the next file or directory. When all files and directories have been returned the iterator will return undef.
Once created an iterator is independent of the File::Find::Parallel object that created it. If the object goes out of scope and is destroyed during the life of the iterator it will still function normally.
You may have many active iterators for a single File::Find::Parallel object at any time.
Download (0.009MB)
Added: 2007-07-07 License: Perl Artistic License Price:
840 downloads
Parallel MPI BZIP2 0.6
Parallel MPI BZIP2 is a parallel implementation of the bzip2 block-sorting file compressor. more>>
Parallel MPI BZIP2 is a parallel implementation of the bzip2 block-sorting file compressor that uses MPI and achieves significant speedup on cluster machines.
The output of this version is fully compatible with bzip2 v1.0.2 or newer (ie: anything compressed with mpibzip2 can be decompressed with bzip2). MPIBZIP2 should work on any system that has a pthreads compatible C++ compiler (such as gcc). It has been tested on: Linux and Solaris.
NOTE: If you are looking for a parallel BZIP2 that works on multi-processor/muti-core/SMP machines, you should check out PBZIP2 which was designed for a multi-threaded shared-memory architecture.
Usage:
Run mpibzip2 for the help listing.
==================================================================
Usage: mpibzip2 [-1 .. -9] [-b#cdfktvV] < filename > < filename2 > < filenameN >
-b#: where # is the file block size in 100k (default 9 = 900k)
-c : output to standard out (stdout)
-d : decompress file
-f : force, overwrite existing output file
-k : keep input file, dont delete
-t : test compressed file integrity
-v : verbose mode
-V : display version info for mpibzip2 then exit
-1 .. -9 : set BWT block size to 100k .. 900k (default 900k)
Example: mpibzip2 -b15k myfile.tar
Example: mpibzip2 -v -5 myfile.tar second*.txt
Example: mpibzip2 -d myfile.tar.bz2
<<lessThe output of this version is fully compatible with bzip2 v1.0.2 or newer (ie: anything compressed with mpibzip2 can be decompressed with bzip2). MPIBZIP2 should work on any system that has a pthreads compatible C++ compiler (such as gcc). It has been tested on: Linux and Solaris.
NOTE: If you are looking for a parallel BZIP2 that works on multi-processor/muti-core/SMP machines, you should check out PBZIP2 which was designed for a multi-threaded shared-memory architecture.
Usage:
Run mpibzip2 for the help listing.
==================================================================
Usage: mpibzip2 [-1 .. -9] [-b#cdfktvV] < filename > < filename2 > < filenameN >
-b#: where # is the file block size in 100k (default 9 = 900k)
-c : output to standard out (stdout)
-d : decompress file
-f : force, overwrite existing output file
-k : keep input file, dont delete
-t : test compressed file integrity
-v : verbose mode
-V : display version info for mpibzip2 then exit
-1 .. -9 : set BWT block size to 100k .. 900k (default 900k)
Example: mpibzip2 -b15k myfile.tar
Example: mpibzip2 -v -5 myfile.tar second*.txt
Example: mpibzip2 -d myfile.tar.bz2
Download (0.018MB)
Added: 2007-07-25 License: BSD License Price:
823 downloads
kparalleleport 1.1
kparalleleport is a program for programmers who wish to use the parallel port. more>>
kparalleleport is a program for programmers who wish to use the parallel port.
The project makes it possible to view the values registered or read on the parallel port.
<<lessThe project makes it possible to view the values registered or read on the parallel port.
Download (0.098MB)
Added: 2007-02-12 License: GPL (GNU General Public License) Price:
984 downloads
PDL::Parallel::MPI 0.02
PDL::Parallel::MPI Perl module contains routines to allow PDL objects to be moved around on parallel systems using the MPI lib. more>>
PDL::Parallel::MPI Perl module contains routines to allow PDL objects to be moved around on parallel systems using the MPI library.
SYNOPSIS
use PDL;
use PDL::Parallel::MPI;
mpirun(2);
MPI_Init();
$rank = get_rank();
$a=$rank * ones(2);
print "my rank is $rank and $a is $an";
$a->move( 1 => 0);
print "my rank is $rank and $a is $an";
MPI_Finalize();
MPI STANDARD CALLS
Most of the functions from the MPI standard may be used from this module on regular perl data. This is functionallity inherited from the Parallel::MPI module. Read the documentation for Parallel::MPI to see how to use.
One may mix mpi calls on perl built-in-datatypes and mpi calls on piddles.
use PDL;
use PDL::Parallel::MPI;
mpirun(2);
MPI_Init();
$rank = get_rank();
$pi = 3.1;
if ($rank == 0) {
MPI_Send($pi,1,MPI_DOUBLE,1,0,MPI_COMM_WORLD);
} else {
$message = zeroes(1);
$message->receive(0);
print "pi is $messagen";
}
MPI_Finalize();
<<lessSYNOPSIS
use PDL;
use PDL::Parallel::MPI;
mpirun(2);
MPI_Init();
$rank = get_rank();
$a=$rank * ones(2);
print "my rank is $rank and $a is $an";
$a->move( 1 => 0);
print "my rank is $rank and $a is $an";
MPI_Finalize();
MPI STANDARD CALLS
Most of the functions from the MPI standard may be used from this module on regular perl data. This is functionallity inherited from the Parallel::MPI module. Read the documentation for Parallel::MPI to see how to use.
One may mix mpi calls on perl built-in-datatypes and mpi calls on piddles.
use PDL;
use PDL::Parallel::MPI;
mpirun(2);
MPI_Init();
$rank = get_rank();
$pi = 3.1;
if ($rank == 0) {
MPI_Send($pi,1,MPI_DOUBLE,1,0,MPI_COMM_WORLD);
} else {
$message = zeroes(1);
$message->receive(0);
print "pi is $messagen";
}
MPI_Finalize();
Download (0.13MB)
Added: 2007-07-07 License: Perl Artistic License Price:
843 downloads
Parallel Port Make 0.22
Parallel Port Make can build FreeBSD ports in parallel to fully take advantage of modern multi-core and processor machine. more>>
Parallel Port Make project is a tool to build FreeBSD ports in parallel to fully take advantage of modern multi-core and processor machines.
Default: pportmake.py --clean -- cleanup --install -job=2 [port1] [portn]
Example: pportmake.py irc/irssi irc/epic
Advanced: pportmake.py -rSvD -j 10 irc/irssi
-h --help Show this help usage message
-c --clean Clean port before compiling
-C --cleanup Clean port after compiling
-d --deinstall Deinstall ports, implied by reinstall
-f --force Force a port and all dependancies to be installed
-G --noconfig Dont recursively configure options
-i --install Install port (default)
-j n --jobs=n Number of threads to use, 1 or 2 per CPU core
is recommended
Default is 2
-O args --options=foo List of arguments to pass to make.
E.g. -O -DX11=yes -DFOO
-r --reinstall Reinstall port and ALL dependancies
-S --maxspeed Try and speed up by maximising CPU usuage.
This may break some ports, use with caution
-w --noclean Dont make clean before compiling
-W --nocleanup Dont make clean after compiling
-v --verbose Be extra verbose
-V --version Show version information
-D --debug Show some debugging info
-P --pretend Dont actually alter the ports
NOTES: It is currently only safe to run 1 copy of this and not have other ports compiling simultaneously
<<lessDefault: pportmake.py --clean -- cleanup --install -job=2 [port1] [portn]
Example: pportmake.py irc/irssi irc/epic
Advanced: pportmake.py -rSvD -j 10 irc/irssi
-h --help Show this help usage message
-c --clean Clean port before compiling
-C --cleanup Clean port after compiling
-d --deinstall Deinstall ports, implied by reinstall
-f --force Force a port and all dependancies to be installed
-G --noconfig Dont recursively configure options
-i --install Install port (default)
-j n --jobs=n Number of threads to use, 1 or 2 per CPU core
is recommended
Default is 2
-O args --options=foo List of arguments to pass to make.
E.g. -O -DX11=yes -DFOO
-r --reinstall Reinstall port and ALL dependancies
-S --maxspeed Try and speed up by maximising CPU usuage.
This may break some ports, use with caution
-w --noclean Dont make clean before compiling
-W --nocleanup Dont make clean after compiling
-v --verbose Be extra verbose
-V --version Show version information
-D --debug Show some debugging info
-P --pretend Dont actually alter the ports
NOTES: It is currently only safe to run 1 copy of this and not have other ports compiling simultaneously
Download (0.005MB)
Added: 2007-01-16 License: BSD License Price:
1013 downloads
Parallel::Pvm 1.4.0
Parallel::Pvm is a Perl extension for the Parallel Virtual Machine (PVM) Message Passing System. more>>
Parallel::Pvm is a Perl extension for the Parallel Virtual Machine (PVM) Message Passing System.
SYNOPSIS
use Parallel::Pvm;
The PVM message passing system enables a programmer to configure a group of (possibly heterogenous) computers connected by a network into a parallel virtual machine. The system was developed by the University of Tennessee, Oak Ridge National Laboratory and Emory University.
Using PVM, applications can be developed which spawns parallel processes onto nodes in the virtual machine to perform specific tasks. These parallel tasks can also periodically exchange information using a set of message passing functions developed for the system.
PVM applications have mostly been developed in the scientific and engineering fields. However applications for real-time and client/server systems can also be developed. PVM simply provides a convenient way for managing parallel tasks and communications without need for rexec or socket level programming.
As a utility, PVM enables an organisation to leverage on the computers already available for parallel processing. Parallel applications can be started during non-peak hours to utilise idle CPU cycles. Or dedicated workstation clusters connected via a high performance network like ATM can be used for high performance computing.
It is recommended that you read the PVM manual pages and the book "PVM: Parallel Virtual Machine, A userss guide and tutorial for networked parallel computing". Both the PVM system and the book can be obtained from the HTTP address http://www.epm.ornl.gov/pvm.
For the rest of this document we will provide a tutorial introduction to developing PVM applications using perl. The interface for some of the PVM functions have been changed of course to give it a more perl-like feel.
Remember think perl think parallel! Good Luck!
<<lessSYNOPSIS
use Parallel::Pvm;
The PVM message passing system enables a programmer to configure a group of (possibly heterogenous) computers connected by a network into a parallel virtual machine. The system was developed by the University of Tennessee, Oak Ridge National Laboratory and Emory University.
Using PVM, applications can be developed which spawns parallel processes onto nodes in the virtual machine to perform specific tasks. These parallel tasks can also periodically exchange information using a set of message passing functions developed for the system.
PVM applications have mostly been developed in the scientific and engineering fields. However applications for real-time and client/server systems can also be developed. PVM simply provides a convenient way for managing parallel tasks and communications without need for rexec or socket level programming.
As a utility, PVM enables an organisation to leverage on the computers already available for parallel processing. Parallel applications can be started during non-peak hours to utilise idle CPU cycles. Or dedicated workstation clusters connected via a high performance network like ATM can be used for high performance computing.
It is recommended that you read the PVM manual pages and the book "PVM: Parallel Virtual Machine, A userss guide and tutorial for networked parallel computing". Both the PVM system and the book can be obtained from the HTTP address http://www.epm.ornl.gov/pvm.
For the rest of this document we will provide a tutorial introduction to developing PVM applications using perl. The interface for some of the PVM functions have been changed of course to give it a more perl-like feel.
Remember think perl think parallel! Good Luck!
Download (0.019MB)
Added: 2007-04-18 License: Perl Artistic License Price:
931 downloads
Berkeley Unified Parallel C 2.4.0
Berkeley Unified Parallel C (UPC) is an extension of the C programming language. more>>
Unified Parallel C, in short UPC, is an extension of the C programming language designed for high performance computing on large-scale parallel machines.
The language provides a uniform programming model for both shared and distributed memory hardware.
The programmer is presented with a single shared, partitioned address space, where variables may be directly read and written by any processor, but each variable is physically associated with a single processor.
UPC uses a Single Program Multiple Data (SPMD) model of computation in which the amount of parallelism is fixed at program startup time, typically with a single thread of execution per processor.
Whats New in This Release:
- Add initial native support for the Cray XT3 via new portals network
- Implement the GASP 1.5 performance instrumentation interface, supporting the
Parallel Performance Wizard (PPW) and other third-party profiling tools.
- Add bupc_ticks_to_ns() - finer granularity timer query
- Add the Berkeley implementations of the UPC collectives and UPC-IO to GCCUPC+UPCR
- Add most of the Berkeley UPC library extensions to GCCUPC+UPCR
- Add upcdecl command-line tool (also online at: http://upc.lbl.gov/upcdecl)
- Add support for alloca() and stdarg.h
- Performance improvements to the BUPC semaphore library for signalling store
- Add bupc_thread_distance() - runtime thread layout query for hierarchical systems
- Add a remote fetch-and-add UPC library extension (initially just for 64-bit ints)
- Allow configure-time tuning of bit distribution in packed pointer-to-shared rep
- Fix the following notable bugs in 2.2.2 (see http://upc-bugs.lbl.gov for details):
- bug525: optimizer crashes on Tru64/CompaqC for libgasnet
- bug1229: More robust preprocessing on Compaq C
- bug1389: ansi-aliasing violations on small local put/get copies
- bug1531: improved lock fairness to remote lock requests
- bug1594: timer inaccuracies on Cray X1E
- bug1645: preprocess-time failure Backslash found where operator expected
- bug1657: PACKAGE_* symbols exposed to UPC code on GCCUPC+UPCR
- bug1683: improve upcrun handling of -shared-heap-max
- bug 1743: More robust behavior when backend C compiler changes
- Improved SRV-based DNS failover for upcc HTTP translation
- Add gzip compression to HTTP netcompile, for faster compiles over slow links
- Improved robustness for SSH netcompile to handle stray output from dotfiles
- Numerous misc minor bug fixes
<<lessThe language provides a uniform programming model for both shared and distributed memory hardware.
The programmer is presented with a single shared, partitioned address space, where variables may be directly read and written by any processor, but each variable is physically associated with a single processor.
UPC uses a Single Program Multiple Data (SPMD) model of computation in which the amount of parallelism is fixed at program startup time, typically with a single thread of execution per processor.
Whats New in This Release:
- Add initial native support for the Cray XT3 via new portals network
- Implement the GASP 1.5 performance instrumentation interface, supporting the
Parallel Performance Wizard (PPW) and other third-party profiling tools.
- Add bupc_ticks_to_ns() - finer granularity timer query
- Add the Berkeley implementations of the UPC collectives and UPC-IO to GCCUPC+UPCR
- Add most of the Berkeley UPC library extensions to GCCUPC+UPCR
- Add upcdecl command-line tool (also online at: http://upc.lbl.gov/upcdecl)
- Add support for alloca() and stdarg.h
- Performance improvements to the BUPC semaphore library for signalling store
- Add bupc_thread_distance() - runtime thread layout query for hierarchical systems
- Add a remote fetch-and-add UPC library extension (initially just for 64-bit ints)
- Allow configure-time tuning of bit distribution in packed pointer-to-shared rep
- Fix the following notable bugs in 2.2.2 (see http://upc-bugs.lbl.gov for details):
- bug525: optimizer crashes on Tru64/CompaqC for libgasnet
- bug1229: More robust preprocessing on Compaq C
- bug1389: ansi-aliasing violations on small local put/get copies
- bug1531: improved lock fairness to remote lock requests
- bug1594: timer inaccuracies on Cray X1E
- bug1645: preprocess-time failure Backslash found where operator expected
- bug1657: PACKAGE_* symbols exposed to UPC code on GCCUPC+UPCR
- bug1683: improve upcrun handling of -shared-heap-max
- bug 1743: More robust behavior when backend C compiler changes
- Improved SRV-based DNS failover for upcc HTTP translation
- Add gzip compression to HTTP netcompile, for faster compiles over slow links
- Improved robustness for SSH netcompile to handle stray output from dotfiles
- Numerous misc minor bug fixes
Download (MB)
Added: 2006-11-18 License: BSD License Price:
1072 downloads
Parallel::Queue 1.00
Parallel::Queue is a Perl module to fork or thread a list of closures N-way parallel. more>>
Parallel::Queue is a Perl module to fork or thread a list of closures N-way parallel.
SYNOPSIS
# example queue:
# only squish files larger than 8KB in size. figure
# that the system can handle four copies of squish
# running at the same time without them interfering
# with one another.
my @queue = map { -s > 8192 ? sub{ squish $_ } : () } @filz;
# functional: pass in the count and list of coderefs.
#
# adding runqueue exports the subroutine into
# the current package. useful for non-OO situations.
#
# run the queue 4 way parallel.
use Parallel::Queue qw( runqueue verbose fork );
my @remaining = runqueue 4, @queue;
die "Incomplete jobs" if @remaining;
# OO: generate queue manager and use without the
# runqueue arguments, construct a queue manager,
# and use it to run the jobs
use Parallel::Queue;
my $quemgr = Parallel::Queue->construct( thread );
$quemgr->runqueue( 4, @queue );
die "Incomplete jobs" if @queue;
# call Parallel::Queue with the default configuration
# (fork quietly).
require Parallel::Queue;
Parallel::Queue->runqueue( 4, @queue );
# pre-define defaults for the objects: leave
# out runqueue, set the rest, and construct
# an object. the one here gets verbose, thread,
# and debug all set to true.
use Parallel::Queue qw( verbose thread );
my $quemgr = Parallel::Queue->construct( debug );
my @remaining = $quemgr->runqueue( 4, @queue );
Given a count and an array of coderefs (most likely closures), runqueue will run the jobs in parallel. The jobs can be run via fork or detached threads [see known issues for threading]. Jobs on the queue are executed until one of them exits non-zero, the fork/thread operation fails, or all of them are dispatched (i.e., the queue is empty).
<<lessSYNOPSIS
# example queue:
# only squish files larger than 8KB in size. figure
# that the system can handle four copies of squish
# running at the same time without them interfering
# with one another.
my @queue = map { -s > 8192 ? sub{ squish $_ } : () } @filz;
# functional: pass in the count and list of coderefs.
#
# adding runqueue exports the subroutine into
# the current package. useful for non-OO situations.
#
# run the queue 4 way parallel.
use Parallel::Queue qw( runqueue verbose fork );
my @remaining = runqueue 4, @queue;
die "Incomplete jobs" if @remaining;
# OO: generate queue manager and use without the
# runqueue arguments, construct a queue manager,
# and use it to run the jobs
use Parallel::Queue;
my $quemgr = Parallel::Queue->construct( thread );
$quemgr->runqueue( 4, @queue );
die "Incomplete jobs" if @queue;
# call Parallel::Queue with the default configuration
# (fork quietly).
require Parallel::Queue;
Parallel::Queue->runqueue( 4, @queue );
# pre-define defaults for the objects: leave
# out runqueue, set the rest, and construct
# an object. the one here gets verbose, thread,
# and debug all set to true.
use Parallel::Queue qw( verbose thread );
my $quemgr = Parallel::Queue->construct( debug );
my @remaining = $quemgr->runqueue( 4, @queue );
Given a count and an array of coderefs (most likely closures), runqueue will run the jobs in parallel. The jobs can be run via fork or detached threads [see known issues for threading]. Jobs on the queue are executed until one of them exits non-zero, the fork/thread operation fails, or all of them are dispatched (i.e., the queue is empty).
Download (0.008MB)
Added: 2007-04-18 License: Perl Artistic License Price:
919 downloads
Parallel Virtual File System 1.6.3
Parallel Virtual File System is a parallel file system for clusters of PCs more>>
The goal of the Parallel Virtual File System (PVFS) Project is to explore the design, implementation, and uses of parallel I/O. PVFS serves as both a platform for parallel I/O research as well as a production file system for the cluster computing community. PVFS is currently targeted at clusters of workstations, or Beowulfs.
The PVFS project is conducted jointly between The Parallel Architecture Research Laboratory at Clemson University and The Mathematics and Computer Science Division at Argonne National Laboratory.
Additional funding for the PVFS project comes from NASA Goddard Space Flight Center Code 930 and The National Computational Science Alliance through the National Science Foundations Partnerships for Advanced Computational Infrastructure.
Main features:
- Compatibility with existing binaries
- Ease of installation
- User-controlled striping of files across nodes
- Multiple interfaces, including a MPI-IO interface via ROMIO
- Utilizes commodity network and storage hardware
PVFS supports the UNIX I/O interface and allows existing UNIX I/O programs to use PVFS files without recompiling. The familiar UNIX file tools (ls, cp, rm, etc.) will all operate on PVFS files and directories as well. This is accomplished via a Linux kernel module which is provided as a separate package.
PVFS is easy to install. The Quick Start page describes how to set up a simple installation. Scripts and test applications are included to help with configuration, testing for correct operation, and performance evaluation.
PVFS stripes file data across multiple disks in different nodes in a cluster. By spreading out file data in this manner, larger files can be created, potential bandwidth is increased, and network bottlenecks are minimized. A 64-bit interface is implemented as well, allowing large (more than 2GB) files to be created and accessed.
Enhancements:
- fixes to build under redhat 2.4.20-20.9 kernel
- checks for missing headers on ancient 2.4 kernels
- removal of unused fields from metadata and control messages
- updated pvfsd rc file
- handle various combinations of redhat kernel patches
- fixes to kpvfsd that had previously been fixed in user space
- fix for sftp directory reading problems
- fix to avoid oopses on clients when bad errno values returned
- adjustments to deal wiht gcc 3.4.0 issues
- fixes to work with redhat 9
- fixes to compile kernel code for xx86_64
- updated logging intrastructure
- fixes to error reporting
- update of makefile in pvfs core
- fix to bug in pvfs_open.c where pcount < 0 caused errors
- removed duplicated code in mgr
- fix for problem with bvrecv() optimization
- more unused code removal
- adjustments to keep portland group compiler happy
- removed sd_path from metadata
- new iod.rc and mgr.rc files
- fixes to chmod
- fixes to get correct fs_ino back to clients
- multiple mtime fixes
- streamlined pvfs file detection
- shared library building
- fixed closing socket bug in iod
- reordered messaging in mgr to iods to improve concurrency
- rename fix
- improved metadata file checking
- do_access permission fixes
- fix for "iod out of space" client hang
- cleaner dead socket handling, including special handling of case where mgr would close fds that clients were using
- noninteractive mkmgrconf
<<lessThe PVFS project is conducted jointly between The Parallel Architecture Research Laboratory at Clemson University and The Mathematics and Computer Science Division at Argonne National Laboratory.
Additional funding for the PVFS project comes from NASA Goddard Space Flight Center Code 930 and The National Computational Science Alliance through the National Science Foundations Partnerships for Advanced Computational Infrastructure.
Main features:
- Compatibility with existing binaries
- Ease of installation
- User-controlled striping of files across nodes
- Multiple interfaces, including a MPI-IO interface via ROMIO
- Utilizes commodity network and storage hardware
PVFS supports the UNIX I/O interface and allows existing UNIX I/O programs to use PVFS files without recompiling. The familiar UNIX file tools (ls, cp, rm, etc.) will all operate on PVFS files and directories as well. This is accomplished via a Linux kernel module which is provided as a separate package.
PVFS is easy to install. The Quick Start page describes how to set up a simple installation. Scripts and test applications are included to help with configuration, testing for correct operation, and performance evaluation.
PVFS stripes file data across multiple disks in different nodes in a cluster. By spreading out file data in this manner, larger files can be created, potential bandwidth is increased, and network bottlenecks are minimized. A 64-bit interface is implemented as well, allowing large (more than 2GB) files to be created and accessed.
Enhancements:
- fixes to build under redhat 2.4.20-20.9 kernel
- checks for missing headers on ancient 2.4 kernels
- removal of unused fields from metadata and control messages
- updated pvfsd rc file
- handle various combinations of redhat kernel patches
- fixes to kpvfsd that had previously been fixed in user space
- fix for sftp directory reading problems
- fix to avoid oopses on clients when bad errno values returned
- adjustments to deal wiht gcc 3.4.0 issues
- fixes to work with redhat 9
- fixes to compile kernel code for xx86_64
- updated logging intrastructure
- fixes to error reporting
- update of makefile in pvfs core
- fix to bug in pvfs_open.c where pcount < 0 caused errors
- removed duplicated code in mgr
- fix for problem with bvrecv() optimization
- more unused code removal
- adjustments to keep portland group compiler happy
- removed sd_path from metadata
- new iod.rc and mgr.rc files
- fixes to chmod
- fixes to get correct fs_ino back to clients
- multiple mtime fixes
- streamlined pvfs file detection
- shared library building
- fixed closing socket bug in iod
- reordered messaging in mgr to iods to improve concurrency
- rename fix
- improved metadata file checking
- do_access permission fixes
- fix for "iod out of space" client hang
- cleaner dead socket handling, including special handling of case where mgr would close fds that clients were using
- noninteractive mkmgrconf
Download (0.23MB)
Added: 2005-04-08 License: GPL (GNU General Public License) Price:
1659 downloads
Randomize Lines 0.2.6
Randomize Lines (rl) is a command-line tool that reads lines from an input file or stdin. more>>
Randomize Lines (rl) is a command-line tool that reads lines from an input file or stdin, randomizes the lines and outputs a specified number of lines. It does this with only a single pass over the input while trying to use as little memory as possible.
I wrote rl in my spare time mainly to be able to select a random audio file to play when my toast is done (script in combination with find and sleep). Another reason was to familiarize myself with autoconf and friends.
The most recent version of this page can be found at http://ch.tudelft.nl/~arthur/rl/.
Warning: rl is software in development. The command line options and default behavior may change between releases.
Another Warning: I have mostly lost interest in this project and am not planning on doing much development on it any more. I will however still accept patches and fix important bugs (this more or less contradicts the previous warning).
Enhancements:
- A dangerous example was removed from the manual page and was replaced by several benign ones.
<<lessI wrote rl in my spare time mainly to be able to select a random audio file to play when my toast is done (script in combination with find and sleep). Another reason was to familiarize myself with autoconf and friends.
The most recent version of this page can be found at http://ch.tudelft.nl/~arthur/rl/.
Warning: rl is software in development. The command line options and default behavior may change between releases.
Another Warning: I have mostly lost interest in this project and am not planning on doing much development on it any more. I will however still accept patches and fix important bugs (this more or less contradicts the previous warning).
Enhancements:
- A dangerous example was removed from the manual page and was replaced by several benign ones.
Download (0.12MB)
Added: 2007-06-15 License: GPL (GNU General Public License) Price:
861 downloads
DS1624 parallel port thermometer 0.4
DS1624 parallel port thermometer is a simple driver for a thermometer device. more>>
DS1624 parallel port thermometer is a simple driver for a thermometer device based on DS1624 and connected to the computer via one of the parallel ports.
The hardware board is inspired by a project by Christophe G.
Enhancements:
- A parallel port to I2C converter schematic was added.
- The project page was cleaned up.
<<lessThe hardware board is inspired by a project by Christophe G.
Enhancements:
- A parallel port to I2C converter schematic was added.
- The project page was cleaned up.
Download (0.006MB)
Added: 2005-12-27 License: GPL (GNU General Public License) Price:
1407 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above driver parallel lines search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed