- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前需要使用Julia中的Cuba库来计算一些三维积分。实际上,我需要在一次运行中多次使用cuhre函数。但是,这存在大量分配的问题。
例如,我可以尝试积分f(x1,x2,x3)= x1 * x2 * x3,这给了我结果(当我使用@time快速查看性能时)
julia> @time cuhre((x,f)->f[1]=x[1]*x[2]*x[3],3,1)
0.101907 seconds (115.82 k allocations: 5.809 MiB)
Component:
1: 0.125 ± 1.5700924586837752e-16 (prob.: 0.0)
Integrand evaluations: 381
Number of subregions: 2
Note: The desired accuracy was reached
问题在于分配只能加起来,这意味着我可以很快达到数以百万计的分配数和GiB的数。由于Julia似乎没有释放内存的方法,因此我仔细查看了Cuba.jl包,发现它包装了C库Cuba(使用ccall)。我看了一下代码(
The cuhre part in the C labrary),发现它永远不会释放分配的内存。更准确地说,我看到了(在Integrate.c中)
RuleAlloc(t);
FrameAlloc(t, Master);
MemAlloc(cur, poolsize);
指向指针
This *t
和
Pool *cur = NULL, *pool;
但是,唯一似乎释放内存的情况是发生异常终止时:
abort:
while( (pool = cur) ) {
cur = cur->next;
free(pool);
}
FrameFree(t, Master);
RuleFree(t);
StateRemove(t);
return fail;
但是当程序运行平稳时它永远不会运行。
$ ./configure
$ ./makeshared.sh #
但是第二个不起作用
$ ./makeshared.sh #
bash: ./makeshared.sh: Aucun fichier ou dossier de ce type
(没有此类型的文件夹的文件)。我寻找解决方案并找到
this topic,并尝试给出各种答案(运行demo-c.c文件),但似乎没有任何效果,主要是因为文件中不再存在libcuba.a文件。
$ gcc -o demo-c.exe demo-c.c -lm
/tmp/ccAYMLVk.o : Dans la fonction « main » :
demo-c.c:(.text+0x123) : référence indéfinie vers « Vegas »
demo-c.c:(.text+0x226) : référence indéfinie vers « Suave »
demo-c.c:(.text+0x343) : référence indéfinie vers « Divonne »
demo-c.c:(.text+0x439) : référence indéfinie vers « Cuhre »
collect2: error: ld returned 1 exit status
(对...的 undefined reference )。在1.1版中,这是通过使用以下命令解决的
gcc -o demo-c.exe demo-c.c ../libcuba.a -lm
但由于不再存在此类文件,因此它显然不再起作用。
最佳答案
一般来说,如果您对Cuba C库有任何疑问,最好的办法是与作者联系:https://wwwth.mpp.mpg.de/members/hahn/。如果问题在上游得到解决,则最终将其包含在 Cuba.jl
Julia包装器中。
了解由于以下几种原因而使您的内存分配问题放错了位置:
BenchmarkTools.jl
软件包提供了更准确,更可靠的基准测试工具:julia> using Cuba, BenchmarkTools
julia> @time cuhre((x,f)->f[1]=x[1]*x[2]*x[3],3,1);
0.055585 seconds (105.25 k allocations: 5.375 MiB)
julia> @btime cuhre((x,f)->f[1]=x[1]*x[2]*x[3],3,1);
37.067 μs (1527 allocations: 71.72 KiB)
这比您想的要小两个数量级。 @time
和@btime
宏都在Julia端测量内存分配,而不是可以调用的C库的内存分配,因此您看到的内存分配不是来自Cuba库。 cuhre
中的
Cuba.jl
的性能对您来说是个问题(我很少遇到),我强烈建议您研究
HCubature.jl
包:它完全用Julia编写,实现了与
cuhre
中的
Cuba.jl
相同的算法,并允许您使用
StaticArrays.jl
,在处理小尺寸(小于约16个元素)时,它比标准数组具有更高的内存效率。
关于c - 编译古巴图书馆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65529326/
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我想知道创建启动画面的最佳方法是什么(当您开始游戏时,公司 Logo 动画化)。我在 After Effects 中创建了一个 .mp4 启动画面,但找不到在 libgdx 中显示它的方法。创建启动画
我想知道如果登录请求 url 是如何发送 volley 登录请求 username:password http://login_url 以这种格式。如果有示例代码可用,那将是一个很大的帮助。目的是向
我需要在我们的系统中 gprof 一个库来检查函数调用,看看我们是否可以再优化它。基本上,我所拥有的是 使用共享库 myLib.so 的可执行文件 A 我想 gprof myLib.so。当我使用 -
我想在项目中使用 jetty 。我正在用Gradle构建它。 IntelliJ在下面的行中告诉“无法解决符号跳船” import org.eclipse.jetty.server.Server;如何解
我想编写转换器,让我完全控制将 PDF 转换为 ePUB?我正在寻找的是转换器 - 不应该把最后一行的词剪掉。如果一个文本是一个段落那么epub必须是一段没有任何额外的空间字符和切词。 -应该识别 p
我正在 libgdx 中制作一个自上而下的迷宫游戏,我使用 extendViewport 来渲染游戏相机。我对如何创建小 map 有点困惑。我应该为小 map 创建一个额外的视口(viewport)和
我正在尝试为 android 创建一个 epub 阅读器,所以经过大量搜索后我找到了 skyepub library (SDK)。似乎它具有我想要的所有功能。 我按照站点中的提示进行操作,但是在运行代
我正在尝试从 boost 库 ( http://www.boost.org/doc/libs/1_38_0/doc/html/program_options/tutorial.html#id37614
我正在创建一个菜单(就像那个飞扬的小鸟,当你死了它会在播放屏幕上弹出)。我创建了一个扩展表格的类,我想将表格的背景设置为白色。有办法做到这一点吗? 最佳答案 你可以这样做: Pixmap bgPixm
我在我的应用程序中使用 Picasso 库最新版本 2.4.0 来下载和缓存图像。大约有 25-30 张图像,每张大小为 300KB-400KB。我认为这绝不是一件大事或一件沉重的事情。 尽管应用程序
我即将编写一个宠物项目,其中部分功能依赖于从一台机器到另一台机器的通知。 工作流程是这样的: A 写了一些内容 A 按下按钮或说:“我完成了” B 立即获得更新 所以,我的第一个想法是,创建一个服务器
我目前是一名 C# 程序员,并且一直有兴趣学习更多有关 C++ 和数据结构的知识。我发现 CS106B 类(class)通过 Stanford Engineering Everywhere 计划免费在
阅读文档, 我发现以下内容: 1.9.1 1.8.4 1.8.2 A version of "1.8.2" select the obvious, fully-specified version. S
请我想知道当我们给 Nibobee 机器人提供电机速度时,我们在 AVR studio 中使用的单位是什么: motpwm_setLeft(1500); 1500 单位是多少? 最佳答案 根据the
我没有使用 boolean 值来查看一本书是否被 checkout ,而是我想用一个字符串来表示它是我想要的,但是当我调用该方法来 checkout 一本书时,该字符串适用于书籍对象的整个数组列表。我
我在使用 python 和 neurolab 方面还很陌生,我在训练前馈神经网络时遇到了问题。我建立了如下网络: net = nl.net.newff([[-1,1]]*64, [60,1]) net
给定一个 22 分钟(1320 秒) 的音频文件,Librosa 通过以下方式提取 MFCC 特征data = librosa.feature.mfcc(y=None, sr=22050, S=Non
我正在使用 naudio(使用教程)学习音频编程。我的程序 (C# .net winForms) 我有记录和停止按钮。代码如下所示: NAudio.Wave.WaveIn sourceStre
是否可以从自定义应用程序访问 iBooks 图书馆?喜欢用于音乐/视频的 MPMediaPickerController?或者可以访问与 iTunes 同步的书籍。谢谢 最佳答案 不,目前无法访问此信
我是一名优秀的程序员,十分优秀!