Конечно, вы можете запустить профилировщик, чтобы выяснить, что именно требует времени. Даже в планировщике есть информация о профилировании, хотя она и не так доступна.
Скорее всего, уходит время на сканирование всей информации о файлах для множества файлов на S3. Dask должен перечислить все эти файлы, чтобы выяснить, насколько они велики, и назначить блоки для чтения, которые требуют много медленных HTTP-вызовов.
Это, в свою очередь, создает очень большое количество задач, как вы уже нашли. Общий график задач должен быть сериализован и отправлен планировщику для выполнения, а затем обработан планировщиком и отправлен работникам. Чем больше график, тем больше складываются эти затраты.
Короче говоря, если вы хотите оптимизировать скорость передачи данных, вам лучше разделить входящие данные на гораздо большие куски. Вы увидите некоторые рекомендации по размерам порций данных порядка 100 МБ.