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.
Generelle Frage zum Thema Multithreading
-
- Beiträge: 162
- Registriert: Mi 31. Jul 2013, 15:07
- OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80
Generelle Frage zum Thema Multithreading
Zuletzt geändert von Dragon am Mi 17. Dez 2014, 15:21, insgesamt 2-mal geändert.
-
- 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
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
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- 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
Vielen dank
-
- 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
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.
-
- 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
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.
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.