![]() |
Thread auf mehrere Core verteilen
Vielleicht ist der Titel etwas blöd gewählt.
Ist es möglich in Delphi einen Thread über 2 Core laufen zu lassen? Wenn ich nur einen verwende lastet die Anwendung aus wenn von einem Kern 100% verwendet wird. Keine Ahnung ob sowas überhaupt möglich ist eventuell MultiThreads? Aber wie bei nur einer Funktion (RenderThread) Vielleicht ist die Frage aber auch einfach nur bescheuert ;) gruss |
AW: Thread auf mehrere Core verteilen
Ein Thread läuft immer nur auf einem Kern. Bei einer hyper-threading fähigen CPU ist das dann ein virtueller Kern. Wenn du mehrere Kerne nutzen möchtest, musst du die Aufgabe in mehrere Teile aufsplitten und in separaten Threads laufen lassen. Die Schwierigkeit dabei ist halt oft das Aufsplitten.
|
AW: Thread auf mehrere Core verteilen
Ein Thread kann nicht gleichzeitig auf mehreren Cores laufen. Das ergibt auch einfach keinen Sinn. Wenn du mehrere Cores gleichzeitig auslasten willst, musst du deine Arbeit eben auf entsprechend viele Threads aufteilen.
|
AW: Thread auf mehrere Core verteilen
Du kannst deinen Thread nicht automatisch auf mehreren Kernen ausführen lassen. Das heißt, du musst dir Gedanken machen ob und wie man dein Problem parallelisieren kann.
Das hängt aber sehr davon ab, was deine Funktion überhaupt macht und wie die Ressourcen aussehen, auf die da zugegriffen wird. Womöglich musst du einiges anfassen, um überhaupt parallelisieren zu können. |
AW: Thread auf mehrere Core verteilen
Zitat:
Die Function tut nichts anderes als FFT Daten zu analysieren, visualisiert auszugeben. Das problem dabei es läuft über mehrere ebenen. Anwendung, DLL als wrapper zu einer anderen DLL.. Sonique Plugins als Beispiel. Diese Visualisieren dann die FFT Daten die übergeben werden. Das problem ist dabei das diese eigentlich nur für Fenster größen 512x512 ausgelegt sind was natürlich bei einem VollBild von 1920x1200 als bsp. immense probleme verursacht. Hab das jetzt so umgestellt das man im Vollbild gehen kann in dem ich den Usern einen Viewport zur verfügung stelle so das die Visualisierungen in einem Vollbild wie schon genannt in unterschiedlichen Viewports gerendert werden kann (512x348 bsp.) Aber ganz komme ich immer noch nicht hin was die auslastung des einen Kern's angeht. Hab zwar nur max 25% CPU auslastung bringt mir aber nichts wenn ein Kern mit voller last läuft. Die Anwendung hängt dann unweigerlich. gruss |
AW: Thread auf mehrere Core verteilen
Zitat:
![]() Andererseits ist die Frage, ob du wirklich alle Frequenzen pixelgenau darstellen musst. Eventuell könntest du Zwischenergebnisse interpolieren. |
AW: Thread auf mehrere Core verteilen
Zitat:
Etwas habe ich es ja schon entspannen können aufgrund der Viewports. Die Auslastung ist von einigen Faktoren abhängig Rendertiming größe des Viewport und ob OGL oder GDI verwendet wird. Hab gelesen das es in C++ / Net möglich sein soll Multithreads zu erstellen. Bei Delphi sagt man das es nicht so einfach funktionieren soll. (ohne extremen Aufwand) Na ja schade eigentlich. Muss es dann wohl so belassen, wieder mal na grenzen gestoßen.. ;) Zitat:
gruss |
AW: Thread auf mehrere Core verteilen
Zitat:
Wenn du lediglich das Hängen der Anwendung vermeiden willst, reicht es ja schon, wenn du die Berechnung insgesamt in einen eigenen Thread verlagerst. |
AW: Thread auf mehrere Core verteilen
Zitat:
Einen der nur für die berechnungen zuständig ist. Ich verstehe nicht warum ein System nicht in der lage ist zu erkennen wenn ein core ausgelastet ist um dann diesen auf die übrigen zu verteilen. Was für einen Sinn hat sonst ein 4 Kern prozessor wenn er nicht dynamisch vom system verwaltet wird um eventuelle auslastungen eines Kerns zu verhindern. gruss |
AW: Thread auf mehrere Core verteilen
Zitat:
Zitat:
![]() über OpenMP ![]() oder über Bibliotheken ![]() ![]() Das findet aber alles außerhalb der Pascal Welt statt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz