
# 自适应并行
#### 场景描述
在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性能调优](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0124.html)。
