Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Servo: a programming model for many-core computing

Published: 01 May 2008 Publication History

Abstract

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.

References

[1]
TejaNP*: A Software Platform for Network Processors: http://www.teja.com.
[2]
The Cascade High Productivity Language. HIPS, 00:52--60, 2004.
[3]
In ManyCore Computing Workshop, June 2007.
[4]
K. Asanovic, R. Bodik, B. C. Catanzaro, J. J. Gebis, P. Husbands, K. Keutzer, D. A. Patterson, W. L. Plishker, J. Shalf, S. W. Williams, and K. A. Yelick. The landscape of parallel computing research: A view from berkeley. Technical Report UCB/EECS-2006-183, EECS Department, University of California, Berkeley, Dec 2006.
[5]
H. Balakrishnan, M. F. Kaashoek, D. Karger, R. Morris, and I. Stoica. Looking up data in p2p systems. Commun. ACM, 46(2):43--48, 2003.
[6]
J.-Y. Brunel, K. A. Vissers, P. Lieverse, P. van der Wolf, W. M. Kruijtzer, W. J. M. Smits, G. Essink, and E. A. de Kock. Yapi: Application modeling for signal processing systems. DAC, 00:402--405, 2000.
[7]
P. Charles, C. Grothoff, V. Saraswat, C. Donawa, A. Kielstra, K. Ebcioglu, C. von Praun, and V. Sarkar. X10: an object-oriented approach to non-uniform cluster computing. SIGPLAN Not., 40(10):519--538, 2005.
[8]
Y. Chawathe, S. Ratnasamy, L. Breslau, N. Lanham, and S. Shenker. Making gnutella-like p2p systems scalable. In SIGCOMM '03: Proceedings of the 2003 conference on Applications, technologies, architectures, and protocols for computer communications, pages 407--418, New York, NY, USA, 2003. ACM Press.
[9]
A. Chien. Pervasive parallel computing: An historic opportuity for innovation in programming and architecture. In PPoPP07 Keynote Address, Mar. 2007.
[10]
J. Dean and S. Ghemawat. Mapreduce: simplified data processing on large clusters. In OSDI'04: Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation, pages 10--10, Berkeley, CA, USA, 2004. USENIX Association.
[11]
T. Erl. Service-Oriented Architecture: Concepts, Technology, and Design. Prentice Hall PTR, Upper Saddle River, NJ, USA, 2005.
[12]
D. N. Gray, J. Hotchkiss, S. LaForge, A. Shalit, and T. Weinberg. Modern languages and microsoft's component object model. Commun. ACM, 41(5):55--65, 1998.
[13]
S. Harizopoulos and A. Ailamaki. Stageddb: Designing database servers for modern hardware. IEEE Data Eng. Bull., 28(2):11--16, 2005.
[14]
G. C. Hunt and J. R. Larus. Singularity: rethinking the software stack. SIGOPS Oper. Syst. Rev., 41(2):37--49, 2007.
[15]
P. Husbands, C. Iancu, and K. Yelick. A performance analysis of the berkeley upc compiler. In ICS '03: Proceedings of the 17th annual international conference on Supercomputing, pages 63--73, New York, NY, USA, 2003. ACM Press.
[16]
Intel. http://www.intel.com/research/platform/terascale/ts_microprocessors.htm.
[17]
C. F. Joerg. The cilk system for parallel multithreaded computing. PhD thesis, Cambridge, MA, USA, 1995.
[18]
G. L. S. Jr. Parallel programming and parallel abstractions in fortress. In M. Hagiya and P. Wadler, editors, FLOPS, volume 3945 of Lecture Notes in Computer Science, page 1. Springer, 2006.
[19]
L. V. Kale and S. Krishnan. CHARM++: A Portable Concurrent Object-Oriented System Based on C++. In A. Paepcke, editor, Proceedings of the Conference on Object Oriented Programming Systems, Languages and Applications (OOPSLA), pages 91--108. ACM Press, September 1993.
[20]
C. H. Koelbel, D. B. Loveman, R. S. Schreiber, J. Guy L. Steele, and M. E. Zosel. The high performance Fortran handbook. MIT Press, Cambridge, MA, USA, 1994.
[21]
J. R. Larus and M. Parkes. Using cohort scheduling to enhance server performance (extended abstract). In LCTES/OM, pages 182--187, 2001.
[22]
N. Leibowitz, M. Ripeanu, and A. Wierzbicki. Deconstructing the kazaa network. In WIAPP '03: Proceedings of the The Third IEEE Workshop on Internet Applications, page 112, Washington, DC, USA, 2003. IEEE Computer Society.
[23]
H. Lu, Y. C. Hu, and W. Zwaenepoel. Openmp on networks of workstations. In Supercomputing '98: Proceedings of the 1998 ACM/IEEE conference on Supercomputing (CDROM), pages 1--15, Washington, DC, USA, 1998. IEEE Computer Society.
[24]
MathWorksInc. Real-time workshop user's guide.
[25]
B. Nichols, D. Buttlar, and J. P. Farrell. Pthreads programming. O'Reilly & Associates, Inc., Sebastopol, CA, USA, 1996.
[26]
M. D. Noakes, D. A. Wallach, and W. J. Dally. The J-machine multicomputer: An architectural evaluation. In Proceedings of the20th Annual International Symposium on Computer Architecture, pages 224--235, 1993.
[27]
M. Snir and S. Otto. MPI-The Complete Reference: The MPI Core. MIT Press, Cambridge, MA, USA, 1998.
[28]
T. A. Standish. Ppl - an extensible language that failed. SIGPLAN Not., 6(12):144--145, 1971.
[29]
W. Thies, M. Karczmarek, and S. P. Amarasinghe. Streamit: A language for streaming applications. In CC '02: Proceedings of the 11th International Conference on Compiler Construction, pages 179--196, London, UK, 2002. Springer-Verlag.
[30]
G. Upadhyaya, V. S. Pai, and S. P. Midkiff. Expressing and exploiting concurrency in networked applications with aspen. In PPoPP '07: Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming, pages 13--23, New York, NY, USA, 2007. ACM Press.
[31]
M. Welsh, D. E. Culler, and E. A. Brewer. SEDA: An architecture for well-conditioned, scalable internet services. In Symposium on Operating Systems Principles, pages 230--243, 2001.
[32]
A. Wolfe. Toolkit: Longhorn ties platform apps to core operating system. Queue, 2(6):16--19, 2004.
[33]
Z. Yang and K. Duddy. CORBA: A platform for distributed object computing (a state-of-the-art report on OMG/CORBA). Operating Systems Review, 30(2):4--31, 1996.

Cited By

View all
  • (2009)Architectural Support and Evaluation of Cilk Language on Many-Core ArchitecturesChinese Journal of Computers10.3724/SP.J.1016.2008.0197531:11(1975-1985)Online publication date: 16-Oct-2009

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGARCH Computer Architecture News
ACM SIGARCH Computer Architecture News  Volume 36, Issue 2
May 2008
77 pages
ISSN:0163-5964
DOI:10.1145/1399972
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 May 2008
Published in SIGARCH Volume 36, Issue 2

Check for updates

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2009)Architectural Support and Evaluation of Cilk Language on Many-Core ArchitecturesChinese Journal of Computers10.3724/SP.J.1016.2008.0197531:11(1975-1985)Online publication date: 16-Oct-2009

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media