A distributed application may be considered as a set of interacting entities continuously evolving. Such application can be modeled as a graph with one-to-one mappings between vertices and entities and between edges and communications. Performances depend directly on a good load balancing of the entities between available computing devices and on the minimization of the impact of the communications between them. However, both objectives are contradictory and good performances are achieved if and only if a good tradeoff is found. Our method for finding such a tradeoff is new and based on colored ant colonies. Each computing resource is associated to one ant colony characterized by a color, allowing an implicit consideration of the load balancing constraint. Then, using colored pheromones, ants are just seeking for communicating structures. The method operates on graphs which structural and numerical parameters may change dynamically during the execution.