Мотивация Совсем недавно вышла новая версия 0.34 библиотеки JIT-оптимизирующего компилятора.
Нумба для Питона.
И вот ура! появилась долгожданная семантика аннотаций и набор методов организации параллельных вычислений.
За основу была взята технология Параллельный ускоритель Intel .
В этой статье я хочу поделиться результатами первого тестирования скорости вычислений на основе этой библиотеки на некоторой современной машине с четырехъядерным процессором.
Введение
В настоящее время Python очень активно используется в научных вычислениях, а в области машинного обучения вообще является практически одним из стандартов.Но если посмотреть немного глубже, почти везде Python используется как оболочка над библиотеками нижнего уровня, написанными в основном на C/C++.
Действительно ли возможно писать быстрый и параллельный код на чистом Python? Давайте рассмотрим очень простую проблему.
Пусть нам даны два набора Н точки в трехмерном пространстве: п И д .
Необходимо рассчитать специальную матрицу на основе попарных расстояний между всеми точками:
Для всех тестов мы сдаем Н = 5000. Время расчета усреднено по 10 прогонам.
Реализация на C++
Давайте возьмем следующую реализацию на C++ в качестве отправной точки:Теги: #python #параллельное программирование #pythonvoid 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++) {
-
Как Защитить Ваши Ценные Данные
19 Oct, 24 -
Все, Что Вам Нужно Знать О Делах Лиан Ли
19 Oct, 24 -
Sap Business One – Внедрение Mrp В Сан-Паулу
19 Oct, 24 -
Сообщения И Черновики Личного Блога
19 Oct, 24 -
Выпущен Открытый Драйвер Ati 6.8.0
19 Oct, 24 -
Умные Подсказки
19 Oct, 24 -
Hpc: Nvidia, Amd, Sony Cell, X86
19 Oct, 24