|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
pzktupel
Anmeldungsdatum: 07.07.2020 Beiträge: 83
|
Verfasst am: 10.08.2020, 13:40 Titel: Multithreading - Lösung für individuelle Corezuweisung |
|
|
Ich habe mal eine spezielle Frage zum Multithreading.
Allgemein wird ja mit
T1 = ThreadCreate(@MyThread1)
T2 = ThreadCreate(@MyThread2)
...
zum Bsp. mehrere Threads gestartet.
Nun ist aber das Problem bei physischen und logischen Kernen, dass der Prozess nicht immer primär auf die physischen verteilt wird.
Kann man mit einer Art "/affinity ??? " einem Thread einen speziellen Kern zuweisen ?
Gruß _________________ Umfangreichste Angaben zu Primzahl k-Tupel
https://www.pzktupel.de/ktuplets.php
Zuletzt bearbeitet von pzktupel am 11.08.2020, 14:35, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
pzktupel
Anmeldungsdatum: 07.07.2020 Beiträge: 83
|
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 10.08.2020, 22:04 Titel: |
|
|
Falls es geht, kannst du kurz eine Lösung posten? Würde mich auch interessieren (mein Kenntnisstand ist, dass es nicht bzw. nicht so ohne weiteres geht - bzw. dass es nicht vorgesehen ist, dass das Programm selbst darauf Einfluss nimmt). _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
pzktupel
Anmeldungsdatum: 07.07.2020 Beiträge: 83
|
Verfasst am: 11.08.2020, 14:28 Titel: |
|
|
Ja gerne, das habe ich nur durch Zufall mal registriert und ist ganz simple !
Das auszuführende Programm wird über eine BAT-Datei geregelt.
In dieser BAT-Datei legt man den affinity-Wert fest. Dieser ist seltsamerweise
primär bindend. Ich habe einen 8/16 Core zum Bsp. und will 8 echten Kerne benutzen über 8-Threads im FB-Programm. Hier in dem Fall ist die Codierung 5555.
Würde man also "start /low /affinity 5555 meinprogramm.exe" starten, werden nur die Kerne 0,2,4,6,8,10,12,14 verwendet...das muss der dann intern selber aufteilen...aber die logischen sind außen vor.
Drauf gekommen bin ich nach langem Suchen, weil ich mal ein MT-Programm geschrieben habe und über eine alte BAT nur den Kern 0 mit "/affinity 1" gestartet habe...er hat nur den Kern 0 belastet und wunderte mich über die Zeitverzögerung.
Weitere affinity - Codierung sind hier im Gebrauch:
Nur physikalische [0..7] 1,4,10,40,100,400,1000,4000
physikalische/logische zusammen [0..7] 3,C,30,C0,300,C00,3000,C000
Bsp. C000 verwendet Kern 14 & 15 , 3 ist Kern 0 & 1, sinnvoll , wenn zwei gleichwertige Aufgaben sich den physikalischen und logischn Kern dazu teilen (HT,SMT Nutzung)
5555 hat alle 8 physikalischen Kerne. Die Nummern muss man selber berechnen, gegebenfalls dann überprüfen _________________ Umfangreichste Angaben zu Primzahl k-Tupel
https://www.pzktupel.de/ktuplets.php |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 11.08.2020, 14:57 Titel: |
|
|
Ah, ok, danke schön!
Wenn es über BAT geht, könnte es vielleicht auch über den SHELL-Befehl klappen; der sollte sich wie eine einzeilige BAT-Datei verhalten. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
pzktupel
Anmeldungsdatum: 07.07.2020 Beiträge: 83
|
Verfasst am: 11.08.2020, 15:32 Titel: |
|
|
Also aus FB heraus mit SHELL geht natürlich auch mit dem affinity. Dabei wird freilich dem Programm die vorgegebenen Kerne zugewiesen....habe ich hier auch. Nur mir ging es eben darum bei zig parallelem threads unter einem FB-Programm auch nur speziell ausgewählte Kerne zu nutzen. Das scheiterte bisher, da Windows irgendwas immer nimmt. Da ich 2 PCs habe mit selbiger Rechenleistung , gab es immer massive Abweichung im Prozessfortschritt. Das ist damit behoben. Windows 10 nimmt besser die echten zuerst und Windows 7 legt das auch gerne auf die logischen. _________________ Umfangreichste Angaben zu Primzahl k-Tupel
https://www.pzktupel.de/ktuplets.php |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|