Parallel Optimization of Program Instructions Using Genetic Algorithms
Source abstract
Abstract
This paper describes an efficient solution to parallelize software program instructions, regardless of the programming language in which they are written. We solve the problem of the optimal distribution of a set of instructions on available processors. We propose a genetic algorithm to parallelize computations, using evolution to search the solution space. The stages of our proposed genetic algorithm are: The choice of the initial population and its representation in chromosomes, the crossover, and the mutation operations customized to the problem being dealt with. In this paper, genetic algorithms are applied to the entire search space of the parallelization of the program instructions problem. This problem is NP-complete, so there are no polynomial algorithms that can scan the solution space and solve the problem. The genetic algorithm-based method is general and it is simple and efficient to implement because it can be scaled to a larger or smaller number of instructions that must be parallelized. The parallelization technique proposed in this paper was developed in the C# programming language, and our results confirm the effectiveness of our parallelization method. Experimental results obtained and presented for different working scenarios confirm the theoretical results, and they provide insight on how to improve the exploration of a search space that is too large to be searched exhaustively.
Source: openalex_inverted_index · Quality: baseline
Research context
OpenAlex topics: Evolutionary Algorithms and Applications · Metaheuristic Optimization Algorithms Research · Parallel Computing and Optimization Techniques
SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.
References (32)
Show source-provided references
1. Code generation and reorganization in the presence of pipeline constraints
2. On arrival scheduling of real-time precedence constrained tasks on multi-processor systems using genetic algorithm10.1016/j.future.2018.10.013 ↗
3. Micheli · Synthesis and Optimization of Digital Circuits · 1994
4. Efficient backtracking instruction schedulers
5. Optimal instruction scheduling using integer programming
6. Building a basic block instruction scheduler using reinforcement learning and rollouts10.1023/A:1017976211990 ↗
7. Learning to schedule straight-line code
8. Perceptron learning for predicting the behavior of conditional branches
9. Genetic programming applied to compiler heuristic optimization10.1007/3-540-36599-0_22 ↗
10. Meta optimization: Improving compiler heuristics with machine learning10.1145/780822.781141 ↗
11. Adaptive java optimization using instance-based learning
12. MILEPOST GCC: Machine learning based research compiler
13. Feature selection and policy optimization for distributed instruction placement using reinforcement learning
14. Instruction scheduling using simulated annealing
15. A spatial path scheduling algorithm for EDGE architectures
16. Muchnick · Advanced Compiler Design and Implementation · 1997
17. Aho · Instruction-Level Parallelism · 2007
18. Instruction scheduling heuristic for an efficient FFT in VLIW processors with balanced resource usage
19. G. Kouveli, K. Kourtis, G. Goumas and N. Koziris, “Exploring the benefits of randomized instruction scheduling,” 2019. [Online]. Available: http://grow2011.inria.fr/media/papers/p3.pdf.
20. G. Tarsy and M. Woodard, “Method and apparatus for optimizing cost-based heuristic instruction schedulers,” US Patent #5,367,687, EP 0503928A3, filed 7/7/93, Granted 11/22/94.20G.
21. Genetic algorithms and instruction scheduling
22. Using genetic algorithms to fine-tune instruction scheduling heuristics
23. An approach to instruction scheduling at the processor architecture level for optimizing embedded software
24. An enhanced genetic algorithm with new operators for task scheduling in heterogeneous computing systems10.1016/j.engappai.2017.02.013 ↗
25. A new parallel DNA algorithm to solve the task scheduling problem based on inspired computational model10.1016/j.biosystems.2017.09.001 ↗
26. Non-identical parallel machine scheduling using genetic algorithm10.1016/j.eswa.2010.12.064 ↗
27. Sequential and parallel cellular automata-based scheduling algorithms10.1109/TPDS.2002.1041877 ↗
28. Holland · Adaptation in Natural and Artificial Systems · 1975
29. Goldberg · Genetic Algorithms in Search, Optimization, and Machine Learning · 1989
30. Genetic algorithms for task scheduling problem10.1016/j.jpdc.2009.09.009 ↗
31. A genetic algorithm to solve capacity assignment problem in a flow network10.32604/cmc.2020.010881 ↗
32. The development and evaluation of an improved genetic algorithm based on migration and artificial selection10.1109/21.259687 ↗