(załóżmy mam 10 rdzeni)Równoległe i podział pracy w C#?
Kiedy piszę:
Parallel.For(0, 100, (i,state) =>
{
Console.WriteLine(i);
});
pytania:
Jaka jest formuła przydzielania ilości numerów dla każdego rdzenia? (czy to jest
100/10
?)Czy w punkcie wykonawczym każdy rdzeń zna już, z jakimi numerami sobie poradzi? Czy też za każdym razem zużywa nową liczbę/y z repozytorium
[0..100]
(zignorujmy teraz porcję lub zakres)?Parametr
i
- czy odnosi się do indeksu0..100
, czy jest to indeks względny w każdym wątku i jego numery "będzie obsługiwać"?
Pytasz, w jaki sposób dane wejściowe są podzielone na partycje, ale mówisz nam, abyśmy zignorowali dwa sposoby korzystania z partycji "Parallel" w celu partycjonowania (partycjonowanie fragmentów i zakresów)? To nie ma dla mnie żadnego sensu. – svick
@svick zarówno zakres, jak i porcja zużywają [n] elementy, w których n <= 1. Nie obchodzi mnie wartość [n]. ale jeśli jest to tak ważne, przyjmijmy, że n = 1. –