Maison php教程 php手册 多核编程中的负载平衡难题

多核编程中的负载平衡难题

Jun 21, 2016 am 08:57 AM
cpu

  多核CPU中,要很好地发挥出多个CPU的性能的话,必须保证分配到各个CPU上的任务有一个很好的负载平衡。否则一些CPU在运行,另外一些CPU处于空闲,无法发挥出多核CPU的优势来。


  要实现一个好的负载平衡通常有两种方案,一种是静态负载平衡,另外一种是动态负载平衡。


  1、静态负载平衡


  静态负载平衡中,需要人工将程序分割成多个可并行执行的部分,并且要保证分割成的各个部分能够均衡地分布到各个CPU上运行,也就是说工作量要在多个任务间进行均匀的分配,使得达到高的加速系数。


  静态负载平衡问题从数学上来说是一个NP完全性问题,Richard M. Karp, Jeffrey D. Ullman, Christos H. Papadimitriou, M. Garey, D. Johnson等人相继在1972年到1983年间证明了静态负载问题在几种不同约束条件下的NP完全性。


  虽然NP完全性问题在数学上是难题,但是这并不是标题中所说的难题,因为NP完全性问题一般都可以找到很有效的近似算法来解决。


  2、动态负载平衡


  动态负载平衡是在程序的运行过程中来进行任务的分配达到负载平衡的目的。实际情况中存在许多不能由静态负载平衡解决的问题,比如一个大的循环中,循环的次数是由外部输入的,事先并不知道循环的次数,此时采用静态负载平衡划分策略就很难实现负载平衡。


  动态负载平衡中对任务的调度一般是由系统来实现的,程序员通常只能选择动态平衡的调度策略,不能修改调度策略,由于实际任务中存在很多的不确定因素,调度算法无法做得很优,因此动态负载平衡有时可能达不到既定的负载平衡要求。


  3、负载平衡的难题在那里?


  负载平衡的难题并不在于负载平衡的程度要达到多少,因为即使在各个CPU上分配的任务执行时间存在一些差距,但是随着CPU核数的增多总能让总的执行时间下降,从而使加速系数随CPU核数的增加而增加。


  负载平衡的困难之处在于程序中的可并行执行块很多要靠程序员来划分,当然CPU核数较少时,比如双核或4核,这种划分并不是很困难。但随着核数的增加,划分的粒度将变得越来越细,到了16核以上时,估计程序员要为如何划分任务而抓狂。比如一段顺序执行的代码,放到128核的CPU上运行,要手工划分成128个任务,其划分的难度可想而知。


  负载划分的误差会随着CPU核数的增加而放大,比如一个需要16个时间单位的程序分到4个任务上执行,平均每个任务上的负载执行时间为4个时间单位,划分误差为1个时间单位的话,那么加速系数变成 16/(4+1)=3.2,是理想情况下加速系数 4的80%。但是如果放到一个16核CPU上运行的话,如果某个任务的划分误差如果为0.5个时间单位的话,那么加速系数变成16/(1+0.5) = 10.67,只有理想的加速系数16的66.7%,如果核数再增加的话,由于误差的放大,加速系数相比于理想加速系数的比例还会下降。


  负载划分的难题还体现在CPU和软件的升级上,比如在4核CPU上的负载划分是均衡的,但到了8核、16核上,负载也许又变得不均衡了。软件升级也一样,当软件增加功能后,负载平衡又会遭到破坏,又需要重新划分负载使其达到平衡,这样一来软件设计的难度和麻烦大大增加了。


  如果使用了锁的话,一些看起来是均衡的负载也可能会由于锁竞争变得不平衡起来。


  4、负载平衡的应对策略


  对于运算量较小的软件,即使放到单核CPU上运行速度也很快,负载平衡做得差一些并没有太大影响,实际中负载平衡要考虑的是大运算量和规模很大的软件,这些软件需要在多核上进行负载平衡才能较好地利用多核来提高性能。


  对于大规模的软件,负载平衡方面采取的应对策略是发展划分并行块的宏观划分方法,从整个软件系统层面来进行划分,而不是象传统的针对某些局部的程序和算法来进行并行分解,因为局部的程序通常都很难分解成几十个以上的任务来运行。


   另外一个应对策略是在工具层面的,也就是编译工具能够协助人工进行并行块的分解,并找出良好的分解方案来,这方面Intel已经作出了一些努力,但是还需要更多的努力让工具的功能更强大一些才能应对核数较多时的情况。



Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle doit être l'utilisation du processeur lorsque vous jouez ? Quelle doit être l'utilisation du processeur lorsque vous jouez ? Feb 19, 2024 am 11:21 AM

