自适应并行
场景描述
在AI数据工程中,面对大量数据处理的场景,需要通过并行调用actor来提升数据处理的效率,进行分布式计算。但固定并行度依赖于调参经验以及多次测试反馈,为提升用户体验和减少调参时间,提供自适应并行来提高使用UDF的易用度。
约束限制
功能约束限制如下:
- 执行UDF函数时必须指定min_concurrency和max_concurrency有效值。
- 若当前batch的行数小于计算出的并行度,实际拉起的actor数将等于行数。否则实际拉起的actor数将等于当前计算的并行度。
当执行UDF时,同时设置min_concurrency和max_concurrency参数后,将会开启自适应并行功能。
UDF以min_concurrency并行度开始执行所涉及的数据batch。每一轮batch执行时,都会计算UDF有效计算时长占总时间的占比。当每次batch执行中,UDF有效计算占比达到80%,当前并行度将会按照2的步长增加并行度,直至最大增加至max_concurrency并行度后,后续不变化。当某一轮占比不到80%时,则下一轮并行度将保持不变。
开启自适应并行特性的UDF,各个actor由于先后执行数据的批次不同,因此统计信息存在较大差别。对于自适应并行场景下的统计信息查看,请参考Python UDF性能调优。