1. A method for improving functionality of a computer system comprising a cluster of nodes, the method comprising: selecting a first trial design setup for the cluster of nodes, wherein the first trial design setup comprises a determination of a respective set of computing resources to be provided on each of a plurality of nodes of the cluster of nodes; identifying a plurality of parameters that affect the cluster of nodes performing a Map Reduce job; determining a relationship between each of the identified parameters and a maximization of resource utilization for the cluster of nodes; representing a workflow for the Map Reduce job based upon one or more supply-demand relationships among the cluster of nodes; modeling an execution cost for the Map Reduce job as a function of the plurality of identified parameters and determining the execution cost using a mapper cost function comprising: TF mapper = f tfm ⁡ ( T mapper , T cfm , M cost ) @ ⌈ T mapper N n × T cfm ⌉ × M cost wherein T mapper is a total number of mappers, T cfm is a total number of containers for a mapper in a node, M cost is a default cost incurred by the mapper, TF mapper is a mapper cost, and N n is a number of nodes; formulating a mixed-integer non-linear programming problem to minimize the execution cost for the Map Reduce job; reformulating the mixed-integer non-linear programming problem as a mixed-integer linear programming problem; solving the mixed-integer linear programming problem to determine a combination of parameter values for the plurality of identified parameters that minimizes the execution cost for the Map Reduce job; configuring the cluster of nodes into the first trial design setup using the determined combination of parameter values; determining a first performance result number for the first trial design setup; and configuring the cluster of nodes into a second trial design setup when the first performance result number is not acceptable; otherwise, using the first trial design setup as a final design setup.