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