D
Dark Halo
Gast
Hallo,
ich hoffe, ich bin in diesem Forum richtig gelandet.
In einem Projekt würde ich gerne das Framework JGAP für evolutionäre Algorithmen benutzen. Da der Grundaufbau eines evolutionären Algorithmus nicht besonders kompliziert ist, lässt sich an vielen Stellen parallelisieren. Das Paradebeispiel ist die Berechnung der Fitness für ein Individuum, was innerhalb der Population für jedes Individuum unabhängig geschehen kann, d.h. die Aufrufe lassen sich hervorragend parallelisieren.
Da die Berechnungen bei dem Projekt doch recht intensiv sind, würde ich gerne die vorhandenen Ressourcen größtmöglich auslasten und die benötigte Zeit, so gut es geht, minimieren.
Ich habe allerdings kein Indiz dafür auffinden können, dass JGAP bereits von Haus aus parallelisiert, was auch nachvollziehbar ist; schließlich weiß das Framework ja nicht, ob nicht doch Abhängigkeiten irgendwo bestehen. Ebenfalls habe ich aber auch keine Gründe gefunden, die dafür sprechen, dass benutzerdefinierte Parallelisierung überhaupt möglich ist.
Aus diesem Grund suche ich nun hier Rat, in der Hoffnung, dass jemand vielleicht Bescheid weiß: Kann man JGAP benutzerdefiniert parallelisieren? Oder muss ich ggf. das Framework beiseite legen und mir selbst das Grundgerüst zusammenbasteln?
Um es nochmal klar zu stellen: Es geht mir nicht darum, die Fitnessfunktion oder genetische Operatoren zu parallelisieren, sondern die Aufrufe von jenen!
Es muss bspw. für 40 Individuen pro Generation jeweils einmal die Fitnessfunktion zur Berechnung des Fitnesswertes aufgerufen werden. Ich hätte also gerne, dass bei vier Threads statt 40 sequentiellen nur vier Mal 10 ( = 40 / 4) parallele Aufrufe benötigt werden.
Ich hoffe, dass jemand Rat weiß.
ich hoffe, ich bin in diesem Forum richtig gelandet.
In einem Projekt würde ich gerne das Framework JGAP für evolutionäre Algorithmen benutzen. Da der Grundaufbau eines evolutionären Algorithmus nicht besonders kompliziert ist, lässt sich an vielen Stellen parallelisieren. Das Paradebeispiel ist die Berechnung der Fitness für ein Individuum, was innerhalb der Population für jedes Individuum unabhängig geschehen kann, d.h. die Aufrufe lassen sich hervorragend parallelisieren.
Da die Berechnungen bei dem Projekt doch recht intensiv sind, würde ich gerne die vorhandenen Ressourcen größtmöglich auslasten und die benötigte Zeit, so gut es geht, minimieren.
Ich habe allerdings kein Indiz dafür auffinden können, dass JGAP bereits von Haus aus parallelisiert, was auch nachvollziehbar ist; schließlich weiß das Framework ja nicht, ob nicht doch Abhängigkeiten irgendwo bestehen. Ebenfalls habe ich aber auch keine Gründe gefunden, die dafür sprechen, dass benutzerdefinierte Parallelisierung überhaupt möglich ist.
Aus diesem Grund suche ich nun hier Rat, in der Hoffnung, dass jemand vielleicht Bescheid weiß: Kann man JGAP benutzerdefiniert parallelisieren? Oder muss ich ggf. das Framework beiseite legen und mir selbst das Grundgerüst zusammenbasteln?
Um es nochmal klar zu stellen: Es geht mir nicht darum, die Fitnessfunktion oder genetische Operatoren zu parallelisieren, sondern die Aufrufe von jenen!
Es muss bspw. für 40 Individuen pro Generation jeweils einmal die Fitnessfunktion zur Berechnung des Fitnesswertes aufgerufen werden. Ich hätte also gerne, dass bei vier Threads statt 40 sequentiellen nur vier Mal 10 ( = 40 / 4) parallele Aufrufe benötigt werden.
Ich hoffe, dass jemand Rat weiß.