title: Options for compute bound parallel processing on lists in F#
body: <p>async{} workflow is easy to use and gives good results on asynchronous operations like IO. Is this a good option also for purely data bound operations? There's also the .NET ThreadPool and BackgroundWorker, are these better options for data bound computations?</p>
  
  <p>The example I have is a large list, about 10,000 strings all unique. For every item I need to compare the string along with all the strings that come after it in the list. The return type will be a <code>list&lt;string * list&lt;string&gt;&gt;</code> containing each of the original items along with a list of possible solutions (possible string matches, based on some application specific algorithm).</p>
  
  <p>My original thought was to use an ansyc{} workflow, but I'm unsure if this problem would be more suited to other parallel techniques, or even if it should be paralised.</p>