A computer-implemented method for executing programs in accordance with user-specified constraints, the method comprising: receiving an indication from a user (145a, 145b; 295) of one or more execution constraints for use in selecting one or more host computing systems (105a - 105d; 250, 290a -290n) to execute one or more copies of a program, said one or more host computing systems being comprised in one or more data centers (100; 299), the one or more execution constraints being based on at least one of locations of the one or more computing systems and of capabilities of the one or more computing systems related to executing the one or more program copies; automatically determining one or more candidate host computing systems that are available to execute the one or more program copies in accordance with the one or more execution constraints, the candidate host computing systems being selected from a predefined group of multiple distributed computing systems for use in executing programs of users of a program execution service; automatically selecting the one or more host computing systems to execute the one or more program copies from the candidate host computing systems, such that each of the selected one or more host computing systems is to execute at least one of the one or more program copies, wherein at least one of the one or more execution constraints is based on one or more indicated degrees of proximity between one or more indicated target computing resources and the one or more host computing systems selected to execute the one or more program copies, said one or more indicated target computing resources being comprised in one or more data centers, and wherein the determined candidate host computing systems each have a proximity to at least one of the indicated target computing resources that satisfies at least one of the indicated degrees of proximity, wherein the indicated degrees of proximity indicate a desired relative location between the selected one or more host computing systems and said one or more indicated target computing resources, wherein the one or more indicated target computing resources are computing systems that store one or more indicated groups of data; and initiating execution of the one or more program copies on the selected one or more host computing systems. receiving an indication from a user (145a, 145b; 295) of one or more execution constraints for use in selecting one or more host computing systems (105a - 105d; 250, 290a -290n) to execute one or more copies of a program, said one or more host computing systems being comprised in one or more data centers (100; 299), the one or more execution constraints being based on at least one of locations of the one or more computing systems and of capabilities of the one or more computing systems related to executing the one or more program copies; automatically determining one or more candidate host computing systems that are available to execute the one or more program copies in accordance with the one or more execution constraints, the candidate host computing systems being selected from a predefined group of multiple distributed computing systems for use in executing programs of users of a program execution service; automatically selecting the one or more host computing systems to execute the one or more program copies from the candidate host computing systems, such that each of the selected one or more host computing systems is to execute at least one of the one or more program copies, wherein at least one of the one or more execution constraints is based on one or more indicated degrees of proximity between one or more indicated target computing resources and the one or more host computing systems selected to execute the one or more program copies, said one or more indicated target computing resources being comprised in one or more data centers, and wherein the determined candidate host computing systems each have a proximity to at least one of the indicated target computing resources that satisfies at least one of the indicated degrees of proximity, wherein the indicated degrees of proximity indicate a desired relative location between the selected one or more host computing systems and said one or more indicated target computing resources, wherein the one or more indicated target computing resources are computing systems that store one or more indicated groups of data; and initiating execution of the one or more program copies on the selected one or more host computing systems.