1. A method of operating a high performance computing cluster that includes multiple nodes that each include multiple processors and monitoring hardware, the method comprising: monitoring, by the monitoring hardware, communication between a plurality of threads assigned to the multiple processors; periodically broadcasting, by the monitoring hardware, information, related to a level of processor utilization and network utilization at each of the multiple nodes, from each of the multiple nodes to remaining ones of the multiple nodes; updating, by the monitoring hardware, respective local job tables maintained in each of the multiple nodes based on the broadcast information; and reassigning, by the monitoring hardware, based on the broadcast information in the respective local job tables, at least one of the one or more threads to a different one of the multiple processors such that threads of a job complete at substantially the same time, wherein the reassigning includes: cracking one of the threads that is executing on a first processor, included in the multiple processors, into at least two secondary threads based on a first workload of the first processor; moving one of the at least two secondary threads to a second processor, included in the multiple processors, based on a second workload of the second processor; and moving identified threads of the plurality of threads that communicate above a threshold level to identified processors of the multiple processors that are located physically closer to each other than processors of the multiple processors that previously executed the identified threads.