导入同一模块/包的多个版本以进行基准测试

时间:2016-08-30 06:01:21

标签: module packages julia benchmarking

我正在开发一个包, 这个包使用BinDeps来引入一些C源代码,并编译一些二进制文件。

我的julia模块大部分只是将ccall暴露给那些函数。

现在有大约5种不同的选项可以编译C源,并打开各种不同的优化。 并且与它们一起使用由写入BinDeps输出的deps.jl的常量触发的各种其他更改。

所以我想将我的包的每个不同版本导入为不同的模块,因此我可以使用BenchmarkTools.jl对它们进行基准测试。

目前,我的计划是创建一个脚本,通过复制和更改它的名称,以及使用不同的deps.jl文件链接到不同的编译,生成我的模块的5个不同版本共享库。

然后(假设我用数字重命名):

using BenchmarkTools
import MyMod_1
import MyMod_2
import MyMod_3
import MyMod_4
import MyMod_5

@show @benchmark MyMod_1.foo() 
@show @benchmark MyMod_2.foo()
@show @benchmark MyMod_3.foo()
@show @benchmark MyMod_4.foo()
@show @benchmark MyMod_5.foo()

Currently I am scripting the copying and renaming of modules. 它有点可怕,看起来有点脆弱。

但是有更好的方法吗?

0 个答案:

没有答案