M. Weiss, Zhixi Fang, C. R. Morgan, Peter A. Belmont
{"title":"并行处理系统的有效动态调度和内存管理","authors":"M. Weiss, Zhixi Fang, C. R. Morgan, Peter A. Belmont","doi":"10.1109/CMPSAC.1989.65072","DOIUrl":null,"url":null,"abstract":"An effective dynamic processor self-scheduling scheme is presented for general parallel program constructs in a restructuring compiler. In the program constructs, parallel loops, serial loops, if-then-else constructs and a generalization of fork-joins can be nested in an arbitrary order, and procedure calls can be involved in any level of the nested constructs. In parallel programs, a piece of the program code, such as loop iterations, is called a chore, which is considered to be a work unit in the program. In this scheme, processors schedule themselves to the chores dynamically at execution time without involving the operating system. Memory management is another issue addressed. Efficiency concerns dictate treating chore locality differently from procedure locality. As a corollary, the number of call frames required at any one time for a nonrecursive procedure is bounded by the number of processors.<<ETX>>","PeriodicalId":339677,"journal":{"name":"[1989] Proceedings of the Thirteenth Annual International Computer Software & Applications Conference","volume":"31 3 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1989-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":"{\"title\":\"Effective dynamic scheduling and memory management on parallel processing systems\",\"authors\":\"M. Weiss, Zhixi Fang, C. R. Morgan, Peter A. Belmont\",\"doi\":\"10.1109/CMPSAC.1989.65072\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"An effective dynamic processor self-scheduling scheme is presented for general parallel program constructs in a restructuring compiler. In the program constructs, parallel loops, serial loops, if-then-else constructs and a generalization of fork-joins can be nested in an arbitrary order, and procedure calls can be involved in any level of the nested constructs. In parallel programs, a piece of the program code, such as loop iterations, is called a chore, which is considered to be a work unit in the program. In this scheme, processors schedule themselves to the chores dynamically at execution time without involving the operating system. Memory management is another issue addressed. Efficiency concerns dictate treating chore locality differently from procedure locality. As a corollary, the number of call frames required at any one time for a nonrecursive procedure is bounded by the number of processors.<<ETX>>\",\"PeriodicalId\":339677,\"journal\":{\"name\":\"[1989] Proceedings of the Thirteenth Annual International Computer Software & Applications Conference\",\"volume\":\"31 3 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1989-09-20\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"3\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"[1989] Proceedings of the Thirteenth Annual International Computer Software & Applications Conference\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/CMPSAC.1989.65072\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"[1989] Proceedings of the Thirteenth Annual International Computer Software & Applications Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CMPSAC.1989.65072","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Effective dynamic scheduling and memory management on parallel processing systems
An effective dynamic processor self-scheduling scheme is presented for general parallel program constructs in a restructuring compiler. In the program constructs, parallel loops, serial loops, if-then-else constructs and a generalization of fork-joins can be nested in an arbitrary order, and procedure calls can be involved in any level of the nested constructs. In parallel programs, a piece of the program code, such as loop iterations, is called a chore, which is considered to be a work unit in the program. In this scheme, processors schedule themselves to the chores dynamically at execution time without involving the operating system. Memory management is another issue addressed. Efficiency concerns dictate treating chore locality differently from procedure locality. As a corollary, the number of call frames required at any one time for a nonrecursive procedure is bounded by the number of processors.<>