Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
В качестве альтернативного способа достижения высокой скорости вычислений является написание программного кода на языке ассемблера.Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте В качестве примера можно рассмотреть программу, реализующую вычисление арифметического выражения (4.1), которое было рассмотрено в п. 4.2, написанную на ассемблере (прил. П5). Данная программа осуществляет последовательное вычисление арифметического выражения без организации мультизадачности. В качестве операндов используются целые неотрицательные числа в диапазоне от 0 до 99. ОПРЕДЕЛЕНИЕ ВРЕМЕННЫХ ХАРАКТЕРИСТИК ПРИЛОЖЕНИЯ Используя профилировщик, оценим скорость работы приложения, написанного на С/С++ с организацией параллельных вычислений. При профилировании программного модуля, написанного на С/С++, для операционной системы Windows используем профилировщик AQtime 3.16. Demo. Первоначально необходимо установить настройки среды программирования, как показано на рис. 7.1 – 7.3.
Р и с. 7.1. Меню Build / Set Active Configuration
Р и с. 7.2. Меню Project / Settings
Рис. 7.3
После настройки среды программирования необходимо перекомпилировать проект Build / Rebuild Project, а затем запустить профилировщик.
Рис. 7.4
В профилировщике необходимо открыть из папки Debug файл MultithreadProject (рис. 7.5).
Рис. 7.5
Далее, в поле Areas с помощью контекстного меню, вызванного правой кнопкой мыши, выбираем опцию Add-Area…, в появившемся окне указываем имя AllThreads (рис. 7.6).
Рис. 7.6
В итоге в поле Areas появляется папка с именем AllThreads. Затем правой кнопкой мыши вызываем контекстное меню и выбираем пункт AddRoutines. В появившемся окне в левой его части выбираем файл main.obj, а в правой части окна выбираем функции тредов (рис. 7.7).
Рис. 7.7
Далее необходимо запустить программу выбором пункта Run из меню Project. После этого запускается приложение (рис. 6.12). В этом приложении необходимо ввести операнды арифметического выражения и произвести расчет. По результатам работы программы определяется время работы каждого треда, а также строится гистограмма, отражающая процентное соотношение времени выполнения каждого треда к общему времени вычислений (рис. 7.8). Для определения временных характеристик приложения, написанного на ассемблере, используем профилировщик Turbo Profiler, который является составной частью интегрированной среды разработки Borland C++ 5.02. Первоначально необходимо открыть профилируемый файл File -> Open (рис. 7.9). В открывшемся окне в поле Program name необходимо указать полный путь, по которому находится профилируемый файл (рис. 7.10). После загрузки окно профилировщика приобретет следующий вид (рис. 7.11). Далее необходимо запустить профилировщик Run -> Run. В результате работы которого в поле Execution Profile будет показано время вычисления арифметического выражения.
Рис. 7.8
Рис. 7.9
Рис. 7.10
Рис. 7.11
Таким образом, зная время работы приложения, написанного на С++ и на ассемблере, можно произвести их сравнение по временному критерию. Программа, написанная на ассемблере, выполняется на несколько порядков быстрее, чем программа, написанная на языке С++. Это связано с несколькими аспектами, одним из которых является то, что в последней программе необходимо было организовать синхронизацию, что потребовало дополнительных временных затрат. Таким образом, для достижения быстродействия, в каких-либо критичных ко времени выполнения участках программного кода, необходимо использовать ассемблер. Однако организация параллельных вычислений, являясь одним из средств повышения производительности вычислительных систем, наиболее эффективна в больших программах, выполнение которых будет осуществляться на многопроцессорных или многомашинных платформах. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ 1. На основе полученного арифметического выражения построить информационный граф G, как показано в примере (п. 4.2). 2. Используя полученный информационный граф и арифметическое выражение, составить программу коммутации и построить схему коммутации счета (см. п. 4.2). 3. Используя API функции операционной системы Windows, организовать параллельные вычисления заданного арифметического выражения. Вычисления осуществляются в четырех тредах, между которыми необходимо осуществлять синхронизацию. В качестве операндов арифметического выражения используются целые неотрицательные числа от 0 до 99. 4. Определить время выполнения вычислений в каждом треде и общее время работы программы, используя профилировщик AQtime 3.16. Demo. 5. Написать программу вычисления арифметического выражения 4.1 на языке Ассемблера без организации параллельных вычислений. В качестве операндов арифметического выражения используются целые неотрицательные числа от 0 до 99. 6. Используя профилировщик Turbo Profiler определить время выполнения вычислений арифметического выражения в программе написанной на ассемблере. СОДЕРЖАНИЕ РАСЧЕТНО-ПОЯСНИТЕЛЬНОЙ ЗАПИСКИ В расчетно-пояснительной записке должны присутствовать: 1. Краткое описание теории, способы достижения высокой производительности вычислительных систем, необходимость организации параллельных вычислений, организация параллельных вычислений средствами операционных систем. 2. Информационный граф, схема коммутации счета, программа коммутации, в соответствии с индивидуальным заданием. 3. Листинг программы на языке С/С++, организующей параллельное вычисление индивидуального арифметического выражения, с комментариями и описанием, интерфейс программы и результаты ее работы. 4. Листинг программы на языке ассемблера, организующей последовательное вычисление индивидуального арифметического выражения, с комментариями и описанием, интерфейс программы и результаты ее работы. 5. Результаты профилирования программы, написанной на языке С/С++ (время работы каждого треда и общее время вычислений, гистограмма, отражающая процентное соотношение времени выполнения каждого треда к общему времени вычислений). 6. Результаты профилирования программы, написанной на языке ассемблера. 7. Сравнительный анализ программ, написанных на С++ и на ассемблере, по временному критерию.
ПРИЛОЖЕНИЯ Приложение П1
Министерство образования и науки Российской Федерации Филиал государственного образовательного учреждения высшего профессионального образования «Самарский государственный технический университет» В г. Сызрани
Процессов и производств»
|
||
|
Последнее изменение этой страницы: 2017-02-05; просмотров: 553; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.008 с.) |