Generelle Frage zum Thema Multithreading

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Antworten
Dragon
Beiträge: 162
Registriert: Mi 31. Jul 2013, 15:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80

Generelle Frage zum Thema Multithreading

Beitrag von Dragon »

Also ich hab da mal eine generelle Frage,
Programme die multithreadding unterstützen jetzt nicht spezifisch Lazarus/FPC programme teilen ja die arbeit in mehrere threads auf aber wie ist das jetzt bei z.b. mehr CPU systemen.

Verhält sich ein Programm auf

2 CPUs a 2 Thread gleich wie ein system mit
1 CPU mit 4 Threads
wenn ja oder nein wovon ist es abhängig vom BS oder dem Programm der Programmiersprache?

und sorry für meine so lange inaktivität.
Zuletzt geändert von Dragon am Mi 17. Dez 2014, 15:21, insgesamt 2-mal geändert.

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Generelle Frage zum Thema Multithreading

Beitrag von Socke »

Dragon hat geschrieben:Verhält sich ein Programm auf

2 CPU a 2 Thread gleich wie ein system mit
1 CPU mit 4 Threads
wenn ja oder nein wovon ist es abhängig vom BS oder dem Programm der Programmiersprache?

Für die Programme und das Betriebssystem ist es egal, ob getrennte CPUs oder nur mehrere CPU-Kerne oder mehrere Pipelines (wie bei Hyper Threading) vorhanden sind. Die Verteilung übernimmt das Betriebssystem.

Natürlich hast du je nach Konfiguration leicht unterschiedliches Verhalten: zum Beispiel dauert eine Verlagerung von einem Programm/Thread von einer dedizierten CPU zu einer anderen länger als zwischen zwei Prozessorkernen auf der selben CPU (der Prozessorcache muss neu aufgebaut werden). Das sind aber Details, die in der Praxis wenig Bedeutung haben.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Dragon
Beiträge: 162
Registriert: Mi 31. Jul 2013, 15:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80

Re: Generelle Frage zum Thema Multithreading

Beitrag von Dragon »

Vielen dank

Patito
Beiträge: 203
Registriert: Di 22. Sep 2009, 13:08
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Generelle Frage zum Thema Multithreading

Beitrag von Patito »

Dragon hat geschrieben:Verhält sich ein Programm auf

2 CPU a 2 Thread gleich wie ein system mit
1 CPU mit 4 Threads
wenn ja oder nein wovon ist es abhängig vom BS oder dem Programm der Programmiersprache?


Ich würde mal so etwas vermuten:

a) Bei mehreren CPUs ist der Weg zur Cache-Synchronisation länger.
(Ein Schreibvorgang mit CPU1 muss auch noch den Cache von CPU2 als dirty markieren)

b) mit mehr CPUs hat man insgesamt mehr Cache zur Verfügung (gut für manche Lesevorgänge)

Allgemein kann man sicher nicht sagen was besser ist. Es kommt sicher darauf an was man genau macht.

Dragon
Beiträge: 162
Registriert: Mi 31. Jul 2013, 15:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80

Re: Generelle Frage zum Thema Multithreading

Beitrag von Dragon »

Ich habe nicht vor etwas zu machen. Ich sehe diese frage mehr als nice to know an.
Ist mir heute spontan so in den sinn gekommen ob sich sowas halt evtl ähnlich verhält oder eben nicht und da ich keinerlei möglichkeiten hab sowas zu testen hab ich einfach mal die expwerten hier gefragt die hiermit schon erfahrungen gemacht haben oder es eben einfach so wissen :) .
Aber danke für deine vermutungen.

Antworten