The Experts below are selected from a list of 29784 Experts worldwide ranked by ideXlab platform

Sebastian Burckhardt - One of the best experts on this subject based on the ideXlab platform.

  • practical parallel and Concurrent Programming
    Technical Symposium on Computer Science Education, 2011
    Co-Authors: Caitlin Sadowski, Thomas Ball, Judith Bishop, Sebastian Burckhardt, Ganesh Gopalakrishnan, Joseph Mayo, Madanlal Musuvathi, Shaz Qadeer, Stephen H Toub
    Abstract:

    Multicore computers are now the norm. Taking advantage of these multiple cores entails parallel and Concurrent Programming. There is therefore a pressing need for courses that teach effective Programming on multicore architectures. We believe that such courses should emphasize high-level abstractions for performance and correctness and be supported by tools. This paper presents a set of freely available course materials for parallel and Concurrent Programming, along with a testing tool for performance and correctness concerns called Alpaca (A Lovely Parallelism And Concurrency Analyzer). These course materials can be used for a comprehensive parallel and Concurrent Programming course, a la carte throughout an existing curriculum, or as starting points for graduate special topics courses. We also discuss tradeoffs we made in terms of what to include in course materials.

  • SIGCSE - Practical parallel and Concurrent Programming
    Proceedings of the 42nd ACM technical symposium on Computer science education - SIGCSE '11, 2011
    Co-Authors: Caitlin Sadowski, Thomas Ball, Judith Bishop, Sebastian Burckhardt, Ganesh Gopalakrishnan, Joseph Mayo, Madanlal Musuvathi, Shaz Qadeer, Stephen H Toub
    Abstract:

    Multicore computers are now the norm. Taking advantage of these multiple cores entails parallel and Concurrent Programming. There is therefore a pressing need for courses that teach effective Programming on multicore architectures. We believe that such courses should emphasize high-level abstractions for performance and correctness and be supported by tools. This paper presents a set of freely available course materials for parallel and Concurrent Programming, along with a testing tool for performance and correctness concerns called Alpaca (A Lovely Parallelism And Concurrency Analyzer). These course materials can be used for a comprehensive parallel and Concurrent Programming course, a la carte throughout an existing curriculum, or as starting points for graduate special topics courses. We also discuss tradeoffs we made in terms of what to include in course materials.

  • Concurrent Programming with revisions and isolation types
    Conference on Object-Oriented Programming Systems Languages and Applications, 2010
    Co-Authors: Sebastian Burckhardt, Alexandro Baldassin, Daan Leijen
    Abstract:

    Building applications that are responsive and can exploit parallel hardware while remaining simple to write, understand, test, and maintain, poses an important challenge for developers. In particular, it is often desirable to enable various tasks to read or modify shared data Concurrently without requiring complicated locking schemes that may throttle concurrency and introduce bugs. We introduce a mechanism that simplifies the parallel execution of different application tasks. Programmers declare what data they wish to share between tasks by using isolation types, and execute tasks Concurrently by forking and joining revisions. These revisions are isolated: they read and modify their own private copy of the shared data only. A runtime creates and merges copies automatically, and resolves conflicts deterministically, in a manner declared by the chosen isolation type. To demonstrate the practical viability of our approach, we developed an efficient algorithm and an implementation in the form of a C# library, and used it to parallelize an interactive game application. Our results show that the parallelized game, while simple and very similar to the original sequential game, achieves satisfactory speedups on a multicore processor.

