Conventional programming models were designed to be used by expert programmers for programming for largescale multiprocessors, distributed computational clusters, or specialized parallel machines. These models, therefore, are deemed either too difficult for an"average" programmer (who will be expected to do parallel programming in the many-core world) or too inefficient to use for many-core architectures [3]. Similarly, conventional execution models were designed for performance, not scalability. To address the challenge of performance scalability for many-core architectures, we introduce Servo, a Service Oriented programming model that decomposes every program into a set of components (each with its own local memory, mutable state, and a program counter) that either request services or deliver services. Servo is characterized by the decoupling of logical communication mapping between program modules (or services) from physical communication mapping between modules. This all...