Heim 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已经作出了一些努力,但是还需要更多的努力让工具的功能更强大一些才能应对核数较多时的情况。



Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie hoch sollte die CPU-Auslastung beim Spielen sein? Wie hoch sollte die CPU-Auslastung beim Spielen sein? Feb 19, 2024 am 11:21 AM

Es kommt häufig vor, dass Spiele Ihren Computer verlangsamen, weil sie viele Ressourcen verbrauchen. Es ist wichtig, die CPU-Auslastung beim Spielen zu kennen, um eine Überlastung zu vermeiden. Daher ist es wichtig, die angemessene CPU-Auslastung im Auge zu behalten, um ein reibungsloses Spielerlebnis zu gewährleisten. In diesem Artikel schauen wir uns die angemessene CPU-Auslastung an, die Sie erreichen sollten, während Ihr Spiel läuft. CPU-Auslastung beim Gaming Die CPU-Auslastung ist ein wichtiger Indikator für die Prozessorauslastung und hängt von den Leistungsspezifikationen der CPU ab. Leistungsstärkere CPUs haben im Allgemeinen eine höhere Auslastung. Eine CPU mit mehr Kernen und Threads kann die Gesamtleistung Ihres Systems verbessern. Die Multi-Threading-Unterstützung hilft dabei, das volle Potenzial Ihrer CPU auszuschöpfen. In Spielen hängt die CPU-Auslastung von der Prozessorauslastung ab, was sich auf das Spiel auswirken kann

So stellen Sie die CPU-Leistung in Win11 auf volle Leistung ein So stellen Sie die CPU-Leistung in Win11 auf volle Leistung ein Feb 19, 2024 pm 07:42 PM

Viele Benutzer stellen fest, dass der Computer bei Verwendung des Win11-Systems nicht reibungslos läuft. Sie möchten die CPU-Leistung verbessern, wissen aber nicht, wie das geht. Im Folgenden wird detailliert beschrieben, wie Sie die CPU-Leistung im Win11-System auf die höchste Stufe einstellen, um Ihren Computer effizienter zu machen. Einstellungsmethode: 1. Klicken Sie mit der rechten Maustaste auf „Dieser PC“ auf dem Desktop und wählen Sie „Eigenschaften“ in der Optionsliste. 2. Nachdem Sie die neue Benutzeroberfläche aufgerufen haben, klicken Sie unter „Verwandte Links“ auf „Erweiterte Systemeinstellungen“. 3. Klicken Sie im sich öffnenden Fenster oben auf die Registerkarte „Erweitert“ und dann unten bei „Leistung“ auf das &.

So unterlasten und übertakten Sie Ihre CPU mit Intel XTU So unterlasten und übertakten Sie Ihre CPU mit Intel XTU Feb 19, 2024 am 11:06 AM

Intel XTU ist eine leistungsstarke Anwendung, mit der Sie die Leistung Ihres Computers einfach verwalten können. Sie können Überhitzungsprobleme beheben, indem Sie die CPU-Spannung anpassen oder die Leistung durch Übertakten steigern. In diesem Artikel schauen wir uns an, wie Sie Intel XTU nutzen können, um die Leistung Ihres Computers zu optimieren, sei es durch die Anpassung der Spannung oder durch Übertakten. Welche Auswirkungen haben Undervolting und Overclocking auf die CPU? Bevor wir weiter lernen, wie man eine CPU unter- und übertaktet, müssen wir zunächst verstehen, was das ist. Unter Unterspannung versteht man die schrittweise Reduzierung der von der CPU benötigten Spannung. Dieser Prozess trägt dazu bei, die Wärmeemissionen zu reduzieren, da Hochspannung zu höheren Temperaturen führt. Durch die Reduzierung der Spannungsversorgung der CPU kann die Temperatur effektiv gesenkt werden. Wenn Ihr Laptop langsamer wird, nachdem er heiß geworden ist, sollten Sie das Problem umgehend beheben.

So erhöhen Sie die Taktfrequenz der CPU Ihres Computers So erhöhen Sie die Taktfrequenz der CPU Ihres Computers Feb 20, 2024 am 09:54 AM

So übertakten Sie Computer-CPUs Mit der kontinuierlichen Weiterentwicklung der Technologie wird auch der Bedarf der Menschen an Computerleistung immer höher. Eine wirksame Möglichkeit zur Verbesserung der Computerleistung besteht darin, die Betriebsfrequenz der CPU durch Übertakten zu erhöhen. Durch Übertakten kann die CPU Daten schneller verarbeiten und sorgt so für eine höhere Rechenleistung. Wie übertaktet man also die CPU eines Computers? Im Folgenden werden Ihnen die Grundprinzipien und spezifischen Betriebsmethoden des Übertaktens vorgestellt. Lassen Sie uns zunächst verstehen, wie Übertakten funktioniert. Die Betriebsfrequenz der CPU wird durch den Quarzoszillator auf der Hauptplatine bestimmt

