1. A method of profiling a computer program, comprising the steps of: using a utility application to execute the computer program; on the basis of said execution of the computer program, identifying specific performance requirements of the computer program; determining a profile of the computer program from said identified performance requirements; and based on said determined profile, selecting resources for the computer program from a grid of computer services.