并行模拟与运行时分析和调度

Mahder Gebremedhin, P. Fritzson
{"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}
引用次数: 3

摘要

将自动并行化集成到当前数学建模和仿真工具的编译器和运行时系统中是一项复杂的任务。首先,需要考虑一些设计问题。从哪里可以提取潜在的并行性?它应该如何表现?如何提高这种潜在并行性的效率?除了这些和类似的设计问题外,还有许多技术实现问题需要考虑。这可能会使自动并行化的实现和实验成为一个压倒性的过程。有效的自动并行化需要灵活的表示、高效的聚类/合并算法和可移植性。在之前的工作中,我们提出了一个任务系统表示和并行化的c++库。这个名为ParModAuto的库提供了一个灵活的任务系统表示,并辅以一些聚类算法和调度器。这项工作进一步改进了ParModAuto库。除了集群和调度功能之外,现在还可以执行连续的运行时分析和调度。这允许使用ParModAuto的并行化实现在执行期间响应负载变化。这在模拟环境中特别有用,因为模拟是动态执行的。原型实现已经作为OpenModelica建模和仿真环境的运行时系统的扩展进行了执行和测试。依赖性分析和并行化提取是在OpenModelica编译器的帮助下,从Modelica模型描述自动完成的。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
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.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信