The main reason I use Altivec is to improve the performance of our Molecular Dynamics package Gromacs on Apple computers. I've had great help from Apple in doing this, and Gromacs is now Altivec-accelerated by default on any platform that supports it. Molecular Dynamics is however by definition very hard to vectorize, so just for fun I wanted to try optimizing an easier application.
Hidden Markov Models provide a more sensitive way of searching databases compared to simple algorithms like BLAST. Unfortunately they are also much slower, but BLAST cannot detect most distant similarities. The most commonly used program for HMM searches is HMMer by Sean Eddy, and since it is distributed under the GNU General Public License I decided to have a go at rewriting the core routines in Altivec.
Actually, things went way better than I could ever imagine. After 2-3 days of work the hmmsearch program was almost 9 times faster compared to the non-altivec version, and 6-7 times faster than x86 versions. (Here are some benchmarks for hmmsearch and hmmpfam). I've contributed these routines back to Sean Eddy, and they will appear as an optional configuration parameter in the next released version of HMMer.
Until then, you can get the source tarball here: hmmer-2.2g-altivec.tar.gz
If you are having problems downloading it, make sure you don't use a web browser (e.g. netscape) that uncompresses the file on the fly. If you do, you might have to ask your local system guru for help...
Please note that neither I or Sean can provide support, but the changes are very minor, so it should not be more complicated to install than the normal non-altivec version. Normally you should only have to open a terminal (locate the file) and type:
$> tar -xzvf hmmer-2.2g-altivec.tar.gz $> cd hmmer-2.2g-altivec $> ./configure $> make
That's it. The binaries should be present in hmmer-2.2g-altivec/binaries. Consult the HMM website for more information!
You can reach me as: lindahl (at) stanford (dot) edu.
(But again, please understand that I cannot provide support for HMMer)