Il est courant que les jeux ralentissent votre ordinateur car ils consomment beaucoup de ressources. Il est essentiel de comprendre l'utilisation de votre processeur lorsque vous jouez afin d'éviter de le surcharger. Par conséquent, garder une trace de l’utilisation appropriée du processeur est essentiel pour que votre expérience de jeu reste fluide. Dans cet article, nous examinerons l'utilisation appropriée du processeur que vous devez réaliser pendant l'exécution de votre jeu. Utilisation du processeur pendant le jeu L'utilisation du processeur est un indicateur important de la charge de travail du processeur et dépend des spécifications de performances du processeur. Les processeurs plus puissants ont généralement une utilisation plus élevée. Un processeur avec plus de cœurs et de threads peut améliorer les performances globales de votre système. La prise en charge multithread permet de libérer tout le potentiel de votre processeur. Dans les jeux, l'utilisation du processeur dépend de l'utilisation du processeur, ce qui peut affecter le jeu.

Comment sous-volter et overclocker votre processeur à l'aide d'Intel XTU Comment sous-volter et overclocker votre processeur à l'aide d'Intel XTU Feb 19, 2024 am 11:06 AM

Intel XTU est une application puissante qui vous permet de gérer facilement les performances de votre ordinateur. Vous pouvez résoudre les problèmes de surchauffe en ajustant la tension du processeur ou améliorer les performances en overclockant. Dans cet article, nous verrons comment tirer parti d'Intel XTU pour optimiser les performances de votre ordinateur, qu'il s'agisse d'ajuster la tension ou d'overclocker. Quel effet la sous-tension et l'overclocking ont-ils sur le processeur ? Avant de passer à l'apprentissage de la sous-tension et de l'overclocking d'un processeur, nous devons d'abord comprendre de quoi il s'agit. La sous-tension fait référence à la réduction progressive de la tension requise par le processeur. Ce processus contribue à réduire les émissions de chaleur, car la haute tension entraîne des températures plus élevées. En réduisant la tension d'alimentation du processeur, la température peut être efficacement réduite. Si votre ordinateur portable commence à ralentir après avoir chaud, vous devez résoudre le problème rapidement.

Comment définir les performances du processeur au maximum dans Win11 Comment définir les performances du processeur au maximum dans Win11 Feb 19, 2024 pm 07:42 PM

De nombreux utilisateurs trouvent que l'ordinateur ne fonctionne pas suffisamment bien lorsqu'ils utilisent le système Win11. Ils souhaitent améliorer les performances du processeur, mais ils ne savent pas comment le faire. Ce qui suit présentera en détail comment régler les performances du processeur au niveau le plus élevé dans le système Win11 pour rendre votre ordinateur plus efficace. Méthode de paramétrage : 1. Cliquez avec le bouton droit sur « Ce PC » sur le bureau et sélectionnez « Propriétés » dans la liste des options. 2. Après avoir accédé à la nouvelle interface, cliquez sur « Paramètres système avancés » dans « Liens associés ». 3. Dans la fenêtre qui s'ouvre, cliquez sur l'onglet "Avancé" en haut, puis cliquez sur le & en bas de "Performances".

La différence entre un processeur en boîte et un processeur en vrac La différence entre un processeur en boîte et un processeur en vrac Jan 23, 2024 am 09:46 AM

Les différences entre les processeurs en boîte et en vrac : 1. Qualité ; 2. Période de garantie ; 3. Ventilateur ; 5. Emballage ; Introduction détaillée: 1. Qualité, qu'il soit en boîte ou en vrac, il n'y a aucune différence dans la qualité du processeur lui-même. Ils sont tous fabriqués par le même fabricant et sont soumis au même processus de tests de qualité et de contrôle de qualité. CPU en boîte Une période de garantie plus longue est généralement fournie, généralement de trois ans, tandis que les processeurs en vrac n'ont généralement qu'une garantie d'un an, car les processeurs en boîte sont généralement vendus par des revendeurs officiels ou agréés, etc.

