Hello Andrea,
Thank you for your information.
As you point out, there is a trade-off between parallelization and handling global variables.
So how to shrink global variables is the first challenge for parallelization.
However, there are cases where global variables cannot be eliminated. For example, in the LifeGame I contributed to Community a few years ago, the global variable of the entire board cannot be eliminated.
Title is, Applying Instance Indexed OOP to Multi-core Life Game
Hirokazu Kobayashi, Free Posted 2 years ago.
Having said that, we cannot say that parallelization is meaningless. This is because you can get a reasonable computational speed. In this case, the approach is to take a thin band of regions adjacent to the edge of each parallelized region and copy it.
In addition, I introduced a virtual addressing method for the address of each region and managed everything with a uniform address, so programming seems to have been considerably abstracted.
Enjoy, Mathematica.