Der Unterschied zwischen Boxed- und Bulk-CPU Der Unterschied zwischen Boxed- und Bulk-CPU Jan 23, 2024 am 09:46 AM

Die Unterschiede zwischen Box- und Bulk-CPUs: 1. Qualität; 3. Lüfter; 6. Vertriebskanäle; Detaillierte Einführung: 1. Qualität, egal ob verpackt oder lose, es gibt keinen Unterschied in der Qualität der CPU selbst. Sie werden alle vom gleichen Hersteller hergestellt und durchlaufen den gleichen Qualitätstest und Qualitätskontrollprozess. 2. Garantiezeit. Für Boxed-CPUs gilt in der Regel eine längere Garantiezeit, in der Regel drei Jahre, während für Massen-CPUs in der Regel nur eine einjährige Garantie gilt, da Boxed-CPUs in der Regel von offiziellen oder autorisierten Händlern usw. verkauft werden.

Der Betriebsprozess des WIN10-Diensthosts belegt zu viel CPU Der Betriebsprozess des WIN10-Diensthosts belegt zu viel CPU Mar 27, 2024 pm 02:41 PM

1. Zuerst klicken wir mit der rechten Maustaste auf die leere Stelle der Taskleiste und wählen die Option [Task-Manager] oder klicken mit der rechten Maustaste auf das Startlogo und wählen dann die Option [Task-Manager]. 2. In der geöffneten Task-Manager-Oberfläche klicken wir ganz rechts auf die Registerkarte [Dienste]. 3. Klicken Sie in der geöffneten Registerkarte [Dienst] unten auf die Option [Dienst öffnen]. 4. Klicken Sie im sich öffnenden Fenster [Dienste] mit der rechten Maustaste auf den Dienst [InternetConnectionSharing(ICS)] und wählen Sie dann die Option [Eigenschaften]. 5. Ändern Sie im sich öffnenden Eigenschaftenfenster die Option „Öffnen mit“ in „Deaktiviert“, klicken Sie auf „Übernehmen“ und dann auf „OK“. 6. Klicken Sie auf das Startlogo, dann auf die Schaltfläche zum Herunterfahren, wählen Sie [Neustart] und schließen Sie den Neustart des Computers ab.

144-Kerne, 3D-gestapelter SRAM: Fujitsu stellt den Rechenzentrumsprozessor MONAKA der nächsten Generation vor 144-Kerne, 3D-gestapelter SRAM: Fujitsu stellt den Rechenzentrumsprozessor MONAKA der nächsten Generation vor Jul 29, 2024 am 11:40 AM

Laut Nachrichten dieser Website vom 28. Juli berichteten die ausländischen Medien TechRader, dass Fujitsu den FUJITSU-MONAKA-Prozessor (im Folgenden als MONAKA bezeichnet) detailliert vorgestellt habe, dessen Auslieferung im Jahr 2027 geplant sei. MONAKACPU basiert auf der „Cloud Native 3D Many-Core“-Architektur und übernimmt den Arm-Befehlssatz. Es ist auf die Bereiche Rechenzentrum, Edge und Telekommunikation ausgerichtet. Es ist für KI-Computing geeignet und kann RAS1 auf Mainframe-Ebene realisieren. Fujitsu sagte, dass MONAKA einen Sprung in puncto Energieeffizienz und Leistung machen wird: Dank Technologien wie der Ultra-Low-Voltage-Technologie (ULV) kann die CPU im Jahr 2027 die doppelte Energieeffizienz von Konkurrenzprodukten erreichen, und für die Kühlung ist keine Wasserkühlung erforderlich Darüber hinaus kann die Anwendungsleistung des Prozessors doppelt so hoch sein wie die Ihres Konkurrenten. In puncto Anleitung ist MONAKA mit Vector ausgestattet

Leak enthüllt wichtige Spezifikationen von Intel Arrow Lake-U, -H, -HX und -S Leak enthüllt wichtige Spezifikationen von Intel Arrow Lake-U, -H, -HX und -S Jun 15, 2024 pm 09:49 PM

Intel Arrow Lake wird voraussichtlich auf der gleichen Prozessorarchitektur wie Lunar Lake basieren, was bedeutet, dass Intels brandneue Lion Cove-Leistungskerne mit den wirtschaftlichen Skymont-Effizienzkernen kombiniert werden. Während Lunar Lake nur als Ava verfügbar ist

See all articles