syberant / evolvim

A port and further development of carykh's evolv.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

implement multithreading

syberant opened this issue · comments

TODO:

  • remove any usage of unsafe, #10 is busy with the last one
  • remove any usage of RcSoftBody
  • make HLSoftBody thread-safe
  • try rayon for multithreading.

BTW: deadlocks are going to be a major problem.

Edit: deadlocks can currently be solved by not parallelising adjacent ‘Tile’s

On second thought it may be much easier to cut a huge board up into smaller pieces and then cache creatures traveling between them until a global synchronisation occurs, this is way easier and allows us to focus on single-thread performance and not have to deal much with multithreading.