Менеджер управления распределенными вычислениями в локальной сети
Категория реферата: Рефераты по менеджменту
Теги реферата: готовые дипломные работы, курсовые работы бесплатно
Добавил(а) на сайт: Носов.
Предыдущая страница реферата | 1 2 3 4 | Следующая страница реферата
Во втором случае избавится от простаивания можно следующим образом. Когда задача блокируется в ожидании входных данных можно на данном процессоре запустить другую задачу, для которой имеются входные данные. Как только для первой задачи поступят данные прекратить выполнение второй. Данный метод оправдан только при низкой стоимости переключения задач. Также можно подключать разные каналы для одной и той же задачи при низкой стоимости данной операции.
Более удобной мерой качества параллельной программы, чем время выполнения, является эффективность. Она характеризует полноту использования алгоритмом
ресурсов параллельного вычислительной среды независимо от размерности самой
задачи. Относительная эффективность определяется как:
где T1 – время выполнения на одном процессоре, Tp – время выполнения на P
процессорах.
Относительное ускорение:
- это коэффициент уменьшения времени выполнения на P процессорах.
3. Методы измерения временных характеристик в реальном времени
Имеется три вида методов сбора информации о производительности параллельной
программы:
. рабочий профиль программы (execution profile) представляет собой общее время, проведенное в различных участках программы;
. счетчики событий или совокупного времени;
. трассировка событий.
Рабочий профиль формируется автоматически для каждого процессора. При этом
используется метод выборки данных через фиксированные промежутки времени, поэтому точность измерения не столь высока. По результатам можно построить
гистограмму рабочих величин, например, определить задачу, которая забирает
наибольшую часть вычислительного времени параллельного алгоритма на текущий
момент.
Счетчик представляет собой переменную, которая может быть увеличена каждый
раз при наступлении определенного события. Счетчик может использоваться для
подсчета количества вызовов данной процедуры, общего количества переданных
или принятых сообщений, общего размера переданных или принятых данных для
каждого процессора, задачи или канала. Некоторые счетчики встроены в
библиотеки среды параллельного программирования, и можно заводит новые
путем вставки соответствующих вызовов библиотеки в исходный код задач.
Другой вариант счетчика – интервальный таймер. Он может использоваться для
точного измерения времени выполнения определенных участков кода программы
(задачи). Поэтому с помощью таймера можно измерять такой критичный ресурс
процессора как производительность.
Информация, накопленная счетчиками, может использоваться в рабочих профилях
программы.
Трассировка событий предоставляет наиболее детальную низкоуровневую
информацию о производительности параллельной программы. Эта информация
представляет собой записи с отметкой о времени наступления события, типом
события, именем задачи, взаимодействующей задаче и др.
Трассировка событий может использоваться для локализации источников простоя
и временной перегрузки программы, и так называемых «узких мест» в каналах
передачи данных.
Полученные трассировочные данные могут также использоваться в рабочем
профиле программы и счетчиках.
4. Реализация
Метрики. Измеряемые параметры производительности программы будем называть
метриками, по сути, они те же счетчики. Каждая метрика представляет собой
целое беззнаковое 32-битное число или unsigned long. Для каждого канала, задачи и процессора имеется стандартный внутренний набор метрик, который
вычисляется автоматически или с участием программиста задач. Также имеется
дополнительный массив ячеек для нестандартных метрик, размер его ограничен.
Ссылка на ячейки производится путем указания номера ячейки, аналогично
массивам, начиная с нуля.
Для вычисления метрик используются три абстракции:
. точки контроля – это места вызова функций сбора данных о производительности (вход/выход процедуры и др.);
. примитивы – функции изменения значений метрик, запуска/останова таймеров;
. предикаты – условия вызова примитивов, основанные на метриках или локальных данных задачи.
Примитивы:
. установка счетчика в данное значение (setCounter);
. увеличение счетчика на заданную величину (addCounter);
. уменьшение счетчика на заданную величину (subCounter);
. установка таймера на данный счетчик (setTimer);
. запуск таймера (startTimer);
. останов таймера (stopTimer).
Пример: сколько времени данная функция проводит, посылая сообщения?
void foo ()
{ add (fooFlag); // fooFlag является признаком входа в функцию
. . .
sub (fooFlag);
}
sendMessage ()
{ if (fooFlag) startTimer ();
. . .
if (fooFlag) stopTimer ();
}
Рекомендуем скачать другие рефераты по теме: реферат на тему народы, изложение лицей.
Предыдущая страница реферата | 1 2 3 4 | Следующая страница реферата