Распределенные и параллельные вычисления/Управление вычислительными заданиями
Если принять во внимание, что узлы кластеров (Beowulf в частности) никогда не бывают абсолютно гомогенными, то становится очевидно, что время выполнения вычислительных задач на разных узлах будет разное. Гетерогенность на программном уровне уровне обусловлена отличиями в наборе пакетов, в количестве запущенных служб и процессов, и наличием "накладных" задач. Накладными задачами будем считать совокупность активных системных или пользовательских задач, которые не связаны с обеспечением параллельных вычислений.
Для организации вычислений в кластере наиболее эффективным способом, необходимо четко описать свойства кластера как вычислительной системы. Для этого нужно ответить на ряд вопросов:
- Допускается ли выполнение нескольких задач на каждом из процессоров?
- На сколько задачи будут загружать процессоры, можно ли ограничивать нагрузку?
- Как свести к мнимому конкуренцию между параллельными и накладными задачами?
- Как отличить полезную нагрузку от паразитной (накладные задачи)?
- Как предотвратить "трагедию общин" как следствия монопольного, длительного захвата вычислительных ресурсов.
- Как определить мощность каждого из узлов в гетерогенных системах.
- Как приостановить выполнение вычислений в случае исчерпания лимита времени или в случае экстренного завершения всех процессов?