This is the tenth progress report from the Wide Finder Project. What with Vegas and the Commies, I’m behind on a lot of things, including the Wide Finder. This is another entry just to note other people’s work, which I really absolutely will buckle down and run on the big iron and report back and shower praise on the good ones and derision on the big misses.
Command Line · Paddy3118 has Wide Finder on the command line, which is unsurprising but good to have on the record.
PHP · Russ Beattie’s WideFinder in PHP is valuable if only for the sake of completeness.
C++ · From #hircus (hey, I don’t pick these stupid blogger handles) comes Tim Bray’s Wide Finder: a minimalist implementation. His first cut runs slower than Ruby so I suspect something’s wrong.
Erlang · And of course, the redoubtable and indefatigable Steve Vinoski is back with One More Erlang Wide Finder; applying my amazing powers of deduction to his filenaming convention, this is his fourteenth attempt.
Caoyuan Deng is on a relatively-sane fifth attempt: Learning Coding Parallelization (Was Tim's Erlang Exercise - Round V).
Comment feed for ongoing:
From: Steve Vinoski (Oct 15 2007, at 23:08)
Hi Tim, don't read too much into the number 14. :-)
I worked on the WF quite a bit right after you first blogged about it, and then didn't touch it for awhile, and then worked on it again last Saturday when I implemented the Boyer-Moore searching -- that was number 14. The versions before 5 were fairly serious, but the ones between 5 and 14 were just tiny little two-minute tweaks that I tried here and there as they crossed my mind, with none having any worthwhile impact.
All in all, though, it's been a great exercise! Now I must go and look up what "redoubtable" and "indefatigable" mean. ;-)
[link]
From: Ian Petersen (Oct 15 2007, at 23:42)
I just received the November issue of Linux Journal and the cover story is about a startup called RapidMind. Mike McCool is the Chief Scientist, or somesuch, so I think it's probably tightly tied to the University of Waterloo School of Computer Science.
Anyway, RapidMind has a software product that automagically turns linear-looking C++ code into parallel code that can take advantage of multiple cores and even programmable GPUs. I don't have the C++ chops to try the Wide Finder problem in C++ with RapidMind, but I thought I'd mention it in case someone here does.
[link]
From: Michel S. (Oct 16 2007, at 13:02)
Um, hircus == Latin for goat. Silly but not stupid*
The slow C++ score seems to be a byproduct of using C++ strings -- the program performs in about the same time with the regexp matching commented out. Will try on a workstation next to see if it improves, otherwise I'd have to do some optimizations there (like going back to C character arrays).
* Lengthy explanation available on request
[link]
From: Hynek (Pichi) Vychodil (Oct 21 2007, at 11:53)
Hi Tim, can you test this http://pichis-blog.blogspot.com/2007/10/wide-finder-project-fold.html on your T2?
[link]
From: Hynek (Pichi) Vychodil (Oct 28 2007, at 12:06)
Hi Tim, I was made big improvement of Steve's code and some prallelization of reading and splitting. It is very fast now.
http://pichis-blog.blogspot.com/2007/10/faster-than-ruby-but-scalable.html
[link]