APPLICATIONS
Announcing MPI-HMMER
The MPI-HMMER team announced the release of MPI-HMMER. MPI-HMMER is a multiple-level optimization of the original HMMER 2.3.2 code by Sean Eddy of the HHMI Janelia Farms facility. Their implementation consists of two distinct optimizations: a portably tuned P7Viterbi function as well as an MPI implementation. Their MPI implementation is based on the original PVM HMMER code, with enhancements to improve the scalability and I/O of both hmmpfam and hmmsearch. Both optimizations are independent of one another, allowing future enhancements to be easily added and tested. The MPI implementation exhibits excellent speedups over the base PVM implementation. Further, they provide a verification mode in both hmmpfam and hmmsearch that ensures (at a cost of speed) results are returned in exactly the same order as the serial version.
Their code has been tested for stability up to 256 nodes, but should scale to as many nodes as the master node's memory allows. For 16 and 20 nodes they see timings of:
Hmmsearch rrm.hmm against uniref100.fasta, base - 3627 seconds
Hmmsearch rrm.hmm against uniref100.fasta, 20 nodes - 192 seconds
Hmmsearch rrm.hmm against uniref100.fasta, 16 nodes - 243 seconds
Hmmpfam Pfam_fs against Artemia.fa, base – 356 seconds
Hmmpfam Pfam_fs against Artemia.fa, 20 nodes – 25 seconds
Hmmpfam Pfam_fs against Artemia.fa, 16 nodes – 30 seconds
Compiling/Installing
Obtain the source from http://code.google.com/p/mpihmmer/
compile with CC=mpicc ./configure
Usage:
assuming mpirun is a part of your path and your MPI takes a -machinefile argument:
mpirun -np -machinefile ./hmmsearch --mpi
mpirun -np -machinefile ./hmmpfam --mpi
Bug reports and comments may be sent to jwalters@wayne.edu
John Paul Walters
Joseph Landman
Vipin Chaudhary