Die Suche ergab 12 Treffer

von Horus
19.05.2014, 11:44
Forum: Algorithmen und Datenstrukturen
Thema: Zufällige 2DMap-Generierung
Antworten: 21
Zugriffe: 11374

Re: Zufällige 2DMap-Generierung

Hi, ich habe eine Methode die dich vielleicht interessiert. Die Map hier wurde so erstellt: https://www.youtube.com/watch?feature=player_embedded&v=kAFwiQ5D1tg Die Map besteht nur als Blockiert- und- Frei Tiles. Das ist beliebig erweiterbar! Die Formen sind flüssig und vorab beeinflussbar. Ich h...
von Horus
19.05.2014, 11:09
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Effiziente Synchronisation von Threads
Antworten: 34
Zugriffe: 6264

Re: Effiziente Synchronisation von Threads

Hey, schön, dass euch die Videos gefallen. Dabei ist alles noch in einem sehr frühen Stadium. Die grundlegenden Funktionen der Engine wollen solide implementiert sein! Designentscheidungen treffe ich oft aufgrund von Benchmarking. Datenorientierung hat Objektorientierung abgelöst. Das alles braucht ...
von Horus
18.05.2014, 10:35
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Effiziente Synchronisation von Threads
Antworten: 34
Zugriffe: 6264

Re: Effiziente Synchronisation von Threads

Ich habe die oben erläuterte Methode in meiner Zielanwendung ausprobiert und die maximale Updatefrequent mit derjenigen verglichen, welche durch Einsatz zweier concurrency::parallel_for erzielt wurde. Ich konnte im Rahmen der Ablesegenauigkeit keinen Unterschied feststellen. Natürlich ziehe ich die ...
von Horus
17.05.2014, 12:19
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Effiziente Synchronisation von Threads
Antworten: 34
Zugriffe: 6264

Re: Effiziente Synchronisation von Threads

Dass ist nett, dass du ein minimales Beispiel gemacht hast. Danke, das Kompliment kann ich nur zurückgeben. Du brauchst allerdings mindestens zwei Events. Die Racecondition hast du ja schon selber erkannt. Ohne Mainthread ist das etwas tricky, aber es geht so: Die Lösung ist echt cool. Performanter...
von Horus
16.05.2014, 22:45
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Effiziente Synchronisation von Threads
Antworten: 34
Zugriffe: 6264

Re: Effiziente Synchronisation von Threads

Also, ich habe es mit dem WaitForSingleObject() probiert. In meinem Anwendungsfall funktioniert es nicht, bzw. ist nicht Threadsicher. http://pastebin.com/4dHaVS64 Zwischen Zeile 15 und 21 kann ein Thread einen anderen überholen. Locks nutzen nichts, ich müsste ja unlocken, nachdem Threads WaitForSi...
von Horus
16.05.2014, 18:32
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Effiziente Synchronisation von Threads
Antworten: 34
Zugriffe: 6264

Re: Effiziente Synchronisation von Threads

Nein, die sind überhaupt nicht für sowas geeignet, steht sogar extra der Hinweis in der MSDN Das ist mir im Grunde bekannt. Eine Begründung findet sich nicht so richtig. Vermutlich, weil es schnell zu gemeinen Fehlern kommt, da man nicht prüfen kann ob ein Thread schon suspendet ist, wenn er sich s...
von Horus
16.05.2014, 14:40
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Effiziente Synchronisation von Threads
Antworten: 34
Zugriffe: 6264

Re: Effiziente Synchronisation von Threads

ResumeThread() und SuspendThread() sind nicht zur Synchronisierung gedacht und sollten auch nicht dafür verwendet werden. Das ist mir bekannt, jedoch erscheint das Konzept sinnvoll, um mehrere Threads die warten müssen aus dem "busy wait" zu bekommen. Ich glaube "CriticalSections&quo...
von Horus
16.05.2014, 10:14
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Effiziente Synchronisation von Threads
Antworten: 34
Zugriffe: 6264

Re: Effiziente Synchronisation von Threads

Hi, "Pause" macht etwas völlig anderes. Pause ist Teil von SSE2 und bremst den Prozessor für Busy Waits(Spinloops) etwas, ohne mehr Rechenkapazität und Strom zu verschwenden als nötig ist und sollte dafür eine leicht schonendere Umsetzung erlauben. Ich werde das mal in meinem Projekt probi...
von Horus
15.05.2014, 20:16
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Effiziente Synchronisation von Threads
Antworten: 34
Zugriffe: 6264

Re: Effiziente Synchronisation von Threads

Also, Yield nimmt in der Tat nicht _mm_pause() Nach dem gestrigen Prinzip habe ich einen Threadpool implementiert und noch weiter getestet. ThreadPool.h http://pastebin.com/4JJk9qs8 Und der Test: http://pastebin.com/QpVnh1zz In Zeile 38 des Threadpool habe ich folgende probiert: std::this_thread::yi...
von Horus
15.05.2014, 09:17
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Effiziente Synchronisation von Threads
Antworten: 34
Zugriffe: 6264

Re: Effiziente Synchronisation von Threads

Hi, Ich erinnere mich, dass x86 einen speziellen Spinlock-Befehl hat, den die CPU auch als „warte und schieb andere Hyperthreads dazwischen; Ok das werde ich prüfen, falls es nicht der Befehel ist nehme ich den und prüfe mal die Update-rate. Ansonsten habe ich mir den Quelltext nicht weiter angescha...
von Horus
14.05.2014, 17:04
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Effiziente Synchronisation von Threads
Antworten: 34
Zugriffe: 6264

Re: Effiziente Synchronisation von Threads

Yield-Schleifen sind übel für das Betriebssystem. Wenn grad nix zu tun ist, kriegt der Nutzer damit ein ganzes Bündel hässlicher Effekte, schlimmstenfalls die Rückkehr der guten alten sprunghaften Maus. Ok, danke, das mit dem Yield nehme ich mir nochmal vor. SuspendThread und ResumeThread vielleich...
von Horus
14.05.2014, 13:32
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Effiziente Synchronisation von Threads
Antworten: 34
Zugriffe: 6264

Effiziente Synchronisation von Threads

Hi, ich wollte mal eure Meinungen zu meiner Synchronisationsklasse einholen. Kann man da noch was drehen, damit das Ding noch schneller wird? Kann es zu Deadlocks kommen? (Im Test gab es bisher noch keine) So sieht die Klasse aus: http://pastebin.com/ajVSe1La So wird sie genutzt: http://pastebin.com...