http://qs321.pair.com?node_id=763205


in reply to Re: (OT) Programming languages for multicore computers
in thread (OT) Programming languages for multicore computers

C is still the language of choice for this kind of tools. If you are capable of writing a high performance string matching tool ...

I know that, and that is why I asked that question. Is it worth to spend >1 year coding a "very efficient suffix array tool" when (maybe) you can code it in less time being less efficient but in a language that supports parallel and concurrent computation (ideally) easily?

The point about memory is relevant, but I don't know if critical in this case (I'm not trying to build suffix arrays over strings of 3Gbs)

Thanks for your reply,

citromatik

Replies are listed 'Best First'.
Re^3: (OT) Programming languages for multicore computers
by lima1 (Curate) on May 11, 2009 at 10:46 UTC
    Well, in the case of suffix arrays, it's not the coding in C that makes it difficult or time consuming, the algorithms are quite complicated. The speedup you gain by using clever techniques and efficient data structures isn't in the range of 2,4 or 8, it is in the thousands. For example I know that if you'd use a simple qsort() for the suffix array sorting, you would need weeks for a human chromosome compared to minutes the guys need here.

    You could also see it the other way: if you use C and maybe OpenMP, then the simple to implement, naive algorithms might be already fast enough.