1. A processor-based method for allocating hardware resources to computing applications, the hardware resources organized within a network topology, the computing applications organized within a distributed architecture, the method comprising: determining, by a processor, which of the hardware resources are to be assigned to each computing application by solving a resource-assignment problem pursuant to a model representing the computing applications within the distributed architecture, specifically to minimize a network traffic-weighted inter-hardware resource distance while satisfying processing, communication, and storage requirements of each computing application without exceeding capacity limits of a network underlying the network topology; and, assigning, by the processor, the hardware resources to the computing applications in accordance with determinations that have been made as to which of the hardware resources are to be assigned to each computing application, wherein the model is a first model, and wherein determining which of the hardware resources are to be assigned to each computing application by solving the resource-assignment problem pursuant to the first model representing the computing applications within the distributed architecture comprises: employing a second model accommodating a scenario in which more than one of the computing applications is assigned to a same one of the hardware resources, wherein the second model comprises: a first computing application that is a member of a set of all the computing applications within the distributed architecture; a first data file that is a member of a set of all the data files to be stored on the hardware resources; a first parameter that is an amount of write traffic from the computing application to the first data file and that is a first matrix; and, a second parameter that is an amount of read traffic to the computing application from the first data file and that is a second matrix.