One benefit of designing Spatial around the constructs of controllers is that they may be used in hierarchies to better visualize and improve the performance of programs. Within any given outer controller, its controllers may be measured at runtime to determine the performance benefits from applying different options. We saw in class that one can alter outer controllers (switching the scheduling alg), and inner controllers (altering parallelization levels). Spatial makes it relatively easy for a programmer to performance optimize their code, and reach better efficiency than higher level software-only languages.
One benefit of designing Spatial around the constructs of controllers is that they may be used in hierarchies to better visualize and improve the performance of programs. Within any given outer controller, its controllers may be measured at runtime to determine the performance benefits from applying different options. We saw in class that one can alter outer controllers (switching the scheduling alg), and inner controllers (altering parallelization levels). Spatial makes it relatively easy for a programmer to performance optimize their code, and reach better efficiency than higher level software-only languages.