为什么Julia 0.3.12(MixedModels 0.3.22)和Julia1.2(MixedModels 2.2.0)之间的混合模型拟合时间存在巨大差异?

为什么Julia 0.3.12(MixedModels 0.3.22)和Julia1.2(MixedModels 2.2.0)之间的混合模型拟合时间存在巨大差异?,julia,mixed-models,Julia,Mixed Models,我正在运行一个线性混合效应模型,数据集由约500K个观测值组成。 我有一个连续的回答(即Y),24个分类变量(即X1,…,X24), 8个连续变量(即Z1,…,Z8)和一个ID变量(即1160级的ID),用于指定随机效应。 线性混合模型公式为Y~X1+…+X24+Z1+…+Z8+(0+X1|ID)+…+(0+X24 | ID) 在Windows中,为了适应Julia 0.3中的模型,我使用MixedModels包(版本0.3.22),使用以下内容: 预拟合步骤:fit1=lmm(my_公式,my

我正在运行一个线性混合效应模型,数据集由约500K个观测值组成。 我有一个连续的回答(即Y),24个分类变量(即X1,…,X24), 8个连续变量(即Z1,…,Z8)和一个ID变量(即1160级的ID),用于指定随机效应。 线性混合模型公式为Y~X1+…+X24+Z1+…+Z8+(0+X1|ID)+…+(0+X24 | ID)

在Windows中,为了适应Julia 0.3中的模型,我使用MixedModels包(版本0.3.22),使用以下内容:

  • 预拟合步骤
    fit1=lmm(my_公式,my_数据)
    ,以及
  • 安装步骤
    安装(fit1)
  • 预安装步骤约需38秒,安装步骤约需14秒;总共52秒

    同样,在Windows中,该模型使用MixedModels(版本2.2.0)安装在Julia 1.2中:

  • 预拟合步骤
    fit2=LinearMixedModel(@formula(my_公式)、my_数据)
    ,以及
  • 安装步骤
    安装!(fit2)
  • 在这种情况下,预安装步骤需要约20秒,而安装步骤需要约301秒(总共321秒)

    在同一服务器中设置Linux Docker并将Julia 1.2与MixedModels(版本2.2.0)一起使用时:

  • 预拟合步骤
    fit3=LinearMixedModel(@formula(my_公式)、my_数据)
    ,以及
  • 安装步骤
    安装!(fit3)
  • 预安装步骤约需21秒,而安装步骤约需108秒(总共129秒)。 在这种情况下,如果考虑将线程数设置为1,预拟合步骤需要25秒,而拟合步骤为55秒(总计80秒)。 总结结果见下文。请注意,已调查了更多配置。 关于列,该模型适用于Windows或DockedLinux(列Windows/Linux)。 我已经检查过将线程数设置为1,或者允许它在模型拟合之前获取其默认值(列:BLAS.set_num_threads(1))

    假设我多次运行这些模型,那么Julia 0.3.12与其他方法之间的差异将持续数小时。 即使在Linux中使用Julia 1.2运行该模型并将线程数设置为1,该过程所需的时间也会增加50%。 有人知道这种差异来自哪里吗?有没有办法加快Julia 1.2中的拟合过程,或者使其在某种程度上与Julia 0.3.12相当


    这是一台Windows 2012服务器,CPU为Intel Xeon@3.5GHz E5-2637 v3(4核;8线程)和64 GB RAM。Windows和Linux都是在同一台服务器上运行的。

    Julia 0.3基本上是石器时代的产品。该软件包的维护人员几天前发布了3.0.0版本。也许他们解决了一些性能问题。在任何情况下,在不同的软件包版本之间,速度都明显下降了(这和julia版本本身几乎没有关系),所以打开这个问题是有意义的。
    +---------------+---------------+-------------------------+--------------+----------+------------+
    | Windows/Linux | Julia version | BLAS.set_num_threads(1) | Pre-fit time | Fit time | Total time |
    |               | (MixedModels) |                         |              |          |            |
    +---------------+---------------+-------------------------+--------------+----------+------------+
    |               | 0.3.12(0.3.22)| No                      |       38 sec |   14 sec |     52 sec |
    |               +---------------+-------------------------+--------------+----------+------------+
    | Windows       | 1.2 (2.2.0)   | No                      |       20 sec |  301 sec |    321 sec |
    +---------------+---------------+-------------------------+--------------+----------+------------+
    |               | 1.2 (2.2.0)   | No                      |       21 sec |  108 sec |    129 sec |
    |               +---------------+-------------------------+--------------+----------+------------+
    |               | 1.2 (2.2.0)   | Yes                     |       25 sec |   55 sec |     80 sec |
    | Linux Docker  +---------------+-------------------------+--------------+----------+------------+
    |               | 1.4 (2.2.0)   | No                      |       25 sec |  108 sec |    133 sec |
    |               +---------------+-------------------------+--------------+----------+------------+
    |               | 1.4 (2.2.0)   | Yes                     |       24 sec |   57 sec |     81 sec |
    +---------------+---------------+-------------------------+--------------+----------+------------+