1. An apparatus for provisioning software on a plurality of computational nodes in a distributed information processing system, the apparatus comprising: a LAN interface configured to receive a list of software modules in a software package for installation onto at least one of a plurality of computational nodes communicatively coupled together over a network; and a list of eligible computation nodes to receive the software modules for installation; a memory configured to store a set of information comprised in the list of nodes, wherein the set of information comprises information pertaining to dependencies between the list of software modules for installation and any software module installed on a given node of the plurality of nodes, wherein the list of nodes further comprises a set of installation metrics for each node in the list of nodes, wherein the set of installation metrics comprises at least a provisioning latency metric; a processor configured to assign a weight to each installation metric in the set of installation metric based on a set of provisioning policies; and configured to determine, for each node in the list of nodes, a cost factor associated with installing the software modules on the node based on each installation metric in the set of installation metrics and the weight assigned to each installation metric; and a comparator configured to select at least a first node in the plurality nodes for installation of the software modules based at least on the cost factor that has been determined for the at least first node; the processor further configured to install at least one software module in the list of software modules on the first node; configured to receive a job to be scheduled for execution on the first node; configured to determine that the job is dependent on the at least one software module; configured to determine that an availability of a set of resources necessary for executing the job on the first node is less than an availability of a set of resources on at least a second node in the plurality of nodes; configured to analyze, in response to determining that the availability of the set of resources necessary for executing the job on the first node is less than an availability of a set of resources on at least the second node, the second node; configured to determine, in response to the analyzing, that the second node fails to comprise the software module; configured to determine a first computational cost associated with the first node based on the availability of set of resources at the first node; configured to determine a second computational cost associated with the second node based on the set of installation metrics associated with installing the software application on the second node, wherein the set of installation metrics further comprises at least installation time of the software application; configured to compare the first computational cost with the second computation cost; and configured to select among the first and second nodes the node with a lowest computational cost factor for executing the job.