For discrete-event simulations with a large number of objects, parallelization provides an opportunity for improved performance. However, if simulation objects are not placed carefully, the additional communication costs can outweigh the performance gain from adding CPUs. For many simulations, the large number of objects makes manual placement of objects impractical. We present two new algorithms for static load balancing that, using a small amount of domain knowledge and run-time measurements, automatically discover objects of different classes that communicate frequently and place these objects on the same processor. We compare results obtained from a missile defense simulation implemented in SPEEDES using our algorithms to those obtained with previously published load-balancing algorithms.