Stephen H Toub - One of the best experts on this subject based on the ideXlab platform.

  • practical parallel and Concurrent Programming
    Technical Symposium on Computer Science Education, 2011
    Co-Authors: Caitlin Sadowski, Thomas Ball, Judith Bishop, Sebastian Burckhardt, Ganesh Gopalakrishnan, Joseph Mayo, Madanlal Musuvathi, Shaz Qadeer, Stephen H Toub
    Abstract:

    Multicore computers are now the norm. Taking advantage of these multiple cores entails parallel and Concurrent Programming. There is therefore a pressing need for courses that teach effective Programming on multicore architectures. We believe that such courses should emphasize high-level abstractions for performance and correctness and be supported by tools. This paper presents a set of freely available course materials for parallel and Concurrent Programming, along with a testing tool for performance and correctness concerns called Alpaca (A Lovely Parallelism And Concurrency Analyzer). These course materials can be used for a comprehensive parallel and Concurrent Programming course, a la carte throughout an existing curriculum, or as starting points for graduate special topics courses. We also discuss tradeoffs we made in terms of what to include in course materials.

  • SIGCSE - Practical parallel and Concurrent Programming
    Proceedings of the 42nd ACM technical symposium on Computer science education - SIGCSE '11, 2011
    Co-Authors: Caitlin Sadowski, Thomas Ball, Judith Bishop, Sebastian Burckhardt, Ganesh Gopalakrishnan, Joseph Mayo, Madanlal Musuvathi, Shaz Qadeer, Stephen H Toub
    Abstract:

    Multicore computers are now the norm. Taking advantage of these multiple cores entails parallel and Concurrent Programming. There is therefore a pressing need for courses that teach effective Programming on multicore architectures. We believe that such courses should emphasize high-level abstractions for performance and correctness and be supported by tools. This paper presents a set of freely available course materials for parallel and Concurrent Programming, along with a testing tool for performance and correctness concerns called Alpaca (A Lovely Parallelism And Concurrency Analyzer). These course materials can be used for a comprehensive parallel and Concurrent Programming course, a la carte throughout an existing curriculum, or as starting points for graduate special topics courses. We also discuss tradeoffs we made in terms of what to include in course materials.

Bertrand Meyer - One of the best experts on this subject based on the ideXlab platform.

  • design of an empirical study for comparing the usability of Concurrent Programming languages
    Information & Software Technology, 2013
    Co-Authors: Sebastian Nanz, Faraz Torshizi, Michela Pedroni, Bertrand Meyer
    Abstract:

    Abstract Context: Developing Concurrent software has long been recognized as a difficult and error-prone task. To support developers, a multitude of language proposals exist that promise to make Concurrent Programming easier. Empirical studies are needed to support the claim that a language is more usable than another. Objective: This paper presents the design of a study to compare Concurrent Programming languages with respect to comprehending and debugging existing programs and writing correct new programs. The design is applied to a comparison of two object-oriented languages for concurrency, multithreaded Java and SCOOP. Method: A critical challenge for such a study is avoiding the bias that might be introduced during the training phase and when interpreting participants’ solutions. We address these issues by the use of self-study material and an evaluation scheme that exposes any subjective decisions of the corrector, or eliminates them altogether. Results: The study template consisting of the experimental design and the structure of the self-study and evaluation material is demonstrated to work successfully in an academic setting. The concrete instantiation of the study template shows results in favor of SCOOP even though the study participants had previous training in writing multithreaded Java programs. Conclusion: It is concluded that the proposed template of a small but therefore easy-to-implement empirical study with a focus on core language constructs is helpful in characterizing the usability of Concurrent Programming paradigms. Applying the template to further languages could shed light on which approaches are promising and hence drive language research into the right direction.

  • design of an empirical study for comparing the usability of Concurrent Programming languages
    Empirical Software Engineering and Measurement, 2011
    Co-Authors: Sebastian Nanz, Faraz Torshizi, Michela Pedroni, Bertrand Meyer
    Abstract:

    The recent turn towards multicore processing architectures has made concurrency an important part of mainstream software development. As a result, an increasing number of developers have to learn to write Concurrent programs, a task that is known to be hard even for the expert. Language designers are therefore working on languages that promise to make Concurrent Programming "easier". However, the claim that a new language is more usable than another cannot be supported by purely theoretical considerations, but calls for empirical studies. In this paper, we present the design of a study to compare Concurrent Programming languages with respect to comprehending and debugging existing programs and writing correct new programs. A critical challenge for such a study is avoiding the bias that might be introduced during the training phase and when interpreting participants' solutions. We address these issues by the use of self-study material and an evaluation scheme that exposes any subjective decisions of the corrector, or eliminates them altogether. We apply our design to a comparison of two object-oriented languages for concurrency, multithreaded Java and SCOOP (Simple Concurrent Object-Oriented Programming), in an academic setting. We obtain results in favor of SCOOP even though the study participants had previous training in writing multithreaded Java programs.

