Neftali Watkinson, Aniket Shivam, A. Nicolau, A. Veidenbaum
{"title":"用Python教授并行计算和相关性分析","authors":"Neftali Watkinson, Aniket Shivam, A. Nicolau, A. Veidenbaum","doi":"10.1109/IPDPSW.2019.00061","DOIUrl":null,"url":null,"abstract":"Languages with a high level of abstraction, such as Python, are becoming popular among programmers and are being adopted as the primary programming language in pedagogy. A potential drawback of using such languages is that the architectural aspects, such as data layout in memory, get completely hidden. Therefore, the students have difficulty in understanding advanced computer science topics such as Parallel Computing. Computer architectures have evolved to allow multiple levels of parallelism. From mobile devices to supercomputers, a lot of tasks are done in parallel. Parallel Programming models have become ubiquitous and computer science graduates should know how to take advantage of those models. Therefore, it becomes necessary to expose students to the concepts of parallel programming early in the curriculum. This work describes a lesson plan for teaching Parallel Computing, using Data Dependence analysis and Loop transformations, to Python Programming students. We analyze our teaching experience, evaluation of students' understanding and likelihood of using parallel programming in introductory courses in the future.","PeriodicalId":292054,"journal":{"name":"2019 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)","volume":"22 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"9","resultStr":"{\"title\":\"Teaching Parallel Computing and Dependence Analysis with Python\",\"authors\":\"Neftali Watkinson, Aniket Shivam, A. Nicolau, A. Veidenbaum\",\"doi\":\"10.1109/IPDPSW.2019.00061\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Languages with a high level of abstraction, such as Python, are becoming popular among programmers and are being adopted as the primary programming language in pedagogy. A potential drawback of using such languages is that the architectural aspects, such as data layout in memory, get completely hidden. Therefore, the students have difficulty in understanding advanced computer science topics such as Parallel Computing. Computer architectures have evolved to allow multiple levels of parallelism. From mobile devices to supercomputers, a lot of tasks are done in parallel. Parallel Programming models have become ubiquitous and computer science graduates should know how to take advantage of those models. Therefore, it becomes necessary to expose students to the concepts of parallel programming early in the curriculum. This work describes a lesson plan for teaching Parallel Computing, using Data Dependence analysis and Loop transformations, to Python Programming students. We analyze our teaching experience, evaluation of students' understanding and likelihood of using parallel programming in introductory courses in the future.\",\"PeriodicalId\":292054,\"journal\":{\"name\":\"2019 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)\",\"volume\":\"22 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2019-05-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"9\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2019 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/IPDPSW.2019.00061\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2019 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/IPDPSW.2019.00061","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Teaching Parallel Computing and Dependence Analysis with Python
Languages with a high level of abstraction, such as Python, are becoming popular among programmers and are being adopted as the primary programming language in pedagogy. A potential drawback of using such languages is that the architectural aspects, such as data layout in memory, get completely hidden. Therefore, the students have difficulty in understanding advanced computer science topics such as Parallel Computing. Computer architectures have evolved to allow multiple levels of parallelism. From mobile devices to supercomputers, a lot of tasks are done in parallel. Parallel Programming models have become ubiquitous and computer science graduates should know how to take advantage of those models. Therefore, it becomes necessary to expose students to the concepts of parallel programming early in the curriculum. This work describes a lesson plan for teaching Parallel Computing, using Data Dependence analysis and Loop transformations, to Python Programming students. We analyze our teaching experience, evaluation of students' understanding and likelihood of using parallel programming in introductory courses in the future.