<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2769" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>I speculate that applications based on
the sword-api could potentially benefit from multi-threading, especially
"Search". My impression is that the sword-api Search routines are
single-threaded, but I could be wrong.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Concurrent apps are difficult, and not all
algorithms lend themselves to it. I came across this interesting article
(at least to me) from Herb Sutter. </FONT></DIV>
<DIV><FONT face=Arial size=2><A
href="http://www.gotw.ca/publications/concurrency-ddj.htm">http://www.gotw.ca/publications/concurrency-ddj.htm</A></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>
<DIV><FONT face=Arial size=2>Apps like BibleCS may be in the category he
describes of "wishful thinking that better hardware will help it out for those
people who aren't satisfied with its performance."</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>"Search" seems like a good
candidate for concurrency .... there are obvious threads by
"Book" or "Testament". There would also seem to be less obvious threads by
"pipeline" (decompress as applicable -> decrypt as applicable -> detag
-> search itself -> presentation)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Here is a scenario for purposes of
discussion:</FONT></DIV>
<DIV><FONT face=Arial size=2>Look for the phrase "God so love" across 100
modules that the end-user has installed. This could take a looooooong time, even
with indexing (and the "love" rather than "loved" might cause problems for
CLucene??)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I've got an older Dell server (circa 2000) with two
Pentium III's installed, which would be a good "test-bed" for multi-threading.
My impression is that HyperThreading and MultiCore cpu's would benefit from
multithreading, but the conceptual model might be different in more or less
subtle ways.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>The original LcdBible used an "experimental plug-in
subset" of the sword-api, and I am considering converting its much simpler
search logic to use multi-threading. The upcoming LcdBible release uses the full
sword-api, so would be harder to experiment with.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV></BODY></HTML>