- •10.1. Виды параллельной обработки
- •10.1.1. Классификация систем параллельной обработки
- •10.2. Матричная обработка данных
- •Массив процессорных элементов
- •10.3. Архитектура мультипроцессорных систем общего назначения
- •10.4. Коммуникационные сети
- •10.5. Организация памяти в мультипроцессорных системах
- •10.6. Программный параллелизм и общие переменные
- •10.6.1. Доступ к общим переменным
- •10.6.2. Согласованность кэша
- •10.6.3. Блокировка и согласованность кэш-памяти
- •10.7. Мультикомпьютерные системы
- •10.8. Общая память и передача сообщений
- •10.8.1. Система с общей памятью
- •10.8.2. Система с передачей сообщений
- •10.9. Производительность мультипроцессорных систем
- •10.9.1. Закон Амдала
- •10.9.2. Показатели производительности
10.9.2. Показатели производительности
С точки зрения пользователя самыми важными характеристиками компьютерной системы являются ее стоимость, удобство использования, надежность и производительность. Вычислительная способность компьютеров характеризуется несколькими показателями..
Производительность процессора можно определить как количество операций, выполняемых за одну секунду. Самыми популярными единицами измерения этого показателя являются MIPS (Million Instructions Per Second — миллионов команд в секунду) и MFLOPS (Million Floating Point Operations Per Second — миллионов операций с плавающей запятой в секунду, мегафлоп/с). Показатели MIPS и MFLOPS, приводимые производителем системы для конкретного процессора, характеризуют его максимальные возможности. Однако эти максимальные значения не всегда достижимы на практике. В мультипроцессорной системе показатели MIPS и MFLOPS являются просто суммами соответствующих показателей всех процессоров.
Еще один распространенный показатель производительности характеризует коммуникационные возможности сети, обычно определяемые как общая полоса пропускания (в байтах в секунду). При этом речь идет об оптимальной ситуации, когда по сети одновременно передается максимально возможное количество данных и занято максимально возможное число сетевых соединений.
Хотя такие показатели, как MIPS, MFLOPS и полоса пропускания, характеризуют возможности системы, они не отражают ее реальную производительность. В реальной работе используется только часть всех имеющихся в системе ресурсов, количество которых варьируется от системы к системе и от приложения к приложению. Корректное сравнение двух разных систем возможно только при выполнении в них конкретного набора приложений и измерении реальной производительности. Для осуществления такого сравнения разработано множество эталонных тестовых программ (benchmark program), отражающих поведение типичных приложений разного класса. Сравнение производительности систем при помощи эталонных тестовых программ стало широко распространенной практикой.
Выводы
Мультипроцессорные системы — это суперкомпьютерные системы, конфигурация которых может быть подобрана в соответствии с требованиями потребителя исходя из оптимального соотношения стоимости и производительности. Наилучшее соотношение этих показателей имеют системы, содержащие от десятков до сотен процессоров. Очень большие системы, состоящие из тысяч процессоров, трудно использовать на полную мощность, а их стоимость слишком высока.
С точки зрения стоимости достаточно просто реализовать мультикомпьютерную систему на основе рабочих станций, соединенных в локальную сеть. Эта возможность становится еще более привлекательной с повышением быстродействия локальных сетей.
Успешная работа мультикомпьютерной системы в значительной степени определяется наличием системного программного обеспечения, способного эффективно использовать имеющиеся ресурсы. Прикладная программа не будет выполняться быстро, если заложенные в ней возможности параллелизма и локализации не задействованы в полной мере. Компилятор должен выявить все возможности параллельного выполнения, а операционная система должна так распланировать процесс их реализации с учетом существующей локализации, чтобы те параллельные фрагменты кода, которые наиболее тесно связаны между собой и будут больше всего обмениваться информацией, выполнялись близко расположенными друг к другу процессорами. Для этого программист может предоставить некоторую вспомогательную информацию, но еще лучше, если системное программное обеспечение способно сделать это самостоятельно.
В настоящем разделе были освещены наиболее важные аспекты мультипроцессорных и мультикомпьютерных систем. Для полного понимания возможностей и архитектуры указанных систем необходимо изучить их более детально.