воскресенье, 8 ноября 2009 г.

Data Parallelism (Task Parallel Library) в NET4.

Я уже писал ранее о некоторых нововведениях NET4 и о том, как можно легко распараллелить запросы с помощью  Parallel LINQ. В .NET4 это не единственное нововведение для задач параллельного программирования, нам предоставляется возможность с такой же легкостью распараллелить циклы for и foreach. Для этого служит новое пространство имен System.Threading.Tasks.Parallel .

Рассмотрим, в качестве примера, код умножения матрицы:


Данный код легко превращается в параллельную программу:



В целях эксперимента я решил замерить скорость выполнения умножения матрицы 1000х1000 на 1 и 2 ядрах. Результаты получились следующие:
1 поток  - 40.657
2 потока -  23.514

Как и ожидалось, прирост почти в два раза.


Ссылки и другие примеры: http://msdn.microsoft.com/en-us/library/dd537608(VS.100).aspx




Комментариев нет:

Отправить комментарий