【发布时间】:2021-07-03 13:04:20
【问题描述】:
我有一个 PDE 模型,我正在尝试减少分配。目前,以下行是最大的分配来源:
part2 .= r.*u .+ deriv .+ q .+ u.^3
part2、deriv 和 u 是预分配的 Float64 矩阵。 r 和 q 是 Float64 数字。
我的理解是使用预先分配的左侧和. 表示法应该避免分配中间临时数组,那么为什么这条线仍然是我最大的分配来源?
如果我将此行替换为以下内容并添加另一个预分配矩阵 part1,我会得到零分配,但代码的可读性要低得多。
broadcast!(*,part2,u,u,u)
broadcast!(*,part1,r,u)
broadcast!(+,part2,part2,part1,deriv,q)
【问题讨论】:
标签: julia