Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

The Fortress programming language has some very powerful features. Guy Steele's slides here (slides 52 onwards) illustrate some of its features including how to split a sentence into words in parallel.

Here we look at some ways to use Groovy and GPars to solve that problem.

First we can write an imperative sequential version:

And test it as follows:

Now, we can ask ourselves a question. Is this solution in its current form easy to turn into a parallel solution? The answer is NO. Each step in our loop relies on the result from the previous step. If I split the sentence into two pieces, and I am processing the start of the second piece, I don't know whether a character or space finished the previous piece. It means that my algorithm when operating on the data isn't associative. Or stating it another way, the order in which I process information is important in the current algorithm.

This produces the output:

200 tests

and gives me confidence that my algorithm is a monoid.

  • No labels