Managed Libraries
ThreadPool
Data Structures
Data Structures
Tools
Async
Agents
Library
UMS Threads
Microsoft
Research
Visual Studio 2010
Parallel
Debugger Windows
Profiler Concurrency
Analysis
Race Detection
Fuzzing
Axum
Visual F#
Managed Languages
Rx
Native Libraries
Managed Concurrency Runtime
DryadLINQ
HPC Server
Доклад
Operating System
Доклад
Overhead
Overhead
Overhead
Overhead
Overhead
Item 5
Item 6
При создании множества потоков все они обращаются в глобальную очередь за потоками – результат накладные расходы
И возникает все больше и больше блокировок
Item 3.1
…
…
Item 1
Item 2
Item 3
Item 2.1
Минимизации синхронизации и блокировок
Hill-Climbing – определение оптимального числа потоков в пуле в зависимости от нагрузки на CPU
for (int i = 0; i < n; i++)
{
work(i);
}
foreach(var item in data)
{
work(item);
}
StatementA();
StatementB;
StatementC();
Parallel.For(0, n, i=>
{
work(i);
});
Parallel.ForEach(data, item=>
{
work(item);
});
Parallel.Invoke(
() => StatementA(),
() => StatementB,
() => StatementC());
int[] output = arr.AsParallel()
.Select(x => Foo(x))
.ToArray();
PLINQ:
src.Select(x => Foo(x))
.TakeWhile(x => Filter(x))
.AsParallel()
.Select(x => Bar(x))
.ToArray();
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть