[WIP] Feat/multithreading#570
Conversation
a301c25 to
1f8f80b
Compare
|
Hi @raldone01, There is also a bit of redundancy in the commits you are making compared to our current codebase. For example, we explicitly already support multiprocessing through the use of Gymnasium Vector Environments. Some of this work is great, such as finding:
You probably need to provide a justification past "makes more sense" to get any PRs accepted. Does that make sense? |
|
Sure. I will finish this and then we could evaluate if anything would be interesting to get upstream. I will use the fork for my projects. I found a lot of the inner workings to be very confusing and performance was a big pain point for me. Multithreading is key for me since I want to avoid the subprocess overhead. This improves the use case with pytorch for me. The env creation times were also very very slow especially the random vec generation. Without the lock file this pr cuts out quite a bit of code like -1-2k lines without loosing any functionality. I don't think I will be able to spend the time to upstream all changes. But if you ever did a version 4 or 5 it would be great if you could take the time to evaluate the state of the fork. Some breaking changes could be avoided. Also just give this fork a try. The performance difference is really crazy. Especially benchmark creation and teardown. I can squash/cleanup the git history if that would be important too at some point. |
This is a rewrite of the internals of Metaworld.
It aims to cleanup, improve performance and enable multithreading.
It contains some breaking changes but I think these would be very beneficial to MetaWorld.
Changes/Fixes
__init__cleanupmax_episode_stepsdown to the base env.goal-hiddenandgoal-obserablevariants as these can be trivially created by the user by providing thegoal_observablekwarg to any benchmark env.Bugs found
Changes TODO
Questions
Out of scope
Ideally avoid inheritance and use composition here.
Includes #569.