The Experts below are selected from a list of 312 Experts worldwide ranked by ideXlab platform
Victor Nicolet - One of the best experts on this subject based on the ideXlab platform.
-
synthesis of Divide and Conquer parallelism for loops
Programming Language Design and Implementation, 2017Co-Authors: Azadeh Farzan, Victor NicoletAbstract:Divide-and-Conquer is a common parallel programming skeleton supported by many cross-platform multithreaded libraries, and most commonly used by programmers for parallelization. The challenges of producing (manually or automatically) a correct Divide-and-Conquer parallel program from a given sequential code are two-fold: (1) assuming that a good solution exists where individual worker threads execute a code identical to the sequential one, the programmer has to provide the extra code for dividing the tasks and combining the partial results (i.e. joins), and (2) the sequential code may not be suitable for Divide-and-Conquer parallelization as is, and may need to be modified to become a part of a good solution. We address both challenges in this paper. We present an automated synthesis technique to synthesize correct joins and an algorithm for modifying the sequential code to make it suitable for parallelization when necessary. This paper focuses on class of loops that traverse a read-only collection and compute a scalar function over that collection. We present theoretical results for when the necessary modifications to sequential code are possible, theoretical guarantees for the algorithmic solutions presented here, and experimental evaluation of the approach's success in practice and the quality of the produced parallel programs.
-
PLDI - Synthesis of Divide and Conquer parallelism for loops
Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation - PLDI 2017, 2017Co-Authors: Azadeh Farzan, Victor NicoletAbstract:Divide-and-Conquer is a common parallel programming skeleton supported by many cross-platform multithreaded libraries, and most commonly used by programmers for parallelization. The challenges of producing (manually or automatically) a correct Divide-and-Conquer parallel program from a given sequential code are two-fold: (1) assuming that a good solution exists where individual worker threads execute a code identical to the sequential one, the programmer has to provide the extra code for dividing the tasks and combining the partial results (i.e. joins), and (2) the sequential code may not be suitable for Divide-and-Conquer parallelization as is, and may need to be modified to become a part of a good solution. We address both challenges in this paper. We present an automated synthesis technique to synthesize correct joins and an algorithm for modifying the sequential code to make it suitable for parallelization when necessary. This paper focuses on class of loops that traverse a read-only collection and compute a scalar function over that collection. We present theoretical results for when the necessary modifications to sequential code are possible, theoretical guarantees for the algorithmic solutions presented here, and experimental evaluation of the approachâ s success in practice and the quality of the produced parallel programs.
-
Automated Synthesis of Divide and Conquer Parallelism.
arXiv: Programming Languages, 2017Co-Authors: Azadeh Farzan, Victor NicoletAbstract:This paper focuses on automated synthesis of Divide-and-Conquer parallelism, which is a common parallel programming skeleton supported by many cross-platform multithreaded libraries. The challenges of producing (manually or automatically) a correct Divide-and-Conquer parallel program from a given sequential code are two-fold: (1) assuming that individual worker threads execute a code identical to the sequential code, the programmer has to provide the extra code for dividing the tasks and combining the computation results, and (2) sometimes, the sequential code may not be usable as is, and may need to be modified by the programmer. We address both challenges in this paper. We present an automated synthesis technique for the case where no modifications to the sequential code are required, and we propose an algorithm for modifying the sequential code to make it suitable for parallelization when some modification is necessary. The paper presents theoretical results for when this {\em modification} is efficiently possible, and experimental evaluation of the technique and the quality of the produced parallel programs.
Shuigeng Zhou - One of the best experts on this subject based on the ideXlab platform.
-
Divide-and-Conquer Tournament on Social Networks.
Scientific reports, 2017Co-Authors: Jiasheng Wang, Yichao Zhang, Jihong Guan, Shuigeng ZhouAbstract:In social gaming networks, previous studies extensively investigated the influence of a variety of strategies on reciprocal behaviors in the prisoner's dilemma game. The studied frameworks range from the case that an individual uniformly cooperates or defects with all social contacts, to the recently reported Divide-and-Conquer games, where an individual can choose a particular move to play with each neighbor. In this paper, we investigate a Divide-and-Conquer tournament among 14 well-known strategies on social gaming networks. In the tournament, an individual's fitness is measured by accumulated and average payoff aggregated for a certain number of rounds. On the base of their fitness, the evolution of the population follows a local learning mechanism. Our observation indicates that the distribution of individuals adopting a strategy in degree ranking fundamentally changes the frequency of the strategy. In the Divide-and-Conquer gaming networks, our result suggests that the connectivity in social networks and strategy are two key factors that govern the evolution of the population.
Azadeh Farzan - One of the best experts on this subject based on the ideXlab platform.
-
synthesis of Divide and Conquer parallelism for loops
Programming Language Design and Implementation, 2017Co-Authors: Azadeh Farzan, Victor NicoletAbstract:Divide-and-Conquer is a common parallel programming skeleton supported by many cross-platform multithreaded libraries, and most commonly used by programmers for parallelization. The challenges of producing (manually or automatically) a correct Divide-and-Conquer parallel program from a given sequential code are two-fold: (1) assuming that a good solution exists where individual worker threads execute a code identical to the sequential one, the programmer has to provide the extra code for dividing the tasks and combining the partial results (i.e. joins), and (2) the sequential code may not be suitable for Divide-and-Conquer parallelization as is, and may need to be modified to become a part of a good solution. We address both challenges in this paper. We present an automated synthesis technique to synthesize correct joins and an algorithm for modifying the sequential code to make it suitable for parallelization when necessary. This paper focuses on class of loops that traverse a read-only collection and compute a scalar function over that collection. We present theoretical results for when the necessary modifications to sequential code are possible, theoretical guarantees for the algorithmic solutions presented here, and experimental evaluation of the approach's success in practice and the quality of the produced parallel programs.
-
PLDI - Synthesis of Divide and Conquer parallelism for loops
Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation - PLDI 2017, 2017Co-Authors: Azadeh Farzan, Victor NicoletAbstract:Divide-and-Conquer is a common parallel programming skeleton supported by many cross-platform multithreaded libraries, and most commonly used by programmers for parallelization. The challenges of producing (manually or automatically) a correct Divide-and-Conquer parallel program from a given sequential code are two-fold: (1) assuming that a good solution exists where individual worker threads execute a code identical to the sequential one, the programmer has to provide the extra code for dividing the tasks and combining the partial results (i.e. joins), and (2) the sequential code may not be suitable for Divide-and-Conquer parallelization as is, and may need to be modified to become a part of a good solution. We address both challenges in this paper. We present an automated synthesis technique to synthesize correct joins and an algorithm for modifying the sequential code to make it suitable for parallelization when necessary. This paper focuses on class of loops that traverse a read-only collection and compute a scalar function over that collection. We present theoretical results for when the necessary modifications to sequential code are possible, theoretical guarantees for the algorithmic solutions presented here, and experimental evaluation of the approachâ s success in practice and the quality of the produced parallel programs.
-
Automated Synthesis of Divide and Conquer Parallelism.
arXiv: Programming Languages, 2017Co-Authors: Azadeh Farzan, Victor NicoletAbstract:This paper focuses on automated synthesis of Divide-and-Conquer parallelism, which is a common parallel programming skeleton supported by many cross-platform multithreaded libraries. The challenges of producing (manually or automatically) a correct Divide-and-Conquer parallel program from a given sequential code are two-fold: (1) assuming that individual worker threads execute a code identical to the sequential code, the programmer has to provide the extra code for dividing the tasks and combining the computation results, and (2) sometimes, the sequential code may not be usable as is, and may need to be modified by the programmer. We address both challenges in this paper. We present an automated synthesis technique for the case where no modifications to the sequential code are required, and we propose an algorithm for modifying the sequential code to make it suitable for parallelization when some modification is necessary. The paper presents theoretical results for when this {\em modification} is efficiently possible, and experimental evaluation of the technique and the quality of the produced parallel programs.
Jiasheng Wang - One of the best experts on this subject based on the ideXlab platform.
-
Divide-and-Conquer Tournament on Social Networks.
Scientific reports, 2017Co-Authors: Jiasheng Wang, Yichao Zhang, Jihong Guan, Shuigeng ZhouAbstract:In social gaming networks, previous studies extensively investigated the influence of a variety of strategies on reciprocal behaviors in the prisoner's dilemma game. The studied frameworks range from the case that an individual uniformly cooperates or defects with all social contacts, to the recently reported Divide-and-Conquer games, where an individual can choose a particular move to play with each neighbor. In this paper, we investigate a Divide-and-Conquer tournament among 14 well-known strategies on social gaming networks. In the tournament, an individual's fitness is measured by accumulated and average payoff aggregated for a certain number of rounds. On the base of their fitness, the evolution of the population follows a local learning mechanism. Our observation indicates that the distribution of individuals adopting a strategy in degree ranking fundamentally changes the frequency of the strategy. In the Divide-and-Conquer gaming networks, our result suggests that the connectivity in social networks and strategy are two key factors that govern the evolution of the population.
Peter Arbenz - One of the best experts on this subject based on the ideXlab platform.
-
Towards a Divide and Conquer Algorithm for the Real Nonsymmetric Eigenvalue Problem
SIAM Journal on Matrix Analysis and Applications, 1994Co-Authors: Loyce Adams, Peter ArbenzAbstract:Theory is developed that could be used towards developing a Divide and Conquer algorithm for the nonsymmetric eigenvalue problem. The shortcomings of this theory and its application to the Hessenberg and nonsymmetric tridiagonal problems are discussed. The conclusion is made that the method may not be as promising as the Divide and Conquer methods for symmetric problems.