Generelle Frage zum Thema Multithreading

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben

Generelle Frage zum Thema Multithreading

Beitragvon Dragon » 17. Dez 2014, 14:41 Generelle Frage zum Thema Multithreading

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 17. Dez 2014, 15:21, insgesamt 2-mal geändert.
Dragon
 
Beiträge: 162
Registriert: 31. Jul 2013, 14:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80 | 
Nach oben

Beitragvon Socke » 17. Dez 2014, 14:55 Re: Generelle Frage zum Thema Multithreading

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
Socke
Lazarusforum e. V.
 
Beiträge: 2690
Registriert: 22. Jul 2008, 18:27
Wohnort: Köln
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE | 
CPU-Target: 32bit x86 armhf
Nach oben

Beitragvon Dragon » 17. Dez 2014, 15:00 Re: Generelle Frage zum Thema Multithreading

Vielen dank
Dragon
 
Beiträge: 162
Registriert: 31. Jul 2013, 14:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80 | 
Nach oben

Beitragvon Patito » 17. Dez 2014, 15:12 Re: Generelle Frage zum Thema Multithreading

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.
Patito
 
Beiträge: 203
Registriert: 22. Sep 2009, 12:08
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Dragon » 17. Dez 2014, 15:20 Re: Generelle Frage zum Thema Multithreading

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.
Dragon
 
Beiträge: 162
Registriert: 31. Jul 2013, 14:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80 | 
Nach oben

• Themenende •

Zurück zu Dies und Das



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried