1. A method of dynamically scheduling application tasks in a distributed task-based system, the method comprising: considering potential task scheduling actions for each application on a node; determining a predicted cost for each of the potential scheduling actions; selecting a scheduling action that minimizes a predicted sum cost for all applications running on the node; observing actual states of the applications resulting from the selected scheduling action; and updating the predicted cost for each state of each application, wherein updating the predicted cost for each state of each application includes employing a reinforcement learning methodology, the reinforcement learning methodology employing a following formula C i (s i )′=C(s i )+α t (c−c ave +C(s j )−C(s i )), wherein C i (s i ) is an updated cost for a previously observed state s i , C(s i ) is a cost of the previously observed state s i , α t is a learning rate that decreases over time, c is an application cost observed since states s i , c ave is an average value of c since a beginning of the cost updating process, and C(s j ) is a cost of currently observed state s j .