Goal Increase performance – Use all available resources – Adapt to changes Increase productivity – Use high-level language – Generic algorithm implementations
(some) Existing solutions Productivity Performance System languages Scripting languages Manually optimized Autotuners Milepost SEJITS PetaBricks Milepost – Doesn’t adapt Autotuners – Very complex! SEJITS – Kernels in ELL Delite – Custom DSLs PetaBricks – Separate language – Improvements! Delite
Existing solutions Insufficient productivity – Manual efficiency layer implementation – Custom language Insufficient performance – Limited usage of resources (unless specifically implemented) Tied to a single environment