{"title":"在VIPLE中提高多线程性能的算法","authors":"G. Luca, Sami Mian","doi":"10.1109/ISADS.2017.33","DOIUrl":null,"url":null,"abstract":"Flowchart-based programming languages are useful because they are easy to interpret on the user end, and have recently become more popular in implementation in certain fields. In this framework, a program is recognized as a flowchart. In this flowchart, different parts of the program can be executed concurrently or in an optimized order using scheduling algorithms. However, more complex equations, such as large heuristic algorithms for path finding, tend to result in huge slowdowns in execution time due to execution delays in the pipeline. The solution of this paper is to create an algorithm that uses multithreading to maximize the speedup of a given program, while taking into account both theoretical limits as well as implementation limits (due to thread creation and destruction, synchronization, and load balancing). This algorithm also incorporates a new form of branch prediction, which will limit the number of calculations and threads needed in these workflows. Implementation and analysis of the results of this algorithm's use are explored at the end of this paper.","PeriodicalId":303882,"journal":{"name":"2017 IEEE 13th International Symposium on Autonomous Decentralized System (ISADS)","volume":"30 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Improving Multithreaded Performance Algorithmically in VIPLE\",\"authors\":\"G. Luca, Sami Mian\",\"doi\":\"10.1109/ISADS.2017.33\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Flowchart-based programming languages are useful because they are easy to interpret on the user end, and have recently become more popular in implementation in certain fields. In this framework, a program is recognized as a flowchart. In this flowchart, different parts of the program can be executed concurrently or in an optimized order using scheduling algorithms. However, more complex equations, such as large heuristic algorithms for path finding, tend to result in huge slowdowns in execution time due to execution delays in the pipeline. The solution of this paper is to create an algorithm that uses multithreading to maximize the speedup of a given program, while taking into account both theoretical limits as well as implementation limits (due to thread creation and destruction, synchronization, and load balancing). This algorithm also incorporates a new form of branch prediction, which will limit the number of calculations and threads needed in these workflows. Implementation and analysis of the results of this algorithm's use are explored at the end of this paper.\",\"PeriodicalId\":303882,\"journal\":{\"name\":\"2017 IEEE 13th International Symposium on Autonomous Decentralized System (ISADS)\",\"volume\":\"30 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2017-03-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2017 IEEE 13th International Symposium on Autonomous Decentralized System (ISADS)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ISADS.2017.33\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2017 IEEE 13th International Symposium on Autonomous Decentralized System (ISADS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ISADS.2017.33","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Improving Multithreaded Performance Algorithmically in VIPLE
Flowchart-based programming languages are useful because they are easy to interpret on the user end, and have recently become more popular in implementation in certain fields. In this framework, a program is recognized as a flowchart. In this flowchart, different parts of the program can be executed concurrently or in an optimized order using scheduling algorithms. However, more complex equations, such as large heuristic algorithms for path finding, tend to result in huge slowdowns in execution time due to execution delays in the pipeline. The solution of this paper is to create an algorithm that uses multithreading to maximize the speedup of a given program, while taking into account both theoretical limits as well as implementation limits (due to thread creation and destruction, synchronization, and load balancing). This algorithm also incorporates a new form of branch prediction, which will limit the number of calculations and threads needed in these workflows. Implementation and analysis of the results of this algorithm's use are explored at the end of this paper.