For example, distributed compute engine usually control the parallelism by thread level.
In Spark, task is controlled by executor-cores using .map
executor-cores
.map