Releases: thomasWeise/moptipy
fixed another stupid typo
fixed another stupid typo
fixed a stupid typo
fixed a stupid typo
Refactoring of FFA-based Algorithms and More FFA-based Hybrids
Refactoring of FFA-based Algorithms and More FFA-based Hybrids
hopefully fixed dependency issue in log file generation
hopefully fixed dependency issue in log file generation
Removed Parallel Experiment Execution via Fork and Using pycommons 0.8.45
Python 3.12 uses multi-threading.
The parallel experiment execution via forking cannot be made to work properly, as it may lead to deadlocks and other issues in Python 3.12 due to the multi-threading.
We can also not use the spawn
or forkserver
contexts to create new processes, because they require that every shared data must be pickled.
Unfortunately, lambdas, which we basically use everywhere to create instance and algorithm objects in the experiment execution, cannot be pickled.
There is just no way to make this work.
Thus, I removed it entirely.
If we want parallel experiments, we just have to execute the experiment program multiple times in parallel.
This seems to be the safest method.
We also stepped to pycommons 0.8.45, which offers improved static testing and also uses the newest pylint version.
By applying this also to the tests
folder, lots of additional issues were found and removed.
Hopefully Fixed Issue with Experiment Execution
We wanted to use "spawn" as multiprocessing context, because "fork" is deprecated.
However, "spawn" cannot be used as it cannot pickle lambdas and almost all of our experiments use lambdas to generate algorithms and instances.
Without changing almost all code for experiment generation, right now, "spawn" is not usable.
In the long-term future, we will have to change the experiment generation facility entirely, probably to launch the python interpreter with the same command line arguments as the original process but with using only 1 CPU core or something.
This will have several other implications that need to be dealt with.
But it cannot be done now.
Now Using pycommons 0.8.44
Now Using pycommons 0.8.44
Now Supporting Only Python 3.12 and Using pycommons 0.8.43
Now Supporting Only Python 3.12 and Using pycommons 0.8.43
fixed bug that leads to division by zero if total_fes == 2 in _check_max_time_millis
fixed bug that leads to division by zero if total_fes == 2 in _check_max_time_millis
using new version of pycommons and dependency stepping
using new version of pycommons and dependency stepping