gpt4 book ai didi

openmp - OpenModelica中调用外部C函数对CPU时间的影响

转载 作者:行者123 更新时间:2023-12-04 07:15:20 25 4
gpt4 key购买 nike

我们已经在 C 中实现了一个外部延迟函数,我们想在我们的 Modelica 模型(传输线)中调用它。我们的目标是加速 CPU 时间。不幸的是,它增加了 CPU 时间。
我的问题是:

  • 与现有的内置延迟相比,调用外部函数是否主要增加了 Modelica 中的仿真时间?
  • 在 OpenModelica 中使用外部对象是否会显着增加仿真时间?
  • 如何使用 Open MP 仅编译我们的外部函数(我们如何仅为外部函数添加 -fopenmp 标志)?
    当我们没有使用上面的标志(如下图所示)时产生了以下错误(见bekow图),但是从编译开始就使用了标志,使仿真时间更长,而我们预期的仿真时间更短。
    PS:我们的函数被编译为一个库,其中包含了 -fopenmp 标志。
    enter image description here
    enter image description here
  • 最佳答案

  • 与现有的内置延迟相比,调用外部函数是否主要增加了 Modelica 中的仿真时间?

  • 不。这是一个非常简单的调用,您只能在 Modelica 中明确定义的时间点使用外部函数调用。但是,如果您引入代数环,您可能会遇到问题。
  • 在 OpenModelica 中使用外部对象是否会显着增加仿真时间?

  • 不,它只是一个指针。如果某些东西很慢,它是在外部对象本身或它是如何使用的。
  • 如何使用 Open MP 仅编译我们的外部函数(我们如何仅为外部函数添加 -fopenmp 标志):链接源文件时?当我们没有使用上面的标志时会产生以下错误,但是从编译开始就使用了标志,使模拟时间更长,而我们预期的模拟时间更短。 PS:我们的函数被编译为一个库,其中包含了 -fopenmp 标志。

  • 您提前编译库并将 -fopenmp 标志添加到链接器标志或外部函数的库注释中。在 OpenMP 中仅使用 1 个线程时,代码运行速度是否变慢?编写快速并行代码很困难,而且 OpenMP 隐藏了很多细节,因此很难知道为什么它运行得更慢。

    关于openmp - OpenModelica中调用外部C函数对CPU时间的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68805060/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com