并行化特征工具 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的主要内容,如果未能解决你的问题,请参考以下文章
通过将命令行工具包装在带有 gnu 信号量的 bash 脚本中来并行化命令行工具