如何使用基本技巧来改进我的Julia代码?

时间:2019-05-03 15:13:18

标签: performance julia

我是Julia的新手,目前正在使用1.0版。我有一个打算根据输入矩阵生成整数序列的代码。该代码需要16%的CPU和3%的内存才能在我的机器(i5,双核,16GB ram)上运行3个小时。我可以学习并应用一些基本技巧来优化Julia中的代码以提高其性能吗?缩进会影响性能吗?是否有可以跟踪我的代码并提出改进建议的软件包?我在下面提供我的代码。该代码包括一个R代码,该代码生成适用于Julia代码的数据。如果R代码在执行过程中发生错误,那只是在仿真过程中缺乏成就,必须再次运行直到仿真完成。

@Filter(
    name="zoneFilter",
    condition="{z}.zone_id = :zoneValue",
    aliases = {
        @SqlFragmentAlias( alias = "z", table= "student_zone"),
    }
)

1 个答案:

答案 0 :(得分:2)

评估Julia的表现时需要考虑许多问题。尽管您提供的代码远远超出了MWE(最小的工作示例),并且也不可复制。 但是,以下是一些一般准则:

  1. 花一些时间仔细阅读Julia performance tips并应用它们
  2. 由于您处理了一些数组,因此您的代码可能会受益于@simd宏。对于像您这样的代码,使用数组视图通常也很容易。
  3. 您使用了16%的CPU能力(可能有8个内核,而程序仅使用了一个)。考虑使用多线程或多处理-您的程序运行速度将提高很多倍
  4. 在某些情况下,您可以考虑将GPU计算与Flux.jl一起使用
  5. 考虑将您的多核计算转移到云中(在AWS EC2实例上进行Julia扩展效果非常好)

由于这些主题中的每个主题都是您自己的代码逐步开发的重要内容,并提出问题以寻求帮助。