The high performance Fortran handbook
The high performance Fortran handbook
The J-machine multicomputer: an architectural evaluation
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
CHARM++: a portable concurrent object oriented system based on C++
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
CORBA: a platform for distributed object computing
ACM SIGOPS Operating Systems Review
Pthreads programming
The cilk system for parallel multithreaded computing
The cilk system for parallel multithreaded computing
Modern languages and Microsoft's component object model
Communications of the ACM
YAPI: application modeling for signal processing systems
Proceedings of the 37th Annual Design Automation Conference
Using Cohort Scheduling to Enhance Server Performance (Extended Abstract)
OM '01 Proceedings of the 2001 ACM SIGPLAN workshop on Optimization of middleware and distributed systems
SEDA: an architecture for well-conditioned, scalable internet services
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
OpenMP on networks of workstations
SC '98 Proceedings of the 1998 ACM/IEEE conference on Supercomputing
MPI-The Complete Reference, Volume 1: The MPI Core
MPI-The Complete Reference, Volume 1: The MPI Core
Looking up data in P2P systems
Communications of the ACM
StreamIt: A Language for Streaming Applications
CC '02 Proceedings of the 11th International Conference on Compiler Construction
A performance analysis of the Berkeley UPC compiler
ICS '03 Proceedings of the 17th annual international conference on Supercomputing
PPL - an extensible language that failed
Proceedings of the international symposium on Extensible languages
Deconstructing the Kazaa Network
WIAPP '03 Proceedings of the The Third IEEE Workshop on Internet Applications
Making gnutella-like P2P systems scalable
Proceedings of the 2003 conference on Applications, technologies, architectures, and protocols for computer communications
Longhorn Ties Platform Apps to Core Operating System
Queue - VoIP
Service-Oriented Architecture: Concepts, Technology, and Design
Service-Oriented Architecture: Concepts, Technology, and Design
X10: an object-oriented approach to non-uniform cluster computing
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Expressing and exploiting concurrency in networked applications with aspen
Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming
Pervasive parallel computing: an historic opportunity for innovation in programming and architecture
Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming
Singularity: rethinking the software stack
ACM SIGOPS Operating Systems Review - Systems work at Microsoft Research
MapReduce: simplified data processing on large clusters
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
Hi-index | 0.00 |
Conventional programming models were designed to be used by expert programmers for programming for large-scale 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 allows the services to be migrated and replicated during execution. The proposed model also allows the granularity of data parallel operations to be changed dynamically. This allows runtime variation in the locking granularity which in turn enables higher write-parallelism. Finally, the models partition even data into services. This can significantly enhance locality and makes it possible to have superlinear speedups with increasing number of cores. Our preliminary investigations demonstrate significant performance scalability advantages for Servo.