I'm working on a multithreaded application which needs to perform some optical character recognition. The requirement of the app is that it must work really, really fast.
At one time, I have to simultaneously read 6 different words. So what I'm doing is, starting 6 threads, one thread dedicated to reading each word.
However, I'm wondering if I should go even further, and start one thread for each character within a word. So e.g, if I have 6 words and each word has about 5-6 characters, this would mean 30-36 threads (possibly upto 50-70 threads for longer words).
To process each individual character, it seems to take between 10-30 milliseconds, for a total of 200-300 milliseconds per word. (I need to bring it down to 100 milliseconds or less per word).
Which strategy will actually give me better performance? One thread per word, or one thread per character?