GHC 6.13 + Data.Vector experiences

Christian Höner zu Siederdissen choener at
Wed Sep 22 18:32:09 EDT 2010


I am about to upload a number of packages to hackage. They are all
needed by RNAFoldProgs. The main program therein, RNAFold, replicates
RNAfold of the ViennaRNA package. The difference is that the algorithm
already uses a newer set of parameters; the C functionality will follow
soon from our lab.

But that is not why this message:

RNAFold requires a total of 15 lookup tables (multidimensional arrays),
from 1-d arrays up to a maximum of 6 dimensions. We write into 5
different 2-dimensional tables. 15 different (and rather complex)
functions are involved in filling the tables. Everything is built upon the
Data.Vector package to facilitate fusion to happen (though it boils down
to map+enumFromN most of the time).

Some measurements on an input sequence show the following:

ViennaRNA / C: 1.75s
6.13.20100826 / llvm / O2: 40s
6.13 / llvm O3 / Odph: 17.5s
6.12.3 / c O3 / Odph: 535s (really, nine minutes [1])

Unfortunately, between last and this week, the time went from ~13s to
18s but instead of fiddling around, I thought to release the packages
for anyone interested.

Please take it only as my personal testbed for Data.Vector and head --
though should you want to use the lib for actual rna secondary structure
prediction, that should work, too.

Anyways, there are probably a number of bugs in there, so be warned.

The target is, of course, to have a runtime of 1.74s on my machine :-)

Thanks to don stewart (uvector), roman leshchinskiy (vector) and simon
peyton jones (default method inlining [1])

[1] "6.12.3" shows just how much the working default method inliner
brings. With 6.12, everything goes through dictionaries which is not
cool if you need to do many millions of min/+ operations (We work on a
ring and instanciate very late in the game).

Viele Gruesse,

PS: Why are my executables with HEAD like 60mbyte in size?!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
Url :

More information about the Glasgow-haskell-users mailing list