 Each block can have a different native implementation for each processor type.Users simply program using these abstractions and an intelligent compiler chooses the best implementation based on the context.Managing concurrency acquires a central role in developing parallel applications.