skip to main content
10.1145/1229428.1229433acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
Article

Expressing and exploiting concurrency in networked applications with aspen

Published: 14 March 2007 Publication History

Abstract

This paper presents Aspen, a high-level programming language thattargets both high-productivity programming and runtime support formanaging resources needed by a computation. Programs in Aspen arerepresented as directed graphs, where the edges are well-definedunidirectional communication channels and the nodes are instances of computational modules that process the incoming data. The resulting representation of a program closely resembles a flow chart describing the flow of computation in a server application and exposing the communicationat a high level of abstraction. This strategy for program composition naturally allows parallelism and data sharing to be factored out of the core computational logic of a program, facilitating a division of labor between parallelism expertsand application experts and also easing code development and maintenance. Aspen automatically and transparently supports task-level parallelism among module instancesand data-level parallelism across different flows in an application or, in some cases, across different work items within a flow. Aspen automatically and adaptively allocates threads to modules according to the dynamic workload seen at those modules.
Aspen is tested using a web server and a video-on-demand (VoD)server. Both servers are compared to serverapplications coded in other languages (such as C, C++, and Java). The Aspen programs achieve the same functionality despiteusing 54--96% fewer lines of user code. Nevertheless, the Aspen version always performs competitively, with performance that is always similar to or better than previous web server implementations and that sees never more than a 10% performance degradation in the VoD server. On the other hand, some work loads see superior performance with Aspen: Aspen's runtime thread allocation strategy allows the video-on-demand server to support up to 36% more simultaneous 1 Mbps video streams than a hand-tuned C++ version.

References

[1]
e. K. A. Forst and O. Bukhres. General purpose work flow languages. Journal on Parallel and Distributed Databases, (2):1--33, April 1995.
[2]
K. Arvind and R. S. Nikhil. Executing a program on the mit tagged-token dataflow architecture. IEEE Trans. Comput., 39(3):300--318, 1990.
[3]
R. Bastide, P. Palanque, O. Sy, and D. Navarre. Formal specification of corba services: experience and lessons learned. In OOPSLA '00: Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 105--117, New York, NY, USA, 2000. ACM Press.
[4]
Brad Appleton. Sclc and Cdiff: Perl scripts for ClearCase. At http://www.cmcrossroads.com/broada/clearperl/sclc-cdiff.html.
[5]
J. Buck, S. Ha, E. A. Lee, and D. G. Messerschmitt. Ptolemy: A Framework for Simulating and Prototyping Heterogeneous Systems. International Journal of Computer Simulation, 4:155--182, April 1994.
[6]
B. Burns, K. Grimaldi, A. Kostadinov, E. D. Berger, and M. D. Corner. Flux: A Language for Programming High-Performance Servers. In Proceedings of the USENIX 2006 Annual Technical Conference, pages 129--142, June 2006.
[7]
B6700 wfl primer, 1979. Available in the Gregory Publishing Company collection, Burroughs Manuals, 1976-1983, Charles Babbage Institute, University of Minnesota (Box 1, folder 3).
[8]
A. Chanda. An efficient threading model to boost server performance. Master's thesis, Rice University, May 2003.
[9]
M.K. Chen, X.F. Li, R. Lian, J.H. Lin, L. Liu, T. Liu, and R. Ju. Shangri-La: Achieving High Performance from Compiled Network Applications while Enabling Ease of Programming. In Proceedings of the ACM SIGPLAN 2005 Conference on Programming Language Design and Implementation, June 2005.
[10]
D. Clitherow, S. Herzog, A. Salla, V. Sokal, and J. Trethewey. OS/390 Workload Manager Implementation and Exploitation. International Business Machines, May 1999.
[11]
P. Dickman. Objects in large distributed applications (olda-ii). In OOPSLA '92: Addendum to the proceedings on Object-oriented programming systems, languages, and applications (Addendum), pages 63--69, New York, NY, USA, 1992. ACM Press.
[12]
D. Gay, P. Levis, R. von Behren, M. Welsh, E. Brewer, and D. Culler. The nesc Language: A Holistic Approach to Networked Embedded Systems. In Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation, pages 1--11, June 2003.
[13]
L. George and M. Blume. Taming the IXP Network Processor. In Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation, pages 26--37, June 2003.
[14]
Globus resource specification language rsl v1.0, 2006. Last checked Jan. 5, 2006.
[15]
Globus grid toolkit, 2006. Last checked Jan. 5, 2006.
[16]
S. Gulwani, A. Tarachandani, D. Gupta, D. Sanghi, L. P. Barreto, G. Muller, and C. Consel. WebCaL: A Domain Specific Language for Web Caching. In Proceedings of the 5th International Web Caching and Content Delivery Workshop, May 2000.
[17]
J. Gurd and W. Bohm. Implicit parallel processing: SISAL on the Manchester dataflow computer. In Proceedings of the IBM-Europe Institute on Parallel Programming, Aug. 1987.
[18]
N. Harvey and J. Morris. NL: A general purpose visual dataflow language. Australian Computer Journal, 12(1):2--12, 1996.
[19]
C. Hoare. Communicating sequential processes. Communications of the ACM, 21(8), Aug. 1978.
[20]
Os/390 v2r10.0 mvs jcl reference, 2000. Document number GC28-1757-09.
[21]
U. J. Kapasi, S. Rixner, W. J. Dally, B. Khailany, J. H. Ahn, P. Mattson, and J. D. Owens. Programmable Stream Processors. IEEE Computer, pages 54--62, August 2003.
[22]
H. Kim, S. Rixner, and V. S. Pai. Network Interface Data Caching. IEEE Transactions on Computers, 54(11), November 2005.
[23]
J. R. Larus and M. Parkes. Using Cohort Scheduling to Enhance Server Performance. In Proceedings of the 2002 USENIX Annual Technical Conference, pages 103--114, June 2002.
[24]
R. Morris, E. Kohler, J. Jannotti, and M. F. Kaashoek. The Click modular router. TOCS, 18(3):263--297, August 2000.
[25]
E. Nahum, T. Barzilai, and D. Kandlur. Performance Issues in WWW Servers. In Proceedings of the SIGMETRICS Conference on Measurement and Modeling of Computer Systems, pages 216--217, May 1999.
[26]
V. S. Pai, P. Druschel, and W. Zwaenepoel. Flash: An Efficient and Portable Web Server. In Proceedings of the USENIX 1999 Annual Technical Conference, pages 199--212, June 1999.
[27]
R. Salama, W. Liu, and R. S. Gyurcsik. Software experience with concurrent c and lisp in a distributed system. In CSC '88: Proceedings of the 1988 ACM sixteenth annual conference on Computer science, pages 329--334, New York, NY, USA, 1988. ACM Press.
[28]
S. K. Shrivastava, G. N. Dixon, and G. D. Parrington. An overview of the arjuna distributed programming system. IEEE Softw., 8(1):66--73, 1991.
[29]
The Standard Performance Evaluation Corporation. SPECWeb99 Benchmarks. At http://www.spec.org/osg/web99/, 1999.
[30]
The Standard Performance Evaluation Corporation. SPECWeb2005 Benchmarks. At http://www.spec.org/osg/web2005/, 2005.
[31]
P. Thiemann. An Embedded Domain-Specific Language for Type-Safe Server-Side Web-Scripting. ACM Transactions on Internet Technology, 5(1):1--46, February 2005.
[32]
W. Thies, M. Karczmarek, and S. Amarasinghe. Streamit: A language for streaming applications. In International Conference on Compiler Construction, Grenoble, France, April 2002.
[33]
M. Vachharajani, N. Vachharajani, D. A. Penry, J. A. Blome, and D. I. August. Microarchitectural Exploration with Liberty. In Proceedings of the 35th Annual International Symposium on Microarchitecture, pages 271--282, November 2002.
[34]
J. R. von Behren, E. A. Brewer, N. Borisov, M. Chen, M. Welsh, J. MacDonald, J. Lau, S. Gribble, and D. Culler. Ninja: A Framework for Network Services. In Proceedings of the 2002 USENIX Annual Technical Conference, pages 87--102, June 2002.
[35]
R. von Behren, J. Condit, F. Zhou, G. C. Necula, and E. Brewer. Capriccio: Scalable threads for internet services. In Proceedings of the 19th ACM Symposium on Operating Systems Principles, October 2003.
[36]
P. H. Welch. An occam approach to transputer engineering. In Proceedings of the third conference on Hypercube concurrent computers and applications, pages 138--147, New York, NY, USA, 1988. ACM Press.
[37]
M. Welsh, D. Culler, and E. Brewer. Seda: An architecture for well-conditioned, scalable internet services. In Proceedings of the 18th ACM Symposium on Operating Systems Principles, October 2001.

Cited By

View all
  • (2022)A Comprehensive Exploration of Languages for Parallel ComputingACM Computing Surveys10.1145/348500855:2(1-39)Online publication date: 18-Jan-2022
  • (2021)Fine-grained pipeline parallelization for network function programsProceedings of the 2021 IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO51591.2021.9370309(162-173)Online publication date: 27-Feb-2021
  • (2020)EQueue: Elastic Lock-Free FIFO Queue for Core-to-Core Communication on Multi-Core ProcessorsIEEE Access10.1109/ACCESS.2020.29970718(98729-98741)Online publication date: 2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PPoPP '07: Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming
March 2007
284 pages
ISBN:9781595936028
DOI:10.1145/1229428
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 March 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. network servers
  2. parallel programming
  3. programming languages
  4. resource management

Qualifiers

  • Article

Conference

PPoPP07
Sponsor:

Acceptance Rates

PPoPP '07 Paper Acceptance Rate 22 of 65 submissions, 34%;
Overall Acceptance Rate 230 of 1,014 submissions, 23%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)2
Reflects downloads up to 02 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2022)A Comprehensive Exploration of Languages for Parallel ComputingACM Computing Surveys10.1145/348500855:2(1-39)Online publication date: 18-Jan-2022
  • (2021)Fine-grained pipeline parallelization for network function programsProceedings of the 2021 IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO51591.2021.9370309(162-173)Online publication date: 27-Feb-2021
  • (2020)EQueue: Elastic Lock-Free FIFO Queue for Core-to-Core Communication on Multi-Core ProcessorsIEEE Access10.1109/ACCESS.2020.29970718(98729-98741)Online publication date: 2020
  • (2018)C-StreamACM Transactions on Parallel Computing10.1145/31841204:3(1-27)Online publication date: 27-Apr-2018
  • (2018)Efficient Deep Neural Network Serving: Fast and FuriousIEEE Transactions on Network and Service Management10.1109/TNSM.2018.280835215:1(112-126)Online publication date: Mar-2018
  • (2017)A Flexible Communication Mechanism for Pipeline Parallelism2017 IEEE International Symposium on Parallel and Distributed Processing with Applications and 2017 IEEE International Conference on Ubiquitous Computing and Communications (ISPA/IUCC)10.1109/ISPA/IUCC.2017.00119(778-785)Online publication date: Dec-2017
  • (2015)Few-to-ManyACM SIGARCH Computer Architecture News10.1145/2786763.269438443:1(161-175)Online publication date: 14-Mar-2015
  • (2015)Few-to-ManyACM SIGPLAN Notices10.1145/2775054.269438450:4(161-175)Online publication date: 14-Mar-2015
  • (2015)Optimal Aggregation Policy for Reducing Tail Latency of Web SearchProceedings of the 38th International ACM SIGIR Conference on Research and Development in Information Retrieval10.1145/2766462.2767708(63-72)Online publication date: 9-Aug-2015
  • (2015)Few-to-ManyProceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/2694344.2694384(161-175)Online publication date: 14-Mar-2015
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media