1. A method for allocating a task in a computing environment, the method comprising: receiving, at each of a plurality of computing devices, a task execution estimation request message from a central server, wherein the task execution estimation request message comprises a worst-case execution time (WCET) corresponding to the computing device; computing, by each of the plurality of computing devices, an estimate task execution time for the task based on the WCET and a state transition model corresponding to the computing device, wherein the state transition model indicates available processing resources corresponding to the computing device, wherein the computing comprises: identifying a current state of the computing device, wherein the current state is a state in which the task execution estimation request message is received; ascertaining one or more paths from the current state based on the state transition model, wherein the state transition model comprises a plurality of states of the computing device, and wherein each path from the one or more paths comprises one or more states from amongst the plurality of states of the computing device; computing, for each path from the one or more paths, a path task execution time and a path traverse value, wherein the path task execution time indicates a time period taken by the computing device for executing the task on the path, and wherein the path task execution time is based on processing information annotated with each of the one or more states corresponding to the path, and wherein the processing information corresponds to the available processing resources of the computing device in the state, and wherein the path traverse value indicates a probability of the computing device to traverse the path; determining a path, from amongst the one or more paths, having a highest path traverse value; selecting the path task execution time corresponding to the path as the estimate task execution time; transmitting, by each of the plurality of computing devices, the estimate task execution time to the central server; allocating the task to a computing device from amongst the plurality of computing devices based on the estimate task execution time corresponding to the computing devices; and executing the task on the computing device from amongst the plurality of computing devices.