Dask Vs Rapids. Что дает порогам, чего нет у бочки? - PullRequest
0 голосов
/ 18 марта 2020

Я хочу понять, в чем разница между dask и rapids, какие преимущества дает Rapids, а dask не имеет.

Использует ли Rapids код dask для внутреннего использования? Если так, то почему у нас есть dask, потому что даже dask может взаимодействовать с GPU.

Ответы [ 2 ]

3 голосов
/ 18 марта 2020

Dask - это библиотека Python, которая обеспечивает параллелизм ядра и распространение некоторых популярных библиотек Python, а также пользовательских функций.

Take Pandas например. Pandas - популярная библиотека для работы с Dataframes в Python. Однако он является однопоточным, и Датафреймы, над которыми вы работаете, должны помещаться в памяти.

В Dask есть подпакет под названием dask.dataframe, который следует большей части того же API, что и Pandas, но вместо этого разбивает ваш Dataframe на разделы, которые могут работать параллельно и могут быть выгружены из памяти. Dask использует Pandas под капотом, поэтому каждый раздел является допустимым Pandas Dataframe.

Весь Dask Dataframe может масштабироваться и использовать несколько ядер или несколько компьютеров.


RAPIDS - это набор ускорений графического процессора Python библиотек, которые следуют API других популярных Python пакетов.

Чтобы продолжить нашу тему Pandas, RAPIDS имеет пакет под названием cuDF , который имеет почти такой же API как Pandas. Однако cuDF хранит кадры данных в памяти графического процессора и использует графический процессор для выполнения вычислений.

Поскольку графические процессоры могут ускорять вычисления, что может привести к повышению производительности операций Dataframe и позволяет увеличить вашего workflow.


RAPIDS и Dask также работают вместе, и из-за этого Dask считается компонентом RAPIDS. Таким образом, вместо того, чтобы иметь Dask Dataframe, составленный из отдельных Pandas Dataframes, вы можете вместо этого иметь один, состоящий из cuDF Dataframes. Это возможно, поскольку они используют один и тот же API.

Таким образом, вы можете увеличить с помощью графического процессора, а также уменьшить с помощью нескольких графических процессоров на нескольких машинах.

3 голосов
/ 18 марта 2020

Dask предоставляет возможность распределить работу. Dask может масштабироваться как по горизонтали (на нескольких компьютерах), так и по вертикали (на одной и той же машине).

RAPIDS предоставляет набор API-интерфейсов PyData, которые ускоряются на GPU. Pandas (cuDF), Scikit-learn (cuML), NumPy (CuPy) и др. c .. ускоряются с помощью GPU с RAPIDS. Это означает, что вы можете использовать код, который вы уже написали для этих API-интерфейсов, и просто поменяться местами в библиотеке RAPIDS и воспользоваться преимуществами GPU-Acceleration.

Когда вы объединяете Dask и RAPIDS вместе, вы в основном получаете инфраструктуру (Dask) масштабируется по горизонтали и вертикали, а также API-интерфейсы PyData (RAPIDS), которые могут использовать базовые графические процессоры.

Если вы посмотрите на более широкие решения, Dask может затем интегрироваться с инструментами оркестровки, такими как Kubernetes и SLURM, чтобы иметь возможность предоставлять еще более эффективные ресурсы использование в большой среде.

...