Cтраница 2
Проектирование системы диспетчеризации и организации вычислений сводится к выбору дисциплин упорядочивания заявок на вызов программ, к определению оптимального уровня сегментации программ для параллельного исполнения и к организации обмена информацией для обеспечения возможности совместного использования сегментов. [16]
Эти и другие разновидности параллелизма были классифицированы и исследованы Конери и Киблером ( 1981), которые разработали модель И / ИЛИ процессов для параллельного исполнения логических программ. В указанной модели обеспечивается главным образом ИЛИ-параллелизм, но предлагается также и ограниченная форма И-параллелизма - - независимые вызовы исполняются действительно И-параллельно, а для того, чтобы обрабатывать вызовы с общими переменными, они используют упоминавшийся ранее метод, посредством которого один из вызовов делается производителем, а все остальные - потребителями; вызов-производитель и вызовы-потребители исполняются в этом случае последовательно в соответствии с порядком, определяемым интерпретатором на основании анализа потока данных. [17]
Приблизительно в то же самое время, когда разрабатывался IC-Пролог, Перейра и Монтейро ( 1981) предложили другой интересный подход к построению логических интерпретаторов для сопрограммного и параллельного исполнения программ путем определения этих видов поведения в самой логике хорновских дизъюнктов. Они, таким образом, пришли к описаниям управления на метауровне, которые при исполнении функционируют как промежуточные интерпретаторы, сами способные извлекать эти виды поведения из стандартных логических программ объектного уровня. [18]
Выбор больших по размеру элементов, подлежащих блокированию ( например, в реляционной базе данных - отношений), снижает накладные расходы системы по поддержанию блокировок, однако снижает также и возможности параллельного исполнения процессов. [19]
В селекции на горизонтально фрагментированном отношении принимают участие распределенные по ВМ кортежи. Параллельное исполнение селекции заключается в чтении каждой ВМ своего резидентного множества кортежей и сравнения для каждого кортежа значения атрибута кортежа с требуемым значением. [20]
Возникающий при параллельном исполнении программ конфликт состоит в том, что программы, используя общий массив данных, могут вносить в него изменения, не согласованные с логикой функционирования других программ. Применение семафоров [28, 43], устраняя конфликт, однако не позволяет избежать существенного снижения эффективности МПК, связанного с тем, что программа, требуя обращения к закрытому общему массиву, вынуждена ожидать открытия семафора; при этом процессор, исполняющий данную программу, не - всегда удается загрузить другой работой. [21]
Так как выделяемые для параллельного исполнения части программы практически всегда имеют различие в длительности, то после исполнения более короткой части программы возникает необходимость ожидания результатов параллельно идущих вычислений. Такие задержки снижают эффективность распараллеливания вычислений и требуют выявления частей программы, наименее связанных управлением или получаемыми результатами и наиболее близких по длительности исполнения. [22]
По существу, автор описывает конструктивные механизмы, обеспечивающие эффективное и надежное параллельное исполнение транзакций. Последовательно представляется ряд моделей транзакций таким образом, что каждая следующая модель является более детальной по отношению к предыдущей и благодаря этому позволяет добиться большей степени параллелизма. Обсуждаются такие важные понятия, как бесконечные ожидания и тупики. [23]
Состояние такого рода называется бесконечным ожиданием. Подобная проблема потенциально может возникнуть в любой обстановке, предусматривающей параллельное исполнение процессов. Разработчиками операционных систем предложены различные пути ее решения. Однако этот вопрос не является специфическим для систем баз данных, поэтому мы его здесь обсуждать не будем. Простой способ избежать бесконечного ожидания заключается в том, что система предоставления блокировок должна регистрировать все не удовлетворенные немедленно запросы и предоставлять возможность блокировки элемента А после его разблокирования первой запросившей ее транзакции из числа ожидающих. Эта стратегия ( первым вошел - первым обслуживается) устраняет бесконечные ожидания 1, и в дальнейшем мы можем считать, что такой проблемы не существует. [24]
Стандарт ПЛ / I, опубликованный в 1976, дает более формальную и точную спецификацию языка, обобщает понятие типа и правила вычисления выражений и вычисляемых функциями значений. В то же время в стандарт языка не включены средства для параллельного исполнения и средства организации вычислений в период трансляции. [25]
В распределенных системах баз и банков данных возникает необходимость организации эффективного обмена информацией между базами. Требование оперативности информирования пользователей о происходящих событиях и изменениях управляемых бизнес-процессов диктует параллельное исполнение и синхронизацию во времени отдельных видов работ с информацией. [26]
Управляющие регистры и триггеры обеспечивают работу в многопроцессорном режиме. Система тем самым позволяет осуществлять мультипрограммный режим в отношении каждого процессора и параллельное исполнение программ на нескольких процессорах. Комбинацию этих двух режимов разработчики фирмы называют мультипроцессорным режимом. [27]
Программисты доступа к внутренним VLIW-командам не имеют: все программы ( даже операционная система) работают поверх специального низкоуровневого, программного обеспечения ( Code Morphing), которое ответственно за трансляцию команд CISC-микропроцессоров в команды VLIW. МП типа VLIW вместо сложной схемной логики, обеспечивающей в современных суперскалярных микропроцессорах параллельное исполнение команд, опираются на программное обеспечение. [28]
Конечно, подобная задача иногда ставилась и решалась, но в большинстве случаев - при параллельном исполнении функций обыкновенного учебника. [29]
Последовательная реализация всех преобразований для каждого пиксела в одном умножителе-накопителе на современных ПЛИС не обеспечивает требований обработки в темпе поступления данных в видеосистему. Приходится переходить к параллельной или параллельно-последовательной реализации ( например, последовательные преобразования данных для элементов одной строки и параллельное исполнение преобразований для разных строк) в сочетании с конвейеризацией вычислений. [30]