Parallel Bladeenc 0.92.1b5 review
DownloadParallel Bladeenc is a true parallel version of the Bladeenc MP3 encoder; it distributes work across CPUs to speed up MP3 encoding
|
|
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.
What's New in This Release:
Fixed minor error that caused an error message from MPICH when shutting down. Thanks to Gary Smith for pointing this out.
Parallel Bladeenc 0.92.1b5 keywords