Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методические указания по проведению лабораторных работ по дисциплине2022

.pdf
Скачиваний:
3
Добавлен:
16.05.2024
Размер:
218.05 Кб
Скачать

1

Методическиеуказания по проведениюрасчетов в рамках практических работ по дисциплине "Информационные и сетевые технологии"

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

1.Существенным требованием к компьютерным ресурсам:RAM, жесткий диск, CPU

2.Большая продолжительность расчетов и, следовательно, требования к надежности расчетной платформы, ОС и оптимизация использования расчетного оборудования

3.Широкое использование методов параллельных расчетов

4.Использованиеязыков высокого уровня Fortran, C/C++

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

6.Требования кповышенной точности расчетов

7.Умение проводить расчеты и делать статистически значимые выводы

Основываясь на этом в лабораторных работах студенты должны проработать все представленные вопросы.

I. В процессе работ студент должен написать расчетную программу на языке высокого уровня Fortran или С/С++, что соответствует пункту 4. Программа моделирует работу реальной расчетной программы ЯЭ. Поэтому она должна удовлетворять задаче существенного заполнения RAM компьютера (пункт 1). В работах достаточным условием является диапазон 300-400 Мб. Студент обязан уметь правильно рассчитать объем занимаемого RAM программы исходя из используемых в программе переменных.

II. Дляправильнойоптимизациирасчетногооборудованияиотраженияспецификиработы программ ЯЭ учебная программа должна считатьне менее60 сек (пункты 2 и 1).

Написание программы базируется на использовании математических процедур библиотеки IMSL или при использовании языка С/С++ библиотеки GSL на основе варианта выданного преподавателем, что соответствует пункту 5. При создании программы студент должен изучить основные математические вопросы по заданным процедурам. Создание программы может базироваться на примере, представленном в описании IMSL. Для этого текст примера может быть скопирован в рабочую среду Fortran и проведены все процедуры по созданию выполняемого файла. При переносе необходимо помнить в первую очередь, что пример написан на стандарте языка Fortran77, а среде разработки изначальный пример типа “Hello world” создается на стандарте Fortran90 и, следовательно, нужно провести соответствующие преобразования. Кроме того апострофы из pdf файла переносятся не корректно и должны быть заменены на тип:’ .

После его запуска необходимо убедиться, что полученные данные соответствуют данным представленным в описании IMSL или GSL.

Созданная таким образом программа должна быть усовершенствована для удовлетворению пунктам I и II. Это может быть достигнуто через одновременное изменение

2

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

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

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

При этом корректность математических задач не обязательно должна полностью соблюдаться. Достаточно, чтобы процедуры выполнялись без ошибок. Также другим полезным приемом обеспечения стабильности, увеличенных в объеме по сравнению с изначальными, программ является использование первоначальных данных примеров в увеличенном масштабе с введением случайной погрешности в районе, например, ±10%.

Размер погрешности подбирается индивидуально для каждого задания. Например, в начальном примере используется массив из 4-х элементов: 1.2; 1.6; 10; 21;. При этом имеется устойчивое решение для примера. При масштабировании на массив, скажем, 106 элементов остальные числа определяем случайным образом для каждого соответственно: 1.2±0.12; 1.6±0.16; 10±0.1; 21±0.21. Конкретную положение генерируемых элементов в новом массиве определяетсяспецификойкаждойзадачи.Подобныедействияраспространяютсяинаматрицы.

Другая техника используется если прямое масштабирование изначального примера на больший объем памяти не достижимо по причине стабильности задачи или других причин. Например, в изначальном примере имеется матрица 2х2 т.е. 4 элемента. Таким образом в одиночнойточностиимеется16байтпамяти.Намнужнополучитьпримерно300Мбпамяти.Т.е. новый массив должен содержать примерно 75*106 элементов. Пусть прямая обработка по имеющемуся алгоритму возможна только матрицы 2х2. Для решения данной проблемы образуется буферный массивxbuf размером 75*106 элементов и текущий массив x размером 4 элемента.xbuf инициализируетсявсоответствиисалгоритмомпрограммынаосновеслучайной генерации или использования некого закона. Далее организуется цикл – в нашем случае 18750000, где на каждой итерации перемещаясь по xbuf мы выбираем очередную порцию 4 элементов, подставляем их в x и проводим вычисления по нашему алгоритму. Таким образом решаютсясразудвепроблемы– загрузкаоперативнойпамятииполучениятребуемоговремени вычисления.

