JobQueue - MultiThread

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Jo, liegt auch an der Auslastung deines PCs, und wie viel Prozessorzeit ander Programme im Hintergrund brauchen, unter idealen Vorraussetzungen bringst natürlich mehr.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Update:
  • Kleinen Bug behoben bei dem JobQueue_WaitUntilFinish() zu früh ausgelöst wurde
  • "Persönliche" Messages der Worker werden durch separate Mutexes geschützt um Hauptmutex zu entlasten
  • Reader-Writer Problem minimiert, noch weniger unnötige Mutex - Anfragen
  • Statusmeldungen & Childverwaltung der Jobs geändert, nun Speicherschonender
  • System noch performater
Wem es interessiert, weiterführende Links zum Thema:

Active Waiting, DeathLock, Interprozesskommunikation, ThreadSyncronisation, Scheduling sehr schön erklärt:

http://www.zdnet.de/anwendungsentwicklu ... 7412-1.htm
http://msdn.microsoft.com/de-de/library/h14y172e.aspx
http://de.wikipedia.org/wiki/Mutex
http://de.wikipedia.org/wiki/Semaphor_%28Informatik%29
http://de.wikipedia.org/wiki/Parallele_Programmierung
http://de.wikipedia.org/wiki/Erzeuger-V ... er-Problem

Bugreports, Featurerequest, Wünsche, Beschwerden, Ergebnisse der Democodes, oder einfach nur nen kleinen Kommentar wie immer bitte hier :D


Download im 1. Post oder:

http://www.paladiumx.forgesoft.net/publ ... Thread.zip
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Update:
  • "JobQueue_" in "JQ_" umbennant (schneller zu schreiben und sagt gleichviel aus)
  • JQ_Free() in JQ_DeInit() umbennant, optinaler Parameter für ein DeInit - Timeout (Rückgabe: #True wenn Erfolg)
  • JQ_DeInitCritical(): Beendet die Threads per KillThread(), nicht zu empfehlen.
  • JQ_DeInitForce(): Versucht die Threads eine bestimmt Zeit lang normal zu beenden, danach JQ_DeInitCritical()
  • JQ_RemoveWorker(): Entfernt Workers nun sicherer (getriggert per Semaphore)
  • JQ_QuitWorker(): Bestimmten Worker beenden
  • Include steht unter GPL v3
Soweit bin ich mal ganz zufrieden mit dem Include, die Performance passt, die Konfigurationsmöglichkeiten auch. Ich bin am Überlegen ob ich einen Netzwerk-Aufsatz für dieses Include schreibe, also die Rechenleistung eines PC via Network zur Verfügung zu stellen (einfacher HPC-Cluster). Ich hab sogar schon ein kongretes Konzept in Hinterkopf und wie ich es realisieren könnte, hat da jemand Interesse das mitzuentwickeln :D (PN/Hier melden)?

PS: Hat schon jemand das Include auf Linux/MacOS X getestet? In der Theorie müsste es funktionieren, da ich keine Windows-spezifischen Funktionen verwende, konnte es aber leider noch nicht testen :| .

Download im 1. Post oder:

http://www.paladiumx.forgesoft.net/publ ... Thread.zip
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Oli!
Beiträge: 1
Registriert: 22.02.2009 23:00
Wohnort: Uelzen
Kontaktdaten:

Re: JobQueue - MultiThread

Beitrag von Oli! »

Hat zufällig noch jemand die Zip-Datei als Download? Alle Downloadlinks sind leider nicht mehr verfügbar :(

Vielen Dank
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: JobQueue - MultiThread

Beitrag von Kiffi »

Oli! hat geschrieben:Hat zufällig noch jemand die Zip-Datei als Download? Alle Downloadlinks sind leider nicht mehr verfügbar :(
schreib cxAlex doch einfach via PN an. Bei entsprechender Einstellung
müsste er dann eine Mail bekommen. Dürfte wohl das einfachste und
schnellste sein.

Grüße ... Kiffi
a²+b²=mc²
Tombi
Beiträge: 369
Registriert: 05.03.2008 22:05

Re: JobQueue - MultiThread

Beitrag von Tombi »

Habe Ihn auch mal angeschrieben, aber bisher noch keine Antwort bekommen.
Falls jemand dennoch das Zip-Archive auf seiner Festplatte liegen hat, würde ich mich sehr darüber freuen !


Mit freundlichen Grüßen,
Tombi

Edit: Ist/Wäre das Script überhaupt zu PB4.51 kompatibel? Der letzte Beitrag zu dem Projekt vom Threadersteller ist von 2009.
Bild Bild Bild
Intel Pentium 4 630 (3 GHZ)
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: JobQueue - MultiThread

Beitrag von cxAlex »

Update.

Download-Link aktualisiert.
Das Archiv enthält nun auch eine Lite-Version, die ich sehr gerne in meinen Projekten einsetzte, inklusive Thread-Sleep Funktion.

Gruß, Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
c4s
Beiträge: 1235
Registriert: 19.09.2007 22:18

Re: JobQueue - MultiThread

Beitrag von c4s »

Ich beschäftige mich momentan damit den Bearbeitungsteil eines umfangreichen Batch-Tools (d.h. ein Programm, dass massenhaft Dateien verarbeitet) auf Multi-Threading umzustellen.
Dieses Projekt scheint mir gut geeignet einiges an Arbeit bzgl. Verwaltung usw. abnehmen zu können - In der PB-Community ist es wohl auch das Einzige diesbezüglich?!

Mittellange Rede, kurzer Sinn: Beide Download-Links funktionieren leider nicht mehr. Wurde das Projek seit 2009-2011 weiterentwickelt? Besteht die Chance die aktuellste Version herunterladen zu können?
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: JobQueue - MultiThread

Beitrag von cxAlex »

Hier mal ein kleiner Snapshot meines Projektverzeichnisses, habs kurz getestet, sollte unter der aktuellen PB - Version laufen.

Ich hab vor allem die LE - Version weiterentwickelt, also die Single-Thread und verwende dann mehrere Objekte davon, allerdings nicht in diesem Paket, bin grade in der Arbeit und hab den Ordner wohl noch nicht aufs NAS replizieren lassen. Die Multi-Thread Version hier sollte aber gute Dienste leisten.

https://skydrive.live.com/redir?resid=3 ... 51FB!23947

Gruß, Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Antworten