The main strength of this program is its ability to solve most quotes which are of
sufficient length and good word usage, given an appropriate dictionary. Also, message passing
is reduced with the new version, improving time somewhat.
Weaknessess
A big weakness is the amount of message passing which still remains in the algorithm, slowing
down the process to the point where the addition of an additional machine does not speed up
computation. Another disadvantage is that the cryptoquote solver is not able to solve all cryptoquotes.
Perhaps an update could solve this problem by using grammatical hints. In addition, quotes longer than
150 words tend to allocate too much memory, severely limiting the quote length. Finally, there is no
load balancing such as that which might take place given the varying nature of different length words.
A solution exists which would address three of these problems: reduction of message passing
load balancing, and memory allocation. If the tasks were combined such that
all words of a given length were running on one task, then the message passing would be greatly
reduced. Reducing the number of tasks would make decisions about load balancing worthwhile with
respect to time. Finally, not having to load a dictionary for each task greatly reduces memory use.
This tends to indicate that this problem of solving cryptoquotes is a shared memory problem as
opposed to the distributed memory structure of PVM.