并行化特征工具 dfs

Posted

技术标签:

【中文标题】并行化特征工具 dfs【英文标题】:Parallelizing feature tools dfs 【发布时间】:2021-11-09 02:44:14 【问题描述】:

我尝试了与这个 sn-p 类似的代码

ft.dfs(entityset = es,
        target_entity = ..., 
        n_jobs=-1,) # or n_jobs=40

但它似乎不适用于具有 40 个线程的机器:

S CPU% MEM%   TIME+  Command
S  0.0  0.7  0:00.00 python test.py
S  0.0  0.7  0:00.00 python test.py
S  0.0  0.7  0:00.00 python test.py
S  0.0  0.7  0:00.00 python test.py
S  0.0  0.7  0:00.00 python test.py
S  0.0  0.7  0:00.00 python test.py
S  0.0  0.7  0:00.00 python test.py
R 78.0  0.7 23:24.72 python test.py

如您所见,没有 40 个进程,只有一个正在运行(该线程的 78-100% 不等)。有谁知道这里发生了什么?我在杀死它之前让它运行了 25 分钟,我没有看到使用情况有任何变化。

提前致谢!

【问题讨论】:

【参考方案1】:

可能是Featuretools没有达到dfs函数的并行化部分。特征计算是并行的,但目前特征探索步骤 (DeepFeatureSynthesis) 不是。您可以通过在dfs 调用中设置features_only=True 并查看运行需要多长时间来检查这是否是问题所在。然后您可以使用calculate_feature_matrix 方法来计算返回的特征。

【讨论】:

以上是关于并行化特征工具 dfs的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB 并行计算工具箱 - 并行化与 GPU?

与 Rborist 并行化

通过将命令行工具包装在带有 gnu 信号量的 bash 脚本中来并行化命令行工具

Visual Studio - 并行化构建不会提高性能

通过 JDBC 进行并行化 - Pyspark - 并行化如何使用 JDBC 工作?

OpenMP:嵌套并行化有啥好处?