Есть ли способ узнать, работает ли dask-worker на устройстве с процессором или на устройстве с графическим процессором?

Предположим, в даск-кластере есть несколько устройств ЦП, а также несколько устройств ГП. На каждом устройстве работает один dask-worker. Теперь вопрос в том, как мне определить, что базовым устройством dask-worker является ЦП или ГП.

Например: - если dask-worker работает на устройстве с ЦП, я должен знать, что он работает на CPU, или если dask-worker работает на устройстве с GPU, я должен знать тип устройства программно. есть ли способ узнать это программно.?


person SpiritOverflow    schedule 19.04.2018    source источник
comment
Это может помочь stackoverflow.com/questions/49854695/   -  person MRocklin    schedule 19.04.2018


Ответы (1)


Связанный ответ в комментарии выше касается предварительной маркировки разных работников по ресурсам, а затем назначения задач в зависимости от того, какие ресурсы им могут понадобиться.

Возможно, вместо этого вы хотели выполнять свои вычисления неоднородным образом, т. е. вам все равно, возражать, какая задача будет выполняться на машине с графическим процессором, а какая нет, но в случае использования графического процессора доступно, вы хотите его использовать. Этот случай на самом деле очень прост с точки зрения dask.

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

def process_data(d):
    if this_machine_has_gpu():
        return gpu_process(d)
    else:
        return cpu_process(d)

Эту структуру вполне можно использовать в качестве задачи Dask, будь то с механизмом delayed или с массивами/фреймами данных.

person mdurant    schedule 19.04.2018