Grid programming environments are tools designed to isolate users from issues such as heterogeneity, scalability and adaptability, thus simplifying the use of a Grid infrastructure. This paper presents work stealing programming environment (WSPE), a Grid programming environment for Grid-unaware applications. WSPE can be defined as a programming environment, since it is a software tool that presents both a programming model and an execution system. The WSPE consists of a simple programming interface and a fully decentralized runtime system following a peer-to-peer organization, both presented in this paper. It's runtime system employs a new scheduling mechanism, known as round stealing, inspired by the idea of work stealing. The main focus of our work is to research on methods to achieve efficient execution of parallel applications in a Grid computing infrastructure. By simulation, we show that our scheduling mechanism outperforms a more traditional mechanism in a Grid environment. We also demonstrate how an appropriate choice for a network overlay mechanism can further improve the execution efficiency. and in the processing power of low cost commodity resources. These facts, among others, led to the definition of Grid computing. Consequently, new issues were identified and other issues were reviewed with enhanced requirements. These issues now need to be faced so that these environments can be used in a simple and efficient way. This paper addresses some important issues related to programming and executing distributed applications in Grid environments.In 2006, a new classification for Grid applications was proposed to group them using a concept known as virtualization, which can be defined by the abstraction level of the Grid from the point of view of the application [1]. Grid-aware applications explicitly use resources that are known beforehand, whereas Grid-unaware applications see the Grid as a completely virtualized environment. Parallel applications are a good example of Grid-unaware applications, as they basically use as many processor cycles as there are available.Grid-unaware applications require programming environments to manage their execution on a Grid [1,2]. These tools should provide the programmer with high-level abstractions for a specific programming model and devise automatic mechanisms in order to offer good performance and efficient execution using available resources, thus isolating the user from the dynamics of the underlying infrastructure.Scheduling is one of the hardest problems to solve in order to achieve efficient execution from a distributed system. In a highly dynamic environment such as the Grid, especially for Grid-unaware applications, scheduling algorithms cannot assume that a fixed set of resources will be available during the entire course of an execution. Besides scheduling, two other fundamentally relevant issues when designing a Grid programming environment are scalability and volatility. The use of peer-to-peer architectures [3] has been gaining increased acceptance due to...