4 research outputs found
A Multi-Threaded Fast Convolver for Dynamically Parallel Image Filtering
2D convolution is a staple of digital image processing. The advent of large
format imagers makes it possible to literally ``pave'' with silicon the focal
plane of an optical sensor, which results in very large images that can require
a significant amount computation to process. Filtering of large images via 2D
convolutions is often complicated by a variety of effects (e.g.,
non-uniformities found in wide field of view instruments). This paper describes
a fast (FFT based) method for convolving images, which is also well suited to
very large images. A parallel version of the method is implemented using a
multi-threaded approach, which allows more efficient load balancing and a
simpler software architecture. The method has been implemented within in a high
level interpreted language (IDL), while also exploiting open standards vector
libraries (VSIPL) and open standards parallel directives (OpenMP). The parallel
approach and software architecture are generally applicable to a variety of
algorithms and has the advantage of enabling users to obtain the convenience of
an easy operating environment while also delivering high performance using a
fully portable code.Comment: 25 pages including color figures. Submitted to the Journal of
Parallel and Distributed Computin
MatlabMPI
The true costs of high performance computing are currently dominated by
software. Addressing these costs requires shifting to high productivity
languages such as Matlab. MatlabMPI is a Matlab implementation of the Message
Passing Interface (MPI) standard and allows any Matlab program to exploit
multiple processors. MatlabMPI currently implements the basic six functions
that are the core of the MPI point-to-point communications standard. The key
technical innovation of MatlabMPI is that it implements the widely used MPI
``look and feel'' on top of standard Matlab file I/O, resulting in an extremely
compact (~250 lines of code) and ``pure'' implementation which runs anywhere
Matlab runs, and on any heterogeneous combination of computers. The performance
has been tested on both shared and distributed memory parallel computers (e.g.
Sun, SGI, HP, IBM, Linux and MacOSX). MatlabMPI can match the bandwidth of C
based MPI at large message sizes. A test image filtering application using
MatlabMPI achieved a speedup of ~300 using 304 CPUs and ~15% of the theoretical
peak (450 Gigaflops) on an IBM SP2 at the Maui High Performance Computing
Center. In addition, this entire parallel benchmark application was implemented
in 70 software-lines-of-code, illustrating the high productivity of this
approach. MatlabMPI is available for download on the web
(www.ll.mit.edu/MatlabMPI).Comment: Download software from http://www.ll.mit.edu/MatlabMPI, 12 pages
including 7 color figures; submitted to the Journal of Parallel and
Distributed Computin