Estimation de P dans la loi d'Amdahl théoriquement et en pratique
Question
Dans l'informatique parallèle, la loi d'Amdahl est principalement utilisée pour prédire la vitesse maximale théorique du traitement de programme à l'aide de plusieurs processeurs.Si nous désignons l'accélération de S, la loi de AMDAHL est donnée par la formule:
où p est la proportion d'un système ou d'un programme pouvant être fait parallèle, et
Plus spécifiquement, ma question a deux parties:
Comment pouvons-nous calculer p théoriquement? Comment pouvons-nous calculer p dans la pratique?
Référence: https://www.techopedia.com/definition/17035/amdahls-Law
La solution
AMDAHL a divisé un programme en deux parties, en série et parallèle, et supposé chaque processeur d'avoir la même capacité de calcul. Ce concept a été encore raffiné par la colline et Marty La loi d'AMDAHL dans l'ère multicœur , En d'autres termes, il n'est pas nécessaire que chaque processeur ait la même capacité de calcul et Cassidy au-delà de la loi d'AMDAHL: Une fonction objective qui relie les gains de performance multiprocesseurs pour retarder et énergie , en d'autres termes, pourquoi se diviser en seulement deux parties.
Après une brève vue d'ensemble de la loi d'AMDAHL, je réponds à la question de savoir comment mesurer les parties série (1-P) et parallèle (P) d'un programme.
- Instrumentation statique: Mettez une fonction qui donne l'heure actuelle telle que GETTimeofDay de Linux au début du programme, le point où vous créez des threads et des points dans lesquels vous rejoignez des threads et si votre programme (si votre programme fait beaucoup de post-traitement. ) à la fin du programme. Prenez des différences et vous aurez la valeur p. Utilisez le programme unique fileté. Si vous souhaitez avoir plus de précision dans la mesure, utilisez l'instruction RDTSCP sur les processeurs Intel Excellent blog de Dr. John McCalpin .
- Instrumentation dynamique: il est possible de faire ce qui précède même lorsque vous n'avez pas le code source pour faire une instrumentation statique. Vous pouvez utiliser la précharge de la bibliothèque (ld_preload) ou l'outil Intel Pin Introduction à la broche à l'aide d'exemples ou des outils d'instrumentation binaire dynamiques similaires tels que Dynamorio, Valgrind et Linux Perf Tutoriel de Brendan Gregg . Tous sont des cadres établis, totalement gratuits, avec plusieurs outils de recherche en utilisant eux.