рефераты по менеджменту

Менеджер управления распределенными вычислениями в локальной сети

Страница
2

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

Другой вариант счетчика – интервальный таймер. Он может использоваться для точного измерения времени выполнения определенных участков кода программы (задачи). Поэтому с помощью таймера можно измерять такой критичный ресурс процессора как производительность.

Информация, накопленная счетчиками, может использоваться в рабочих профилях программы.

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

Трассировка событий может использоваться для локализации источников простоя и временной перегрузки программы, и так называемых «узких мест» в каналах передачи данных.

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

Реализация

Метрики. Измеряемые параметры производительности программы будем называть метриками, по сути, они те же счетчики. Каждая метрика представляет собой целое беззнаковое 32-битное число или unsigned long. Для каждого канала, задачи и процессора имеется стандартный внутренний набор метрик, который вычисляется автоматически или с участием программиста задач. Также имеется дополнительный массив ячеек для нестандартных метрик, размер его ограничен.

Ссылка на ячейки производится путем указания номера ячейки, аналогично массивам, начиная с нуля.

Для вычисления метрик используются три абстракции:

· точки контроля – это места вызова функций сбора данных о производительности (вход/выход процедуры и др.);

· примитивы – функции изменения значений метрик, запуска/останова таймеров;

· предикаты – условия вызова примитивов, основанные на метриках или локальных данных задачи.

Примитивы:

· установка счетчика в данное значение (setCounter);

· увеличение счетчика на заданную величину (addCounter);

· уменьшение счетчика на заданную величину (subCounter);

· установка таймера на данный счетчик (setTimer);

· запуск таймера (startTimer);

· останов таймера (stopTimer).

Пример: сколько времени данная функция проводит, посылая сообщения?

void foo ()

{

add (fooFlag); // fooFlag является признаком входа в функцию

. . .

sub (fooFlag);

}

sendMessage ()

{

if (fooFlag)

startTimer ();

. . .

if (fooFlag)

stopTimer ();

}

Ресурсы – все интересующие нас объекты параллельной системы (процессоры, каналы, задачи). Ресурсы упорядочены в некоторое количество иерархий. В каждой иерархии представлены объекты определенного типа. На нижнем уровне иерархии находятся конкретные объекты данного типа, существующие на данный момент в системе. На следующем более высоком уровне они собираются по определенному признаку, например в объекты, содержащие их.

Пример иерархии каналов показан на рисунке.

Иерархии ресурсов позволяют определить детализацию собираемой информации о производительности. Каждый более высокий уровень базируется на информации предоставляемой более низким уровнем. В примере с иерархией каналов, на самом нижнем уровне вычисляются метрики конкретных каналов. На уровне процессоров вычисляются общие метрики, такие как усредненные или суммарные значения метрик всех каналов на конкретном процессоре. На самом высоком уровне – всей системы – вычисляются общие метрики для всех каналов в системе.

Кроме иерархии каналов определены иерархии ресурсов процессоров и задач.

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

Для сбора информации используется метод сэмплирования (от английского sampling), т.е. периодического считывания текущих данных. Поступление очередного набора данных назовем сэмплом (sample).

Кольцо служебных каналов. Сбор информации о текущей производительности производится главным процессором (или задачей), называемой диспетчером или менеджером. Для этого используются служебные каналы, которые равноценны определенным ранее каналам. Из возможных структур сети служебных каналов, две из которых показаны на рисунке, выбрано “кольцо”.

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

Целесообразность использования кольца служебных каналов (по сравнению с “веником”):

1. Небольшое общее количество односторонних каналов (N+1 вместо 2N);

2. Как следствие, разгрузка канала обмена диспетчера (нагрузка распределяется между всеми процессорами системы);

3. Более низкие требования к производительности диспетчера (есть время на обработку информации между соседними сэмплами);

4. Простота контроля загруженности канала сэмплирования (наряду со стандартными метриками каналов введены счетчики посланных и принятых запросов в диспетчере, в заголовок запроса включено поле – время отправления, по которому при возвращении запроса определяется время его осуществления);

5. Контроль потока служебной информации (легко регулируется периодичность запросов);

6. Простота сбора данных.

В каждом запросе указывается объект определенной иерархии и запрашиваемая метрика:

· вид ресурсов;

· уровень иерархии;

· номер объекта на данном уровне иерархии;

· код запрашиваемой метрики для данного объекта.

Структура получаемой информации однозначно определяется типом объектов указанных в запросе.

Возможно получение информации сразу по всем объектам и/или всем метрикам – при указании специальных значений последних двух полей. В данном случае в ответ на запрос возвращается массив однотипных структур.

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

Перейти на страницу номер:
 1  2  3 

© 2010-2024 рефераты по менеджменту