Влюбом случае по понятным причинам выше указанная настройка программы на RAM и

время расчета должна производится после объединенияпроцедур.

Впроцессе создания программы для выполнения пункта 6 студент создает две версии - одинарной и двойной точности. Данная точность должна быть правильно применена к описанию данных, вызову всех процедур, выводу рассчитанных данных.

3

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

Очный вариант обучения

На основе созданных программ студент проводит следующие расчеты на компьютерах лаборатории ЛДПр.

Дистанционный вариант обучения

Наосновесозданныхпрограммстудентпроводитследующиерасчетынаимеющихсявих распоряжении компьютерах.

Требуемые расчеты

A.Расчет врежимеdebug содинарнойилидвойнойточностьюзамеряемвремяtdeb

B.Расчет в оптимизированном режиме одинарная точностьt1

C.Расчет в оптимизированном режиме двойная точностьt2

D.90 расчетов на одном и том же компьютере версий программы:

a.версии в дебаг - множество времен T90д со значениями для каждого варианта расчета

b.одинарнойточностивоптимизированномрежимемножествовременT90- 1 со значениями для каждого варианта расчета

c.двойной точности в оптимизированном режиме - множество времен T90-2 со значениями для каждого варианта расчета.

E.Для изучения пункта6 моделируем параллельные расчеты.Для этого сначаладля однойизоптимизированнойверсиипрограммыодинарнойилидвойнойточности

параллельно запускаем от 2-х до 8 версий программы и записываем времена множеств: {tpl2,…, tpl8} для параллельной программы с наибольшим временем. Т.е. если запускаем одновременно две версии и получаем времена t1 и t2 , то tpl2 = t1 t2 и т.д.

Обработка результатов измерений

1.Построение гистограмм для множеств: T90д, T90-1, T90-2

2.Построение основных статистических характеристик: среднее, ср.кв. отклонение для множеств: T90д, T90-1, T90-2

3.Построение коэффициентов{ корреляции для множеств: T90д, T90-1, T90-2 – зависимость ti T90д, T90-1, T90-2} от n={1,…,90} для проверки факта независимости измерений.

Подготовка отчета

На основеполученныхданныхготовимотчет.Вотчетедолжныбытьправильноотражены следующие моменты:

1. Цели и особенностипроведенных работ.

4

2.Основные математические и программные моменты используемых IMSL/GSL процедур.

3.Два листинга программы в одинарной идвойной точности.

4.Расчет используемой в программе RAM для обоих типов точности. Сравнение времен по пункту АиB или C в зависимости от выбранного варианта.

5.Таблицы T90д, T90-1, T90-2 в компактном виде

6.Статистические оценки по пункту D - среднее, дисперсия, гистограмма, корреляционные коэффициенты.

7.Производительность при выполнении параллельных расчетов - пункт F - результирующая таблица и график.

8.Выводы с обсуждением полученных результатов.

Порядок выполнения работы

1.Установка (в дистанционном варианте) и освоение среды Compaq Fortran, создание простой программы на Fortran

2.Изучение варианта задания из библиотеки IMSL

3.Перенос примера(ов) для варианта задания из библиотеки IMSL в среду Compaq Fortran, отладка, сравнение результатов расчета с результатами в документации по заданию, создание скриншота и отсылка преподавателю в дистанционном варианте обучениядля текущего контроля – КМ1 – 4-я неделя.

4.Разработка варианта бенчмарка на основе полученного варианта задания из библиотеки IMSL, расчет занимаемой памяти, создание скриншота и отсылка преподавателю в дистанционном варианте обучения для текущего контроля – КМ-2,3 – 8 – 10 недели

5.Проведение всех требуемых расчетов, обработка результатов, подготовка отчета, защита – КМ4 -13 неделя.

Воробьев Ю.Б.