Dans la boucle parallèle ci-dessous, existe-t-il un moyen fiable de déterminer combien de threads seront créés et avec quelles limites d'index?Estimer les indices de segment dans Parallel.For
Parallel.For
(
0,
int.MaxValue,
new ParallelOptions() {MaxDegreeOfParallelism=Environment.ProcessorCount},
(i) =>
{
// Monitor [i] to see how the range is segmented.
}
);
Si le nombre de processeur sur la machine cible est 4 et nous utilisons tous les 4 processeurs, je constate que 4 segments sont créés à peu près la même taille, chacun étant approximativement Int.MaxValue/4. Cependant, ceci est juste l'observation et Parallel.For peut ou peut ne pas offrir la segmentation déterministe. Rechercher autour n'a pas aidé beaucoup non plus. Est-il possible de prévoir ou de calculer cela?
Quelle est l'application qui a des opérations Int.MaxValue à effectuer? – Paparazzi
int.MaxValue est juste à utiliser pour cet exemple. Mon algorithme actuel traite des itérations de nombres au-delà même de long.Count. –
OK quel est le problème spécifique? – Paparazzi