Suchergebnisse
Suchergebnisse 1-7 von insgesamt 7.
Die Optimierung wird sehr häufig gemacht. Im Schnitt sinds 10.000 Optimierungen von Q's. Deshalb dacht ich mir das auch mit dem Thread. Was ich probiert habe, ist, meiner Klasse, die die Optimierung durchführt, eine Membervariable boost::thread m_Thread zu geben, sodass nicht immer ein neuer Thread erzeugt werden muss. Allerdings gibt es iwie in C++ nicht die Möglichkeit (jedenfalls habe ich nichts entsprechendes finden können), zu sagen: //Sei m_Thread die private boost::thread variable meiner ...
Ja, ich habe mir das nochmal angeguckt und die Threaderstellung lohnt sich einfach nicht. Ich brauche etwa 1 ms für die Optimierung eines Q's. Ich denke, dass da dann die Threaderstellung einfach negativ ins Gewicht fällt. Ich müsste wohl selber so eine Art Threadpool schreiben, damit sich das eventuell lohnt (CRT kann ich nicht nutzen). Sry, noch den letzten Teil deiner Frage vergessen Schrompf: Die Threads greifen auf alle Sachen nur lesend zu, somit dachte ich mir, dass sich das mit dem Mutex...
Hmm okay, da du jetzt der zweite bist, kann es ja sein, dass ich etwas nicht verstanden habe, deshalb erklär ich kurz wie ich das sehe: Ich habe insgesamt 3 Aufgaben zu erledigen, wobei Aufgabe 1 ist opt(P), Aufgabe 2 ist opt(Q) und Aufgabe 3 ist machEtwasMit(P,Q) hängt somit also davon ab, dass Aufgabe 1+2 fertig sind, damit Aufgabe 3 starten kann. Wenn ich mein Programm habe, dann habe ich ja default mäßig einen Mainthread. Wenn ich jetzt in MyClass::Optimize(P,Q) bin, bin ich ja erstmal noch ...
Ne, das stimmt nicht ganz, was du schreibst und zwar aus folgendem Grund: Ich will ja P und Q optimieren. Die Optimierungen sind Unabhängig von einander, d.h. also, dass ich ja eigentlich die Optimierung für Q in einem neuen Thread anschmeißen kann und dann direkt nachdem der Thread gestartet ist, die Optimierung für P starten kann. Da ich nach der Optimierung der beiden aber beide brauche, muss ich auf den Thread mit dem Q warten, sollte dieser länger brauchen. Bsp: opt(P) ||(parallel) opt(Q) s...
Habe boost ohnehin schon includiert, weil ich es noch woanders brauche, ist ja im Prinzip egal
Vielen Dank für die schnelle Hilfe! Ich habe mich für deine 2. Lösung entschieden Schrompf, d.h. für die Lambda Funktion, jedoch mit boost::thread (es geht damit genau so 1:1). Leider musste ich feststellen, dass es kaum schneller eher sogar 2 Sekunden langsamer geworden ist und ich dachte, es wäre eine Topidee, um das Ganze performanter zu machen . Anscheinend löst Minpack wohl die Optimierungsaufgabe so schnell, dass sich der Threaderzeugungsoverhead kaum lohnt. So, hab ich es nun realisiert, ...
Hallöchen, ich versuche gerade eine cminpack(link zu der Seite von cminpack http://devernay.free.fr/hacks/cminpack/) Funktion parallel laufen zu lassen, doch es funktioniert leider nicht. Im Normalfall, würde ich die Funktion wie folgt aufrufen: __cminpack__func(lmdif1)(fcn, (list of other arguments such as int and double...)). Lmdif1 bedeutet, dass ich den Levenberg-Marquardt(LM-) Algorithmus für mein Problem nutzen möchte. __cminpack__func ist wie ich deuten kann (bin nämlich eigtl C#-Programm...