Disons que nous avons une grande collection de tâches et une collection de processeurs identiques (en termes de performances) qui fonctionnent complètement dans parallèle. Pour les scénarios d'intérêt, nous pouvons supposer . Chaque prend un certain temps / cycles à terminer une fois qu'il est affecté à un processeur , et une fois qu'il est attribué, il ne peut pas être réaffecté jusqu'à ce qu'il soit terminé (les processeurs finissent toujours par terminer les tâches assignées). Supposons que chaque prenne une quantité de temps / cycles, inconnue à l'avance, tirée d'une distribution aléatoire discrète. Pour cette question, nous pouvons même supposer une distribution simple: , et tous les sont indépendants par paire. Par conséquent et .
Supposons que, statiquement, au temps / cycle 0, toutes les tâches soient assignées aussi uniformément que possible à tous les processeurs, uniformément au hasard; donc chaque processeur se voit attribuer tâches (on peut tout aussi bien supposer aux fins de la question). Nous appelons le makespan le temps / cycle auquel le dernier processeur ρ ∗ pour terminer son travail assigné, termine le travail qui lui a été assigné. Première question:
En fonction de , et des , quel est le makespan ? Plus précisément, qu'est-ce que ? ?
Deuxième question:
Supposons que , et tous les sont indépendants deux à deux, de sorte que et . En fonction de , et de ces nouveaux , quelle est la durée? Plus intéressant, comment se compare-t-il à la réponse de la première partie?
Certaines expériences de pensée simples démontrent que la réponse à cette dernière est que la durée de fabrication est plus longue. Mais comment cela peut-il être quantifié? Je serai heureux de publier un exemple si cela est (a) controversé ou (b) pas clair. En fonction du succès de celui-ci, je posterai une question de suivi sur un schéma d'affectation dynamique sous ces mêmes hypothèses. Merci d'avance!
Analyse d'un cas facile:
Si , toutes les tâches sont planifiées sur le même processeur. Le makespan est le moment idéal pour effectuer tâches de manière séquentielle complète. Par conséquent, et V a r [ M ]
Il semble qu'il soit possible d'utiliser ce résultat pour répondre à la question pour ; nous avons simplement besoin de trouver une expression (ou approximation) pour max ( Y 1 , Y 2 , . . . , Y m ) où Y i = X i n , une variable aléatoire avecμY=netσ 2 Y =n . Cette direction va-t-elle dans la bonne direction?
Réponses:
Comme , nous pouvons regarder cela en termes de k et n au lieu de n et m . Disons que T i est le temps nécessaire au i- ème processeur pour terminer son travail.m=k×n k n n m Ti i
Au fur et à mesure que augmente, la probabilité que T i = 5 k (le processeur n'a été affecté qu'à T = 5 tâches) pour certains i s'approche de 1 , de sorte que la durée étant définie comme m a x ( T i ) , E [ M ] approche 5 k .n Ti 5k T=5 i 1 max(Ti) E[M] 5k
Pour le deuxième scénario, il s'agit de donc l'augmentation du nombre de processeurs améliore la répartition 4–2.4k
Qu'en est-il de - augmenter le nombre de tâches par processeur? Augmenter k a l'effet inverse, cela rend moins probable un processeur avec un ensemble malchanceux de tâches. Je rentre chez moi maintenant mais j'y reviendrai plus tard. Mon "pressentiment" est qu'à mesure que k augmente, la différence de E [ M ] entre la division 4–2 et la division 5–1 disparaît, E [ M ] devient la même pour les deux. Je suppose donc que 4–2 est toujours meilleur, sauf peut-être pour certains cas spéciaux (très petites valeurs spécifiques de k et n ), si ce n'est que cela.k k k E[M] E[M] k n
Donc, pour résumer:
la source
Je trouve que les arguments heuristiques sont souvent assez trompeurs lorsque l'on considère la planification des tâches (et des problèmes étroitement liés comme le bin bin). Il peut arriver des choses contre-intuitives. Pour un cas aussi simple, cela vaut la peine de faire la théorie des probabilités.
Soit avec k un entier positif. Supposons que T i j est le temps nécessaire pour terminer la j- ième tâche donnée au processeur i . Il s'agit d'une variable aléatoire de moyenne μ et de variance σ 2 . Le makespan attendu dans le premier cas est E [ M ] = E [ max { k ∑ j = 1 T i j ∣ i = 1 , 2 , … ,n=km k Tij j i μ σ2
Les sommes sont toutes iid avec une moyenne k μ et une variance k σ 2 , en supposant que T i j sont toutes iid (c'est plus fort que l'indépendance par paire).
Maintenant, pour obtenir l'espérance d'un maximum, il faut soit avoir plus d'informations sur la distribution, soit se contenter de bornes sans distribution, telles que:
Pour votre deuxième question, le scénario de faible variance résultant en une durée de vie plus longue semble être le résultat improbable d'une expérience de pensée. LaisserX= maxmi = 1Xje indique la durée de la première distribution, et Oui= maxmi = 1Ouije pour le second (avec tous les autres paramètres identiques). IciXje et Ouije dénoter les sommes de k durées de tâche correspondant au processeur je sous les deux distributions. Pour tousx ≥ k μ , l'indépendance donne
la source