Э. Таненбаум - Архитектура компьютера (1127755), страница 179
Текст из файла (страница 179)
Затем в калсдую машину, содержащую копию объекта, отправляется сообщение о необходимости выполнить указанную операцию. Поскольку все такие обновления обладают порядковыми номерами, каждая машина просто выполняет операции в указанном порядке, что гарантирует секвенциальную состоятельность. 0]оЬе Большинство систем с распределенной общей памятью, как и системы ЫЫа и Огса, работают в пределах одного здания или кампуса. Однако можно построить и глобальный (всемирный) мультикомпьютер с общей памятью на прикладном уровне. Например, в системе 01оЬе объект может одновременно находиться в адресном пространстве множества процессов, выполняющихся, возможно, на разных континентах 1111, 167, 214].
Чтобы получить доступ к данным общего объекта, пользовательские процессы должны действовать через его методы, поэтому для разных объектов допустимы разные варианты реализации. Например, можно иметь одну копию данных, которая запрашивается по мере необходимости (это удобно для часто обновляемых данных с единственным владельцем). Другой вариант — хранить все данные в каждой копии объекта, а сообщения обновления посылать каждой копии по надежному протоколу групповой рассылки. 698 Глава 8. Параллельные компьютерные архитектуры Амбициозная цель системы ИоЪе — достичь масштаба миллиарда пользователей и триллиона объектов (возможно, мобильных).
Ключевыми задачами являются размещение объектов, управление ими, а также расширение системы. С1оЪе решает эти задачи, поддерживая лишь общую структуру, в которой каждый объект может иметь собственные стратегии репликации, защиты и т.
д. Это позволяет избежать многих проблем других систем, для программирования остается только механизм использования общей памяти. Среди других крупномасштабных распределенных систем можно назвать С1оЬцз 171, 72] и Еея1оп (79, 801, но они, в отличие от 01оЬе, не поддерживают иллюзию существования общей памяти. Производительность Цель создания параллельного компьютера — добиться, чтобы он работал быстрее, чем однопроцессорная машина. Если эта цель не достигнута, никакого смысла в разработке параллельного компьютера нет.
Более того, эта цель должна быть достигнута при минимальных затратах. Машина, которая работает в два раза быстрее, чем однопроцессорная, но стоит в 50 раз дороже последней, вряд ли будет пользоваться спросом. В этом подразделе мы рассмотрим некоторые аспекты производительности параллельных компьютерных архитектур. Аппаратные метрики С позиции аппаратуры наибольший интерес представляет быстродействие процессоров, устройств ввода-вывода и коммуникационной сети. Поскольку скорость работы процессоров и устройств ввода-вывода такая же, как и в однопроцессорной машине, ключевыми в параллельной системе являются параметры коммуникационной сети.
Здесь есть две ключевые метрики: время запаздывания и пропускная способность. Мы рассмотрим их по очереди. Полное время запаздывания, или время оборота, — это время, которое требуется на то, чтобы процессор отправил пакет и получил ответ. Если пакет посылается в память, то время запаздывания — это время, которое требуется на чтение и запись слова или блока слов. Если пакет посылается другому процессору, то время запаздывания — это время, которое требуется на передачу пакетов данного размера между процессорами. Обычно интерес представляет время запаздывания для пакетов минимального размера (как правило, одного слова или небольшой строки кэша).
Величину времени запаздывания определяют несколько факторов, и это время разное для технологий коммутации каналов, коммутации с сохранением и продвижением, виртуальной сквозной маршрутизации. В случае коммутации каналов время запаздывания составляет сумму времени установки соединения и времени передачи. Для установки соединения высылается пробный пакет, позволяющий зарезервировать необходимые ресурсы, обратно возвращается сообщение с отчетом. После этого можно компонововать пакет данных. Когда пакет готов, биты можно передавать на полной скорости, поэтому если общее время установки соединения составляет Т„размер пакета равен р бит, а пропускная способность — Ь бит/с, время запаздывания в одну сторону составляет Т, + р/Ь.
ьзультикомпьютеры 699 Если схема дуплексная, и для ответа установки соединения не требуется, минимальное время запаздывания при передаче пакета размером в р бит и получения ответа размером в р бит составляет Т, + 2р/Ь секунд. При коммутации пакетов посылать получателю пробный пакет заранее не нужно, но все равно требуется некоторое время Т, на компоновку пакета. Здесь время передачи в одну сторону составляет Т, + р/Ь, но за этот период пакет доходит только до первого коммутатора.
При прохождении через сам коммутатор получается некоторая задержка, Тж затем происходит переход к следующему коммутатору и т. д. Время Тэ состоит из времени обработки и задержки в очереди (когда нужно ждать, пока освободится выходной порт). Если имеется л коммутаторов, то общее время запаздывания в одну сторону составляет Т. + п(р/Ь + Т„) + + р/Ь, где последнее слагаемое отражает факт передачи пакета от последнего коммутатора к получателю. Время запаздывания в одну сторону для виртуальной сквозной маршрутизации в лучшем случае приближается к значению Т, + р/Ь, поскольку здесь нет пробных пакетов для установки соединения и нет задержки, обусловленной промежуточным хранением.
По существу, это — время компоновки пакета плюс время передачи битов. Следовало бы еще прибавить задержку на распространение сигнала, но она во всех случаях невелика. Следующая аппаратная метрика — пропускная способность. Многие параллельные программы, особенно в естественных науках, ориентированы на перемещение огромных объемов данных, поэтому число байтов, которое система способна передавать в секунду, является очень важным показателем производительности. Существует несколько метрик пропускной способности. Одну из них — пропускную способность сечения — мы уже рассмотрели (см.
подраздел «Коммуникационные сети» в разделе: Мультикомпьютерыь). Другая метрика— совокупная пропускная способность — вычисляется путем суммирования пропускной способности всех линий связи. Это число показывает максимальное количество битов, которое можно передать единовременно. Еще одна важная метрика — средняя пропускная способность каждого процессора.
Если каждый процессор способен производить данные только со скоростью 1 Мбайт/с, то от сети с пропускной способностью сечения в 100 Гбайт/с проку мало. Скорость взаимодействия в этом случае ограничивается скоростными возможностями каждого процессора. На практике приблизиться к теоретически возможной пропускной способности очень трудно. Причины этого могут быть самыми разными. Например, каждый пакет всегда содержит служебные данные, относящиеся к компоновке, созданию заголовка, отправке. При отправке 1024 пакетов по 4 байта каждый мы никогда не достигнем той же пропускной способности, что и при отправке одного пакета на 4096 байт.
Однако для сокращения времени запаздывания лучше использовать маленькие пакеты, поскольку большие надолго блокируют линии и коммутаторы. В результате имеет место конфликт между способами достижения низкого времени запаздывания и высокой пропускной способности. Для одних прикладных задач важнее время запаздывания, для других — пропускная способность. Но в любом случае важно понимать, что пропускную способность всегда можно увеличить за счет дополнительных материальных затрат (добавив 700 Глава 8. Параллельные компьютерные архитектуры больше проводов или установив более широкие провода), а вот что касается со- кращения времени запаздывания, финансовые вливания здесь не помогут. По- этому обычно лучше с самого начала позаботиться о минимальном времени за- паздывания, а уже потом думать о пропускной способности.
Программные метрики Аппаратные метрики, такие как время запаздывания и пропускная способность, показывают, на что способно аппаратное обеспечение. Но пользователей интересует совсем другое. Они хотят знать, насколько быстрее будут работать их программы на параллельном компъютере по сравнению с однопроцессорным. Для вих ключевой метрикой является ускорение: насколько быстрее работает программа в и-процессорной системе по сравнению с однопроцессорной. Результаты обычно иллюстрируются графически (рис. 8.40.). 50 Проблема моделирования М-тел 50 40 з 830 ь — Авари 20 10 Инвврция профильной матрицы 0 0 10 20 30 40 50 60 Число процессоров Рис. 8.40.
На практике программы не могут достичь идеального ускорения (показано пунктирной линией) Здесь мы видим несколько разных параллельных программ, которые работают на мультикомпьютере, состоящем из 64 процессоров Репсшш Рго. Каждая кривая показывает ускорение одной программы с Й процессорами как функцию от Й. Пунктирной линией обозначено идеальное ускорение, при котором использование а процессоров заставляет программу работать в )т раз быстрее для любого )т. Лишь немногие программы достигают идеального ускорения, хотя существуют довольно много программ, которые приближаются к идеалу.
Проблема моделирования )у' тел за счет параллелизма решается гораздо быстрее, Авари (ц)ультикомпьютеры 701 (африканская игра) тоже обсчитывается быстрее, а вот ускорить инвертирование заданной профильной матрицы более чем в пять раз нельзя, сколько бы процессоров мы не использовали. Программы и результаты обсуждаются в (17], Есть ряд причин, по которым практически невозможно достичь идеального ускорения: практически во всех программах есть фрагменты, принципиально выполняемые последовательно, например, инициализация, считывание исходных данных или получение результатов. Увеличение числа процессоров здесь не поможет.