2 1 several capabilities are needed to do this including support for an architecture independent parallel programming environment task migration automatic resource allocation and fault tolerance