The TPL supports data parallelism through the System.Threading.Tasks.Parallel class, which provides parallel implementation of the For and Foreach loops. As a developer, you don't need to worry about synchronization or creating tasks as this is handled by the parallel class. This syntactic sugar allows you to easily write parallel loops in a way that's similar to how you have been writing sequential loops.
Here is an example of a sequential for loop that books a trade by posting the trade object to the server:
foreach (var trade in trades)
{
Book(trade);
}
Since the loop is sequential, the total time that it takes to finish the loop is the time it takes to book one trade multiplied by the total number of trades. This means that the loop slows down as the number of trades increases, although the trade booking time remains...