[mira_talk] Re: MIRA GPU

  • From: Bastien Chevreux <bach@xxxxxxxxxxxx>
  • To: mira_talk@xxxxxxxxxxxxx
  • Date: Sat, 25 Apr 2009 11:46:43 +0200

On Thursday 23 April 2009 Frank Huiskamp wrote:
> For my MSc thesis I'm working on GPU programming and in agreement with
> my supervisor we have decided to see how MIRA can be optimized for GPUs.
> Reading through the PhD thesis I was wondering how the described
> algorithms are still implemented in the current MIRA versions. The
> DNASAND and ZEBRA algorithm for example. I assume this is the skim part?
> I found no reference to either algorithm names in the code and

Hello Frank,

sorry for the late reply. Had to fight a bit to get a new 24" monitor working 
right.

DNASAND and ZEBRA were put to rest some time ago. Unfortunately, SKIM didn't 
make it into the thesis. The SKIM code is in skim.C and .H and the call-chain 
is this: 
  mira->Assembly::assemble()->Assembly::findPossibleOverlaps()->Skim::skimGo()

> unfortunately the code is not well documented.

That part of the sentence is an euphemism :-)

> I was also wondering if you had the time already to extract the numbers
> I asked for last month?
> [...]
> Of course, if anybody else has any benchmark results on big data sets I
> would love to see them and get a better idea on where the bottlenecks in
> MIRA are.

Even better, Davide posted a log to this link of a complete run with 280k 454 
reads. It's not a huge data set but big enough I suppose. In case you don't 
have it anymore, I can send it to you. You will need a bit of footwork, but 
the numbers are all there (with date stamps before and after running):
  SKIM: Search for "Searching for possible overlaps"
  Banded-SW: Search for "Making alignments"

Please note that SKIM changed quite a lot since the 2.8.3 version and the 
alignment computation takes short-cuts by not computing 100% matches. The 
banded SW also changed a bit I think, I need to look up.

> I've managed to compile Mira with the -pg
> options and got some gprofiler results on the demo data sets. These
> don't seem very representative as they all finish within 30 seconds.
> Nevertheless it seems that computeBSimMatrix takes without a doubt most
> of the time. Is this the banded SW algorithm as described in your PhD
> thesis?

Yes.

> Having read part of your thesis I do think we can gain profit here from
> using the GPU. I will need to have a closer look on the algorithm,
> current SW GPU/SIMD implementations and the CUDA architecture to see how
> your algorithm can be ported to the GPU.

Is that architecture valid for both NVidia and ATI cards?

> The Skim part is also a very suitable candidate to transfer to the GPU,
> but if this doesn't take much time already it wouldn't be worth the time
> to transfer it. I have not yet looked into the other algorithms being used.

E.g., ~820k FLX reads of a "normal" non-repetitive bacterium are skimmed in 
4:20 minutes (4 threads, i940). On the other hand, ugly repeats can wreak 
havoc: 360k FLX reads can take 75 minutes (unknown CPU, 2 threads), but most 
of the time there is spent checking whether it's a true hit or a spurious one.


In other news, I hope to be able to publish the code 2.9.x code (well, it's 
almost 3.0) in late June.

Regards,
  Bastien


-- 
You have received this mail because you are subscribed to the mira_talk mailing 
list. For information on how to subscribe or unsubscribe, please visit 
http://www.chevreux.org/mira_mailinglists.html

Other related posts: