ScholarWorks@UMassAmherst (University of Massachusetts Amherst) · 2006 · 30 citations · 19 references
Open access
ComputingComputer ScienceHigh-performance ComputingCompilersProgramming LanguagesSystems ProgrammingParallel Computing SystemsPerformance Bottleneck AnalysisDiscrete-event ModelingDiscrete-event SystemsHardware ResourcesHigh PerformanceHigh-performance Computing SystemsPerformance PredictionScalability BottlenecksWeb Servers
Programming high-performance server applications is challenging. It is both complicated and error-prone to write the concurrent code required to deliver high performance and scalability. Server performance bottlenecks are difficult to identify and correct. Finally, it is difficult to predict server performance prior to deployment. This paper presents Flux, a language that dramatically simplifies the construction of scalable high-performance server applications. Flux lets programmers compose offthe-shelf, sequential C or C++ functions into concurrent servers. Flux programs are type-checked and guaranteed to be deadlock-free. We have built a number of servers in Flux, including a web server with PHP support, an image-rendering server, a BitTorrent peer, and a game server. These Flux servers match or exceed the performance of their counterparts written entirely in C. By tracking hot paths through a running server, Flux simplifies the identification of performance bottlenecks. The Flux compiler also automatically generates discrete event simulators that accurately predict actual server performance under load and with different hardware resources. Flux is both easy to use and unusually compact, allowing entire servers to be specified in tens of lines of code. 1
19
Eddie Kohler, Robert Morris, Benjie Chen et al. · ACM Transactions on Computer Systems · 2000 · 2.4K citations · Full text
Matt Welsh, David Culler · 2001 · 847 citations
Richard J. Lipton · Communications of the ACM · 1975 · 459 citations · Full text