我有一个时间序列dataframe,1千个id,2万行,100列,用tsfresh的MultiprocessingDistributor,参数n_workers=12,在一台64G的单机上花40分钟就可以计算完全量的extract_features。
但如果用ClusterDaskDistributor,worker在4台64G机器上,scheduler是单独一个64G机器,这些机器都没有其他任务,最终却怎么也算不完,sheduler机器最终因为outofmemory把整个任务自我kill了。
如果使用MinimalFCParameters,只扩张10倍左右的因子,MultiprocessingDistributor和ClusterDaskDistributor都能正常结束。
另外,从dashboard上看,worker都能正常结束计算,最后在gather结果的时候,总是不停地增加内存消耗,直至把内存耗尽。但实际上这个任务在单机上用多进程的MultiprocessingDistributor顶峰期才使用了30多G内存就计算完成了。
请问,可能是哪里出了问题?谢谢!
版本信息
python 3.10
tsfresh:0.20.2
dask:2024.7.0
pandas:2.2.2
操作系统:ubuntu 22.04.1 LTS (Jammy Jellyfish)
```python
Distributor = ClusterDaskDistributor("10.23.173.171:8786")
X = extract_features(timeseries_container=data_roll,
column_id='id',
column_sort='TRADE_DATE',
distributor=Distributor)
```