1. A computer implemented method for determining resources allocation, the method comprising: identifying resources in a distributed computing environment, wherein each of the resources is capable of performing at least a part of an assigned task; and computing an optimal resources configuration using a set of pre-determined parameters including at least a target completion time to complete the assigned task.