MANAGER: Don’t wait because your piece is still in pieces! Whatever you’ve concocted is sure to be a hit, and simple recipes are simple to serve up. Nor does it help to offer anything complete — your audience will only tear it apart.

POET: You don’t appreciate how low such hackwork is, or how unworthy of a genuine artist. I see that you derive your principles from the fine efforts of incompetents.

MANAGER: Your accusation doesn’t hurt my feelings; a man who wants to be effective must know the worth of proper tools.

— Goethe, Faust

I suppose one advantage of a blog is that I can answer a lot of email questions in one fell swoop.

When will HMMER3 be publicly released? The plan is for the alpha test phase to last another month or so; beta test to take another couple of months; and a 3.0 release in the summer. That’s our story, and we’re sticking to it until September.

Can I use HMMER3 in a publication now, while it’s still in a test version? Sure. But if you write a paper criticizing some obscure aspect of H3 performance that I’ve overlooked, rather than first giving me useful feedback on a freely available pre-publication test I’ve made available to you out of the open and boundless goodness of my heart, um, well, don’t expect me to buy you any beers next time I see you.

When’s the next test version (alpha2) coming? Depending on whether you ask the Marketing Promises division of the lab, or the Coding Reality division, that answer is either a) February 12; or b) Real Soon Now. See first question.


  1. Hey Sean!

    I noticed you are looking at CUDA for your eventual GPU port. Did you think about OpenCL instead? It has two advantages: (1) Apple is trying to get a number of manufactures to support it, not just nVidia and (2) code compiled for OpenCL should be “universal” in that it can run on both multi-core CPUs and GPUs. It can even run on all cores of multicore CPU and the GPU at the same time from the same code, which is what Apple is pushing.

    Apple has an implementation available to developers only, I believe.


    ryan richt



  2. I’m not aware that there’s any OpenCL implementation available yet. Spec was only finalized in Dec 2008. Am happy to be corrected!



  3. Why not do both implementations?

    My guess is that it would be safe to first develop a “C for Cuda” implementation and then also port to OpenCL once it is available. The port from Cuda to OpenCL should be easy according to Nvidia since the code should be pretty similar.



  4. Sure, I agree – but I’d have to have an OpenCL implementation to work with first. (I mean, of OpenCL itself, not of HMMER using OpenCL.) Do you know if any OpenCL implementation is available? Wiki and googling both say no.



  5. I had to confirm but, Yes!! You cannot google nor Wiki for it because you have to certify you won’t post the content or tell anyone about it and they hunt down and kill people who do, lol.

    A working implementation and Docs (~200 pages) have been out since June of 08 (yes they had it working way before Khronos approved it), its on the Snow Leopard Developer Preview DVD or “seeds” downloads. You have to be an Apple Developer and pay your $500/year to get the pre-release stuff, usually a year before its public.

    And even there, you won’t find it in the developer docs, its only in the Snow Leopard preview, so you can’t use a student or web or iPhone membership to access it, you have to be Select or Premier.

    There is also some example code.



Leave a Reply to Sean Eddy Cancel reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s