У меня есть вопрос об использовании dask для распараллеливания моего кода. У меня есть пандас датафрейм и 8 ядер процессора. Поэтому я хочу применить некоторые функции по строкам. Вот пример:
import dask.dataframe as dd
from dask.multiprocessing import get
# o - is pandas DataFrame
o['dist_center_from'] = dd.from_pandas(o, npartitions=8).map_partitions(lambda df: df.apply(lambda x: vincenty((x.fromlatitude, x.fromlongitude), center).km, axis=1)).compute(get=get)
Этот код запускает 8 процессоров одновременно. Теперь у меня есть проблема, что каждый процесс ест много памяти, как основной процесс. Итак, я хочу запустить его многопоточным с общей памятью. Я пытался изменить from dask.multiprocessing import get
на from dask.threaded import get
. Но он не использует все мои процессоры, и я думаю, что он работает на одном ядре.