Мотивация: Мне было поручено измерить показатель Karp-Flatt и параллельной эффективности моего кода CUDA C, который требует вычисления ускорения. В частности, мне нужно построить все эти показатели в зависимости от количества процессоров p
.
Определение: Speedup относится к тому, насколько параллельный алгоритм работает быстрее, чем соответствующий последовательный алгоритм, и определяется как:
Проблема: Я реализовал свой алгоритм в CUDA C и приурочил его к Tp
. Однако при определении Sp
остаются некоторые проблемы:
- Как наблюдать
T1
без полного переписывания моего кода с нуля?- Могу ли я выполнить код CUDA в серийном режиме?
- Что такое
p
, когда я запускаю разные ядра с разными номерами потоков?- Это относится к нет. нитей или нет. процессоров, используемых во время выполнения?
- Поскольку обе эти величины также будут меняться во время выполнения, является ли это максимальным или средним значением?
- Как мне даже ограничить мой код для работы на подмножестве процессоров или с меньшим количеством потоков!?
Большое спасибо.