Быстрый Тест Производительности Python Для Вычислительных Задач



Мотивация Совсем недавно вышла новая версия 0.34 библиотеки JIT-оптимизирующего компилятора.

Нумба для Питона.

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

За основу была взята технология Параллельный ускоритель Intel .

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



Введение

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

Но если посмотреть немного глубже, почти везде Python используется как оболочка над библиотеками нижнего уровня, написанными в основном на C/C++.

Действительно ли возможно писать быстрый и параллельный код на чистом Python? Давайте рассмотрим очень простую проблему.

Пусть нам даны два набора Н точки в трехмерном пространстве: п И д .

Необходимо рассчитать специальную матрицу на основе попарных расстояний между всеми точками:

Быстрый тест производительности Python для вычислительных задач

Для всех тестов мы сдаем Н = 5000. Время расчета усреднено по 10 прогонам.



Реализация на C++

Давайте возьмем следующую реализацию на C++ в качестве отправной точки:
   

void getR(std::vector<Point3D> & p, std::vector<Point3D> & q, Matrix & R) { double rx, ry, rz; #pragma omp parallel for for (int i = 0; i < p.size(); i++) { for (int j = 0; j < q.size(); j++) {

Теги: #python #параллельное программирование #python
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.