1 | Allows for composition of the computational task from components (reusable modules) |
2 | Different tools to support various programming models such as data parallel, task parallel, data flow, object oriented |
3 | No assumption on granularity |
4 | Metadata about components and support for archiving and mining the components |
5 | Support for instrumentation and steering |