what is the meaning of "should not stand in the way of these optimizations, and maybe even allow the system to perform them for the application"?
BestBunny
I understand this as: if there are key optimizations that are used in the best implementations of an operation, then using high-level abstractions should still allow these optimizations to occur and maybe even have the system do the optimizations for the application.
rohany
I think this means that the abstractions we give to a user should not be able to construct a situation where the standard set of optimizations is no longer possible
paramecinm
It is really hard to achieve this since tasks (even in the same domain) may have different features and fancy low-level optimizations.
sandeep6189
Designing systems which optimize for one workload might be relatively easy. When generalised, the complexity will increase exponentially. One can think MapReduce as a great example.
what is the meaning of "should not stand in the way of these optimizations, and maybe even allow the system to perform them for the application"?
I understand this as: if there are key optimizations that are used in the best implementations of an operation, then using high-level abstractions should still allow these optimizations to occur and maybe even have the system do the optimizations for the application.
I think this means that the abstractions we give to a user should not be able to construct a situation where the standard set of optimizations is no longer possible
It is really hard to achieve this since tasks (even in the same domain) may have different features and fancy low-level optimizations.
Designing systems which optimize for one workload might be relatively easy. When generalised, the complexity will increase exponentially. One can think MapReduce as a great example.