私は、イメージを表すGPを生成しようとするGenetic Programmingプロジェクトに取り組んでいます。私のアプローチは、画像を別々の独立したセクションに分割し、別々のスレッドを使って画像を展開することです。JGAPでマルチスレッドを使用することに関して、私が知っておくべき「悩み」がありますか?
物事は非同期になるので、自然にオブジェクトを独立させたいと思っています。問題は、JGAPの特定のオブジェクトが実際に共有変数であることに気がついたため、スレッド間で共有されることになり、多くの問題が発生します。たとえば、同じ名前のVariablesがすべて同じであることに気づきました。つまり、複数のIGPプログラムを同時に評価したい場合は、変数をロックする必要があり、パフォーマンスが大幅に低下する可能性があります。
また、複数のGPConfigurationを作成しようとすると、プログラムを最初にリセットする必要があることに気付きました。だから、これは私にはすべてのGPConfigurationsが共有されているようです(つまり、複数のスレッドで同時に複数の構成を作成することはできません)。これは、GPProblemsの作成に時間がかかり、GPProblems作業を複数のスレッドに分割する時間を短縮することを望んでいました。
JGAPとスレッドを扱う際に知っておく必要がある「問題」がありますか?残念ながら、JGAPのドキュメントではマルチスレッドにはあまり触れられていないので、JGAPを経験したことのある人からアドバイスを受けたいと思っていました。
ありがとう、これは非常に有用な情報ですが、JGAPで作業していたのはずいぶん前に終わっていますが、将来はマルチスレッドで使用すると良いでしょう。 – 9a3eedi