1. A method for locating a plurality of elements on a surface, said method comprising the steps of: assigning the elements to portions of the surface; preplacing the elements onto the surface; repositioning the elements depending on affinities of the elements; and connecting the elements on the surface, wherein said step of repositioning the elements is performed using a plurality of processors and comprises: (1) dividing the surface into a plurality of regions; (2) assigning non-adjacent regions to said processors, each processor determining affinities of at least some of the elements in its assigned region to locations in other regions; and (3) repositioning at least some of the elements to locations in other regions based on the affinities.