Roberto Souto Maior De Barros - One of the best experts on this subject based on the ideXlab platform.

  • a large scale study on the usage of java s Concurrent Programming constructs
    Journal of Systems and Software, 2015
    Co-Authors: Gustavo Pinto, Weslley Torres, Benito Fernandes, Fernando Castor, Roberto Souto Maior De Barros
    Abstract:

    An analysis of 2227 Java projects, comprising more than 650 million lines of code.Seventy seven percent of the projects create threads or employ a concurrency control mechanism.Concurrent Programming constructs are used both frequently and intensively.Adoption of java.util.Concurrent is moderate (23% of the Concurrent projects use it).Efficient and safe data structures, e.g., ConcurrentHashMap, are not yet widely used. In both academia and industry, there is a strong belief that multicore technology will radically change the way software is built. However, little is known about the current state of use of Concurrent Programming constructs. In this work we present an empirical work aimed at studying the usage of Concurrent Programming constructs of 2227 real world, stable and mature Java projects from SourceForge. We have studied the usage of Concurrent techniques in the most recent versions of these applications and also how usage has evolved along time. The main findings of our study are: (I) More than 75% of the latest versions of the projects either explicitly create threads or employ some concurrency control mechanism. (II) More than half of these projects exhibit at least 47 synchronized methods and 3 implementations of the Runnable interface per 100,000 LoC, which means that not only Concurrent Programming constructs are used often but they are also employed intensively. (III) The adoption of the java.util.Concurrent library is only moderate (approximately 23% of the Concurrent projects employ it). (IV) Efficient and thread-safe data structures, such as ConcurrentHashMap, are not yet widely used, despite the fact that they present numerous advantages.

Caitlin Sadowski - One of the best experts on this subject based on the ideXlab platform.

  • practical parallel and Concurrent Programming
    Technical Symposium on Computer Science Education, 2011
    Co-Authors: Caitlin Sadowski, Thomas Ball, Judith Bishop, Sebastian Burckhardt, Ganesh Gopalakrishnan, Joseph Mayo, Madanlal Musuvathi, Shaz Qadeer, Stephen H Toub
    Abstract:

    Multicore computers are now the norm. Taking advantage of these multiple cores entails parallel and Concurrent Programming. There is therefore a pressing need for courses that teach effective Programming on multicore architectures. We believe that such courses should emphasize high-level abstractions for performance and correctness and be supported by tools. This paper presents a set of freely available course materials for parallel and Concurrent Programming, along with a testing tool for performance and correctness concerns called Alpaca (A Lovely Parallelism And Concurrency Analyzer). These course materials can be used for a comprehensive parallel and Concurrent Programming course, a la carte throughout an existing curriculum, or as starting points for graduate special topics courses. We also discuss tradeoffs we made in terms of what to include in course materials.

  • SIGCSE - Practical parallel and Concurrent Programming
    Proceedings of the 42nd ACM technical symposium on Computer science education - SIGCSE '11, 2011
    Co-Authors: Caitlin Sadowski, Thomas Ball, Judith Bishop, Sebastian Burckhardt, Ganesh Gopalakrishnan, Joseph Mayo, Madanlal Musuvathi, Shaz Qadeer, Stephen H Toub
    Abstract:

    Multicore computers are now the norm. Taking advantage of these multiple cores entails parallel and Concurrent Programming. There is therefore a pressing need for courses that teach effective Programming on multicore architectures. We believe that such courses should emphasize high-level abstractions for performance and correctness and be supported by tools. This paper presents a set of freely available course materials for parallel and Concurrent Programming, along with a testing tool for performance and correctness concerns called Alpaca (A Lovely Parallelism And Concurrency Analyzer). These course materials can be used for a comprehensive parallel and Concurrent Programming course, a la carte throughout an existing curriculum, or as starting points for graduate special topics courses. We also discuss tradeoffs we made in terms of what to include in course materials.