[Haskell-cafe] Climbing up the shootout...

Don Stewart dons at galois.com
Mon Sep 22 15:43:57 EDT 2008


igouy2:
> 
> --- Simon Brenner <olsner at gmail.com> wrote:
> 
> > On Mon, Sep 22, 2008 at 2:07 PM, Bulat Ziganshin
> > <bulat.ziganshin at gmail.com> wrote:
> > > this overall test is uselles for speed comparison. afair, there are
> > > only 2-3 programs whose speed isn't heavily depend on libraries. in
> > > DNA test, for example, Tcl (or PHP?) was leader just because it has
> > > better regexp library
> > 
> > On the regex-dna benchmark, I'll have to agree. It's unfortunate to
> > have a benchmark so dependent on the set of libraries included in the
> > distribution, and e.g. Text.Regex.PCRE kicks Text.Regex.Posix's
> > behind
> > in this benchmark - but we probably can't use it only because one's
> > bundled and the other isn't. Maybe we could roll our own regexp
> > engine
> > for this specific benchmark though (for example, Text.Regex.TDFA is
> > within 10% or something of PCRE and AFAIK pure Haskell - a customized
> > and downsized version of that could probably be made quite
> > competitive).
> 
> You could always suggest use of Text.Regex.PCRE, provide a program and
> instructions on how to install Text.Regex.PCRE on Ubuntu.

I've now submitted a Text.Regex.PCRE parallelised entry written by Tim
Newsham. It is by far the fastest haskell regex entry so far (down to 9s
on quad core, from 100+ seconds on single core for the old entry),

    http://alioth.debian.org/tracker/index.php?func=detail&aid=311132&group_id=30402&atid=411646

It does require the regex-pcre library, which if it isn't in your
package system on Ubuntu, you can certainly build,

    $ wget http://hackage.haskell.org/packages/archive/regex-pcre-builtin/0.94.2.0.7.7/regex-pcre-builtin-0.94.2.0.7.7.t
ar.gz
    $ tar xzf regex-pcre-builtin-0.94.2.0.7.7.tar.gz
    $ cd regex-pcre-builtin-0.94.2.0.7.7
    $ runhaskell Setup.hs configure --prefix=$HOME
    $ runhaskell Setup.hs build
    $ sudo runhaskell Setup.hs install

I also included these details on the ticket.

It uses a simple parMap strategy.

Cheers,
  Don


More information about the Haskell-Cafe mailing list