Я разработал серию микробенчмарков, используя некоторые библиотеки с общей памятью (например, openmp, tbb и т. д.), чтобы проверить, как они масштабируются при изменении количества потоков.
В настоящее время я запускаю их на 4-ядерном процессоре, результаты довольно разумные, но я получил только 3 балла на графике ускорения.
Чтобы получить больше данных и более широкий их анализ, я планирую запустить их на 32-ядерной машине.
Один из вариантов — купить 32-ядерный процессор, вроде AMD Epyc или Intel Xeon, они дороговаты, но я знаю, что с ними получу. Моя вторая и менее дорогая альтернатива — запускать их в облаке, таком как Amazon AWS или Microsoft Azure.
Тогда, прежде чем сделать свой выбор, мне нужно некоторое уточнение:
Насколько я понимаю, AWS может сделать машину с любым количеством ядер, но все они виртуализированы.
Когда я запускаю приложение, насколько надежны измерения времени его выполнения?
Получу ли я ту же масштабируемость, что и при запуске приложения на настоящем 32-ядерном процессоре?