1. A method of profiling and selecting grid resources for a computer program including source code, comprising the steps of: using a utility application to execute the computer program on a virtual machine; inserting a wrapper between the utility application and the virtual machine, said wrapper providing pass through access to the virtual machine and monitoring and recording usage characteristics of the computer program by the wrapper instrumenting said source code with monitoring hooks to determine grid capable resources that the computer program can utilize; on the basis of said execution of the computer program, identifying specific performance requirements of the computer programs wherein said specific performance requirements include memory allocation requirements, I/O intensiveness, network usage, CPU, and math operation; determining a profile of the computer program from said identified performance requirements, including using the wrapper to build a configuration file for the utility application, said configuration file providing application specific data needed to execute the application using services from a given grid of distributed computer services; and based on said determined profile, selecting resources for the computer program from a said grid of computer services, including the steps of: presenting selected parameters of the computer program to an administrator; said administrator having an option to override any particular selection of resources; and said administrator defining a relative priority for the distribution of resources from the grid.