Я уже писал ранее о некоторых нововведениях 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
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий