
Hi, 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, Christian PS: Why are my executables with HEAD like 60mbyte in size?!
participants (1)
-
Christian Höner zu Siederdissen