Лабораторная работа №6.
Общая производительность системы.

При выборе составляющих гетерогенной сети, часто проводят испытания прикладного ПО, с целью выявить его производительность в различных операционных системах, при использовании различных файловых и сетевых файловых систем, баз данных и т.п. Причиной проведения испытаний является тот факт, что наиболее важным показателем является общая призводительность прикладного программного продукта, которую достаточно сложно вычислить на основе показателей производительныости отдельных частей системы.

Задание

  1. Разработать консольную программу picalc, которая находит значение числа Pi, используя сходимость бесконечного ряда Лейбница: Pi=4 - 4/3 + 4/5 - 4/7 + 4/9 -... . Для рассчета использовать вещественный тип данных с максимальной точностью в используемом языке программирования (напр. в Pascal - тип extended, в Си - тип long double).
    Программе в командной строке передается точность (Delta), с которой должен быть рассчитан результат (напр. 0.0000001).
    Программа выводит на экран результат рассчета каждой N-й итерации, где N рассчитывается как целая часть выражения (1/Delta/100000). Если результат вычисления N меньше 1, то N следует присвоить значение 1, т.е. результат рассчета числа Pi выводится каждую итерацию.
    Формат вывода:
    номер_текущей_итерации: рассчитанное_значение_pi
    
    Пример:
    ./picalc 0.1
    1: 4.0000000000000000E+0000
    2: 2.6666666666666667E+0000
    3: 3.4666666666666667E+0000
    4: 2.8952380952380952E+0000
    5: 3.3396825396825397E+0000
    6: 2.9760461760461760E+0000
    7: 3.2837384837384837E+0000
    8: 3.0170718170718171E+0000
    9: 3.2523659347188759E+0000
    10: 3.0418396189294022E+0000
    11: 3.2323158094055927E+0000
    12: 3.0584027659273318E+0000
    13: 3.2184027659273318E+0000
    14: 3.0702546177791837E+0000
    15: 3.2081856522619423E+0000
    16: 3.0791533941974262E+0000
    17: 3.2003655154095474E+0000
    18: 3.0860798011238331E+0000
    19: 3.1941879092319412E+0000
    20: 3.0916238066678386E+0000
    21: 3.1891847822775947E+0000
    
  2. Разработать управляющий консольный скрипт для хостовой системы на базовом скриптовом языке, специфичном для целевой ОС (sh, cmd, wsh и т.п.), который последовательно N раз вызывает программу picalc c параметром Delta, начиная от значения 0.00001 с уменьшением Delta в два раза на каждом шаге, перенаправляя результат в файлы вида 000001, 000002 и т.д. По окончании работы скрипт выводит на экран общее время работы своей работы.
  3. Разместить все компоненты своей программы и управляющий скрипт на сетевом каталоге своей виртуальной машины с ОС Windows (см. л.р.№4). Программа и управляющий скрипт должны при своем запуске на хостовой машине взаимодействовать с файлами и каталогами только того сетевого ресурса, на котором они находятся. Подобрать значение N таким образом, чтобы время работы управляющего скрипта было не менее 10 секунд.
  4. Разместить все компоненты своей программы и управляющий скрипт на сетевом каталоге своей виртуальной машины с ОС Linux (см. л.р.№4). Программа и управляющий скрипт должны при своем запуске на хостовой машине взаимодействовать с файлами и каталогами только того сетевого ресурса, на котором они находятся. Используя значение N, вычисленное в предыдущем задании, определить время работы управляющего скрипта.
  5. Сделать выводы об общей производительности работы программы при использовании сетевых папок Windows и сетевых папок Linux.

Инструментарий

Скрипт для измерения времени работы программы под Windows

Дополнительное задание (+1)

Если программа picalc является кроссплатформенной, студент имеет возможность заработать дополнительный бонусный балл за проверку производительности программы в другой хостовой ОС.