У меня есть pandas фрейм данных в качестве вывода из doepy пакета, который содержит около 5000 строк. Каждый столбец содержит значения для моей пользовательской функции.
простой вывод (назовем эту таблицу параметров):
| paramA | paramB | paramC | paramD | paramE |
| ------ | ------ | ------ | ------ | ------ |
| 1 | 2 | 3 | 4 | 5 |
| 6 | 7 | 8 | 9 | 10 |
| ------ | ------ | ------ | ------ | ------ |
Пользовательская функция (псевдокод)
def myfunc(df, a, b, c, d, e):
# do something to df, which is another dataframe
Итерация в таблице параметров:
for index, row in paramTable.iterrows():
myfunc(df, row['paramA'], row['paramB']...)
Каждый запуск myfunc
занимает около 2 секунд. Он вызывает несколько пользовательских функций и выполняет некоторые pandas операций. Он настолько оптимизирован, насколько это возможно в Python. Я мог бы оптимизировать его дальше, используя Numba или Cython, но он все равно не будет масштабироваться для количества вызовов myfun c, которые я буду выполнять с другой версией paramTable
.
Каков наилучший способ используя графический процессор для выполнения myfunc
на более крупном paramTable
? Я знаю, что тактовая частота графического процессора намного ниже, чем у процессора, но в целом графический процессор выглядит как способ go для
.