I have been trying to understand the polytope model used for loop nest optimizations. Now while going through some of the thesis written on this, i came across the term/phrase "linear code" a number of times in relation to whether a particular loop can be executed in parallel. The following is a text from one of the thesis:
The theory concerning loop analyses and transformations is unified in a well known mathematical framework called the polytope model. However, it's applicability is limited to array-based scientific applications exhibiting explicit linearity.
As far as my knowledge (which is limited) is concerned, i think it has to do something with the memory accesses and loop bounds . I am not from a CS background and hence don't have much theoretical knowledge, if this is a topic taught in a typical CS class. If not i would like to know what is it, i am just not able to get a hang of it.
If anyone can provide a detailed explanation that would be good or any resources where i can learn about this, that would also do great.
P.S : I am happy to make any further editions or add details which may be require to answer it better.