openmp - 在 OpenModelica 中调用外部 C 函数对 CPU 时间的影响
问题描述
我们已经在 C 中实现了一个外部延迟函数,我们想在我们的 Modelica 模型(传输线)中调用它。我们的目标是加速 CPU 时间。不幸的是,它增加了 CPU 时间。
我的问题是:
解决方案
- 与现有的内置延迟相比,调用外部函数是否主要增加了 Modelica 中的仿真时间?
不,这是一个非常简单的调用,您只能在 Modelica 中明确定义的时间点使用外部函数调用。但是,如果您引入代数环,您可能会遇到问题。
- 在 OpenModelica 中使用外部对象会显着增加仿真时间吗?
不,它只是一个指针。如果某些东西很慢,它是在外部对象本身或它是如何使用的。
- 如何使用 Open MP 仅编译我们的外部函数(我们如何仅为外部函数添加 -fopenmp 标志):链接源文件时?当我们没有使用上述标志时,会产生以下错误,但是从编译开始就使用该标志,使仿真时间变长,而我们期望的仿真时间更短。PS:我们的函数被编译为一个库,我们在其中包含了 -fopenmp 标志。
您提前编译库并将 -fopenmp 标志添加到链接器标志或外部函数的库注释中。在 OpenMP 中仅使用 1 个线程时代码运行速度会变慢吗?编写快速并行代码很困难,而且 OpenMP 隐藏了很多细节,因此很难知道为什么它运行得更慢。
推荐阅读
- angular - Angular 12 Socket IO 编译失败
- postgresql - plpgsql:只进行更新的过程返回错误:查询没有结果数据的目的地
- ajax - JQuery ajax 使用 post 方法正确发送 cookie 但使用 put 错误
- networking - 关于GBN协议,单个定时器如何跟踪发送未确认数据包的时间?
- php - phpseclib3 SFTP 脚本在本地工作但不能在 cPanel 上工作
- python - 烧瓶插件如何覆盖模板?
- mysql - MySQL LOAD DATA - 可以忽略页脚行吗?
- javascript - 与 parentNode 一起返回的子元素
- xml - 元素“xs:schema”的前缀 xs 未绑定
- flutter - 在颤振中使用地图时出现NoSuchMethodError