Лабораторная 1
Параллельный рассчет числа Pi

  1. Найти значение числа Pi, используя сходимость бесконечного ряда Лейбница: Pi=4 - 4/3 + 4/5 - 4/7 + 4/9 -... .

    Исходные данные: количество потоков N и общее количество слагаемых COUNT.

    Принцип работы: Каждый порожденный поток, кроме последнего, обрабатывает (COUNT div N) слагаемых. Последний поток обрабатывает (COUNT div N)+(COUNT mod N) слагаемых. Например, если N=2 и COUNT=5, то первый поток будет обрабатывать 2 первых слагаемых (4 и 4/3), второй поток - 3 последних слагаемых (4/5, -4/7 и 4/9).

    Результатами работы потоки заполняют глобальный массив, содержимое которого, по окончании работы потоков, суммирует основной поток. Аналогичным образом потоки заполняют глобальный массив временем своей работы.

    Выходные данные: 1)Результат рассчета, 2)время работы и результаты рассчета каждого потока, 3) время работы основной программы (в миллисекундах).

  2. Разработать и внедрить в предыдущую программу управляющий поток (диспетчер), который будет создавать, запускать, дожидаться завершения параллельных потоков, подсчитывать и сохранять в глобальной переменной окончательное значение числа Pi, по окончании работы - уничтожать параллельные потоки.
    В это время основной поток должен будет раз в секунду выводить количество миллисекунд, прошедших с момента запуска программы, а по окончании работы диспетчера - выводить время работы каждого потока (в миллисекундах) и окончательное значение числа Pi.