{"title":"并行模拟与运行时分析和调度","authors":"Mahder Gebremedhin, P. Fritzson","doi":"10.1145/3158191.3158194","DOIUrl":null,"url":null,"abstract":"Incorporating automatic parallelization into compilers and runtime systems of current mathematical modeling and simulation tools is a complicated task. First there are a number of design considerations to be made. Where can potential parallelism be extracted? How should it be represented? How to improve the efficiency of this potential parallelism? In addition to these and similar design questions there are many technical implementation issues the need to be taken into consideration. This can make implementing and experimenting with automatic parallelization an overwhelming process. Effective automatic parallelization requires flexible representation, efficient clustering/merging algorithms and portability. In a previous work we presented a task system representation and parallelization C++ library. The library, named ParModAuto, provided a flexible task system representation supplemented by a few clustering algorithms as well as schedulers. This work presents further improvements to the ParModAuto library. In addition to clustering and scheduling capabilities it is now possible to perform continuous runtime profiling and scheduling. This allows parallelization implementations using the ParModAuto be responsive to load variations during execution. This is particularly useful in simulation environments since simulations are dynamic executions. The prototype implementation has been performed and tested as an extension to the OpenModelica Modeling and Simulation environment's runtime system. The dependency analysis and extraction of parallelization is done automatically from the Modelica model description with the help of the OpenModelica compiler.","PeriodicalId":261856,"journal":{"name":"Proceedings of the 8th International Workshop on Equation-Based Object-Oriented Modeling Languages and Tools","volume":"47 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":"{\"title\":\"Parallelizing simulations with runtime profiling and scheduling\",\"authors\":\"Mahder Gebremedhin, P. Fritzson\",\"doi\":\"10.1145/3158191.3158194\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Incorporating automatic parallelization into compilers and runtime systems of current mathematical modeling and simulation tools is a complicated task. First there are a number of design considerations to be made. Where can potential parallelism be extracted? How should it be represented? How to improve the efficiency of this potential parallelism? In addition to these and similar design questions there are many technical implementation issues the need to be taken into consideration. This can make implementing and experimenting with automatic parallelization an overwhelming process. Effective automatic parallelization requires flexible representation, efficient clustering/merging algorithms and portability. In a previous work we presented a task system representation and parallelization C++ library. The library, named ParModAuto, provided a flexible task system representation supplemented by a few clustering algorithms as well as schedulers. This work presents further improvements to the ParModAuto library. In addition to clustering and scheduling capabilities it is now possible to perform continuous runtime profiling and scheduling. This allows parallelization implementations using the ParModAuto be responsive to load variations during execution. This is particularly useful in simulation environments since simulations are dynamic executions. The prototype implementation has been performed and tested as an extension to the OpenModelica Modeling and Simulation environment's runtime system. The dependency analysis and extraction of parallelization is done automatically from the Modelica model description with the help of the OpenModelica compiler.\",\"PeriodicalId\":261856,\"journal\":{\"name\":\"Proceedings of the 8th International Workshop on Equation-Based Object-Oriented Modeling Languages and Tools\",\"volume\":\"47 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2017-12-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"3\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 8th International Workshop on Equation-Based Object-Oriented Modeling Languages and Tools\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3158191.3158194\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 8th International Workshop on Equation-Based Object-Oriented Modeling Languages and Tools","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3158191.3158194","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Parallelizing simulations with runtime profiling and scheduling
Incorporating automatic parallelization into compilers and runtime systems of current mathematical modeling and simulation tools is a complicated task. First there are a number of design considerations to be made. Where can potential parallelism be extracted? How should it be represented? How to improve the efficiency of this potential parallelism? In addition to these and similar design questions there are many technical implementation issues the need to be taken into consideration. This can make implementing and experimenting with automatic parallelization an overwhelming process. Effective automatic parallelization requires flexible representation, efficient clustering/merging algorithms and portability. In a previous work we presented a task system representation and parallelization C++ library. The library, named ParModAuto, provided a flexible task system representation supplemented by a few clustering algorithms as well as schedulers. This work presents further improvements to the ParModAuto library. In addition to clustering and scheduling capabilities it is now possible to perform continuous runtime profiling and scheduling. This allows parallelization implementations using the ParModAuto be responsive to load variations during execution. This is particularly useful in simulation environments since simulations are dynamic executions. The prototype implementation has been performed and tested as an extension to the OpenModelica Modeling and Simulation environment's runtime system. The dependency analysis and extraction of parallelization is done automatically from the Modelica model description with the help of the OpenModelica compiler.