In my experience, I never managed to use the `parallel` construct. One of the goals of 2020 is to introduce Z3 theorem prover in the compiler and its first use-case would be to prove array accesses (it's not in the milestones yet so hopefuly @Araq can confirm: [https://github.com/nim-lang/RFCs/milestone/1)](https://github.com/nim-lang/RFCs/milestone/1\)).
For multithreading the standard library module is plagued with issues and the plan is to replace it with [https://github.com/yglukhov/threadpools](https://github.com/yglukhov/threadpools). For high-performance use-case i.e. you also need a smart scheduler and not just a thin wrapper around threads, I suggest you use [https://github.com/mratsim/weave](https://github.com/mratsim/weave) (disclaimer: it's my own library). Note that none of those work with the `parallel` statement This can be applied to this `parallel` or also for simple for-loop to avoid checking array accesses at each access but only once before loop-entry.
