A task-parallel execution has been shown to be successful on homogeneous parallel systems for many applications providing a suitable degree of multiprocessor task parallelism. In this paper, we extend the model of task-parallel executions so that the same program can also be executed in heterogeneous systems and grid environments. The new model is particularly suited for large applications consisting of independent modules which can be mapped onto different parts of a distributed execution platform. We show that a suitable representation of the execution activities is crucial for combining a flexible multi-level specification with a dynamic scheduling that can be adapted to a dynamically changing execution environment. We also show how a collection of distributed task-managers organizes the distributed execution based on CORBA.