A method for automatically scaling a distributed computer system processing a request, the request to be completed by a deadline, the method comprising: determining, at a first point in time - t 0 -a first number of nodes for a cluster to process the request, wherein the first number of nodes is bounded by minimum and maximum cluster settings; assigning an amount of nodes equal to the first number of nodes to the cluster to process the request; determining a rate of progress of the request, and determining if the rate of progress is sufficient to complete the request by the deadline; determining, at a second point in time - t 1 -and based on the rate of progress of the request and a determined completion rate per node, a second number of nodes for the cluster to process the request to complete the request by the deadline, wherein the second number of nodes may be bounded by the minimum and maximum cluster settings; and modifying the number of nodes assigned to the cluster to process the request to equal the second number of nodes; characterized in that, if the second number of nodes is less than the first number of nodes: requesting a number of nodes equal to the difference between the first number of nodes and the second number of nodes be quiesced, and terminating the quiesced nodes from the cluster, wherein before terminating any quiesced nodes from the cluster: determining if a node requested to be quiesced has completed any assigned processing or task; and upon determination that the node requested to be quiesced has not completed any assigned processing or task, allowing the node requested to be quiesced to complete any assigned processing or task and then terminating the node from the cluster. determining, at a first point in time - t 0 -a first number of nodes for a cluster to process the request, wherein the first number of nodes is bounded by minimum and maximum cluster settings; assigning an amount of nodes equal to the first number of nodes to the cluster to process the request; determining a rate of progress of the request, and determining if the rate of progress is sufficient to complete the request by the deadline; determining, at a second point in time - t 1 -and based on the rate of progress of the request and a determined completion rate per node, a second number of nodes for the cluster to process the request to complete the request by the deadline, wherein the second number of nodes may be bounded by the minimum and maximum cluster settings; and modifying the number of nodes assigned to the cluster to process the request to equal the second number of nodes; characterized in that, if the second number of nodes is less than the first number of nodes: requesting a number of nodes equal to the difference between the first number of nodes and the second number of nodes be quiesced, and terminating the quiesced nodes from the cluster, wherein before terminating any quiesced nodes from the cluster: determining if a node requested to be quiesced has completed any assigned processing or task; and upon determination that the node requested to be quiesced has not completed any assigned processing or task, allowing the node requested to be quiesced to complete any assigned processing or task and then terminating the node from the cluster. determining if a node requested to be quiesced has completed any assigned processing or task; and upon determination that the node requested to be quiesced has not completed any assigned processing or task, allowing the node requested to be quiesced to complete any assigned processing or task and then terminating the node from the cluster.