Le processus de fonctionnement de l'hôte de service WIN10 occupant trop de CPU Le processus de fonctionnement de l'hôte de service WIN10 occupant trop de CPU Mar 27, 2024 pm 02:41 PM

1. Tout d'abord, nous cliquons avec le bouton droit sur l'espace vide de la barre des tâches et sélectionnons l'option [Gestionnaire des tâches], ou cliquons avec le bouton droit sur le logo de démarrage, puis sélectionnons l'option [Gestionnaire des tâches]. 2. Dans l'interface du Gestionnaire des tâches ouverte, nous cliquons sur l'onglet [Services] à l'extrême droite. 3. Dans l'onglet [Service] ouvert, cliquez sur l'option [Ouvrir le service] ci-dessous. 4. Dans la fenêtre [Services] qui s'ouvre, cliquez avec le bouton droit sur le service [InternetConnectionSharing(ICS)], puis sélectionnez l'option [Propriétés]. 5. Dans la fenêtre des propriétés qui s'ouvre, remplacez [Ouvrir avec] par [Désactivé], cliquez sur [Appliquer] puis cliquez sur [OK]. 6. Cliquez sur le logo Démarrer, puis cliquez sur le bouton d'arrêt, sélectionnez [Redémarrer] et terminez le redémarrage de l'ordinateur.

SRAM à 144 cœurs empilée en 3D : Fujitsu détaille le processeur de centre de données de nouvelle génération MONAKA SRAM à 144 cœurs empilée en 3D : Fujitsu détaille le processeur de centre de données de nouvelle génération MONAKA Jul 29, 2024 am 11:40 AM

Selon des informations publiées sur ce site Web le 28 juillet, le média étranger TechRader a rapporté que Fujitsu avait présenté en détail le processeur FUJITSU-MONAKA (ci-après dénommé MONAKA) dont la livraison était prévue pour 2027. MONAKACPU est basé sur l'architecture « cloud native 3D many-core » et adopte le jeu d'instructions Arm. Il est orienté vers les domaines des centres de données, de la périphérie et des télécommunications. Il est adapté à l'informatique IA et peut réaliser un RAS1 au niveau du mainframe. Fujitsu a déclaré que MONAKA réaliserait un bond en avant en termes d'efficacité énergétique et de performances : grâce à des technologies telles que la technologie ultra-basse tension (ULV), le processeur peut atteindre 2 fois l'efficacité énergétique des produits concurrents en 2027, et le refroidissement ne nécessite pas de refroidissement par eau. De plus, les performances applicatives du processeur peuvent également atteindre deux fois celles de votre adversaire. En termes d'instructions, MONAKA est équipé de vecteur

Comment augmenter la fréquence d'horloge du processeur de votre ordinateur Comment augmenter la fréquence d'horloge du processeur de votre ordinateur Feb 20, 2024 am 09:54 AM

Comment overclocker les processeurs d'un ordinateur Avec les progrès continus de la technologie, la demande des gens en matière de performances informatiques est également de plus en plus élevée. Un moyen efficace d'améliorer les performances de l'ordinateur consiste à augmenter la fréquence de fonctionnement du processeur grâce à l'overclocking. L'overclocking permet au processeur de traiter les données plus rapidement, offrant ainsi une puissance de calcul plus élevée. Alors, comment overclocker le processeur d’un ordinateur ? Ce qui suit vous présentera les principes de base et les méthodes de fonctionnement spécifiques de l'overclocking. Tout d'abord, comprenons comment fonctionne l'overclocking. La fréquence de fonctionnement du CPU est déterminée par l'oscillateur à cristal de la carte mère

Une fuite révèle les spécifications clés des Intel Arrow Lake-U, -H, -HX et -S Une fuite révèle les spécifications clés des Intel Arrow Lake-U, -H, -HX et -S Jun 15, 2024 pm 09:49 PM

Intel Arrow Lake devrait être basé sur la même architecture de processeur que Lunar Lake, ce qui signifie que les tout nouveaux cœurs de performance Lion Cove d'Intel seront combinés avec les cœurs d'efficacité économiques Skymont.

See all articles