Каталог решений - Параллельные вычисления расчета факториала числа N

Параллельные вычисления расчета факториала числа N

Параллельные вычисления расчета факториала числа N

В наличии

Распараллеливание алгоритма с помощью фоновых заданий (асинхронные вычисления)

Категория:

Описание

Цель:

1. ускорить расчет факториала числа

2. научиться распараллеливать вычисления с помощью фоновых заданий

 

Предисловие

Всем привет!

Решил протестировать расчет факториала деревом через параллельные вычисления. Про задачу читайте здесь Факториал числа N = N!

Забегу вперед и скажу, что тесты проводились на клиент-серверной базе, конфигурация Бухгалтерия предприятия, редакция 2.0 на обычных формах, платформа 1С:Предприятие 8.3 (8.3.15.1830), СУБД PostgreSQL. Сведения о процессоре и памяти — в картинках (к сожалению, не знаю как скопировать текст сведений, поэтому вырезал скрин)

Результат меня обрадовал: классический алгоритм рассчитал факториал для 50 000 за 17 сек, алгоритм деревом — за 9 сек. Параллельное вычисление в 4 потока за 0 сек. Напишу за 1 сек, поскольку по настоящему я не смог сделать замеры — отловить время завершения фоновых заданий. Я ориентировался на время начала и время завершения фоновых заданий (картинка консоли заданий приложена).

После 50 000, я быстро посчитал в 4 потока 150 000! за 4-5 сек.

Алгоритм. Решение. Распараллеливание.

Фоновые задания как раз предназначаются для организации параллельных вычислений.

Задачу расчета факториала очень удобно распараллелить на несколько потоков вычислений. Причем это касается любого алгоритма для расчета факториала: классического, рекурсией или деревом. Главное разделить всю последовательность чисел на "отрезки", для каждого из которых запускать свой расчет отдельно.

В общем, сначала разделим входные данные: в алгоритме дерева используется разделение последовательности чисел пополам — еще раз пополам и т.д. Применим эту идею для своих целей.

Я решил разделить последовательность (2…ЧислоN) на 4 группы (см. Листинг 1) и расчет по каждой группе запускать в отдельном фоновом задании (см. Листинг 2).

 

has been added to your cart:
Оформление заказа