[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [aspell-devel] Add and Remove Word Lists
From: |
Jose Da Silva |
Subject: |
Re: [aspell-devel] Add and Remove Word Lists |
Date: |
Sat, 20 Nov 2004 12:34:23 -0800 |
User-agent: |
KMail/1.6.1 |
On Saturday 20 November 2004 05:28 am, you wrote:
> ----- Original Message -----
> From: "Jose Da Silva" <address@hidden>
> <snip>
> Thanks for all the comments!
> You got me thinking, which is good.
> Thanks,
> Gary
Actually, few people are even willing to ask for advice on a public forumn.
It's out in public where all the good ideas get thrown together too. :-)
Plus... you got me thinking-out-loud too... to put it in writing, here goes!
Another item for thought and consider this an advanced subject....
"multithreading"
Not so great with today's computers since the multithreading is of no
advantage on a single processor computer (plus if implemented badly is worse
than not having it in the 1st place), but there was an article in
www.slashdot.org quite a while back, and the person who introduced fortran
is really big into multiprocessor computers.... the article talked about
shared calculations within a "grid of CPUs" and it seemed that fortran
seemed to translate well for allowing multiple CPUs sharing a task, plus if
you look at SUN, they are always talking/boasting multithreading better than
everyone.
Now suppose you get out your crystal ball and see into the future and that in
5 years that, the common computer usually has more than one core....
Now suppose you split the work into multithreading.
Now suppose that you have several CPUs sitting idle waiting for some work to
do, so why not give them some work to share.
Perhaps handling a dictionary each and the spell checker is sort of whichever
hits first....
CPU#1=common english
CPU#2=accented english
not assigned yet=french dictionary
not assigned yet=german dictionary
....
Now think of this as a horse race, where whichever CPU gets it first wins:
the next word is "good" now GO search!
CPU#1 starts looking in common english
CPU#2 starts looking in the rather small accented english
CPU#2 ran through it's (small) dictionary quickly and now starts tackling
another dictionary... okay... so now it starts threading through the french
dictionary...
okay, everyone stop looking because CPU#1 found "good"
the next word to find is "going", now GO search!
.....
The basic idea I'm pointing out above is, if you got one dictionary, you only
got one thread to work on, therefore you also limit the work to only one
CPU.... however several smaller dictionaries can be searched at the same
time in parallel.
Perhaps the idea above is not so great, because it becomes a big performance
hit on a single CPU computer due to all the overhead involved....
...Maybe multithreading works better or simpler to implement in sequence....
CPU#1 looks for "good", CPU#2 looks for "going", CPU#3 looks for.... ?
....hmmm, I didn't bother to chuck-out the 1st idea (I was thinking about
that possibility when I also spoke up in favour of multiple
dictionaries).... looking at this email, and replying to you, I now think
I'm now more in favour of the 2nd idea as it's easier to solve.... :-)