Каждый асинхронный (независимый) объект (модуль или подсистема)
должен быть приписан к одному из устройств аппаратуры: универсальному процессору
или специализированному функциональному устройству. Разработчик системы должен:
- оценить требуемую производительность и требуемые ресурсы;
- выбрать способ реализации подсистем (аппаратный или программный);
- распределить программные подсистемы по процессорам, стремясь удовлетворить
их требования по производительности и в то же время сократить межпроцессорные
коммуникации.
Оценка требуемых ресурсов
Решение использовать несколько процессоров обычно бывает
связано с потребностью иметь более высокую производительность, чем
производительность одного процессора. Количество требуемых процессоров зависит
от объема вычислений и производительности компьютера. Разработчик системы может
оценить требуемую производительность процессоров, вычисляя постоянную нагрузку
как произведение количества транзакций в секунду на время выполнения одной
транзакции (в примере с банковской сетью транзакция это проводка). Такая оценка
не учитывает накладных расходов, связанных со случайными изменениями нагрузки и
некоторыми другими факторами. Ее следует уточнить.
Замена программ аппаратурой
Аппаратуру следует рассматривать как неизменяемое тщательно
оптимизированное программное обеспечение. Каждое устройство может
рассматриваться как объект, который работает параллельно с другими объектами.
Разработчик может принять решение о замене некоторых объектов подходящими
аппаратными устройствами. Обычно такое решение принимается по следующим
причинам:
- требуемые устройства легко доступны; в наше время легче купить процессор с
плавающей арифметикой, чем реализовать соответствующую библиотеку;
- требуется более высокая производительность, чем производительность имеющихся
процессоров, а производительность специализированных устройств всегда выше.
Распределение модулей и подсистем по процессорам
При распределении модулей и подсистем по процессорам следует
иметь в виду следующее:
- некоторые задачи нужно выполнять на определенных устройствах; например,
обработку банковской карточки следует выполнять на ATM;
- время ответа или скорость информационного потока превышает пропускную
способность канала между процессором и программой; например, высокоскоростные
графические устройства требуют спаренных контроллеров;
- скорости вычислений слишком высоки для одного процессора, и задачи нужно
разместить на нескольких процессорах; подсистемы, которые часто взаимодействуют,
нужно поместить на одном процессоре.
|