Компиляторы и операционные системы в масштабируемых компьютерных системах
Компиляторы программ во время выполнения должны объединить высокоуровневые программные модели с основными аппаратными средствами, сложность которых постоянно возрастает. В частности, эффективное использование гетерогенных ядер и/или акселераторов требует эффективной поддержки со стороны компиляторов и оптимизированных библиотек. Для идентификации пути, по которому программист может передать релевантную информацию для компилятора на языке высокого уровня, особенно важен вопрос совместимости компилятора. Сможет ли он (компилятор) произвести эффективное преобразование информации для акселераторов или дополнительных ядер с подходящей системной поддержкой во время выполнения?
Учитывая тенденцию к локализации компонентов (например, при пользовании динамически связанными библиотеками со статическими языками или использованием динамических языков, таких как Java) возрастает важность оптимизации во время развертывания или время выполнения программного кода.
Например, используя отношения между целевыми платформами, на которых развернуты соответствующие клиенты и сервер, для веб-служб можно заменить тяжелый протокол, («простой протокол доступа к объекту»), на протокол более легкого веса («отдаленный запрос на обработку»).
Специальная техника оптимизации разработана для выполнения поиска во время развертывания библиотек, и она подает большие надежды для более широкого применения.
Как известно, операционная система служит для того, чтобы гарантировать безопасное выполнение и оптимальное использование ресурсов, с учетом вероятности появления отказов, динамических изменений в требованиях рабочей нагрузки, и потенциальных угроз (аналогично тому, как аренда сервера и колокейшн служат для уменьшения вероятности отказов аппаратной части сетевого ресурса).
Истинная виртуализция всех ресурсов в масштабируемых системах, включая процессор, память, сеть и хранение данных, при приемлемых расходах, остается проблемой. Автоматическая идентификация в ходе трассировки (тем более с возможностью дифференцированного обслуживания, необходимого при динамическом изменении рабочей загрузки) и прозрачное восстановление после отказов, являются связанными системными управленческими проблемами. Политика операционной системы, связанная с управлением виртуальной памятью, планированием связей, ввода/вывода файла, может оказать значительное влияние на потребительские свойства. Существующие образцы обеспечивают выбор подходящего размера страницы для областей памяти, соответствующих различным структурам данных; использование подходящего кэширования и других механизмов для поддержки эффективного ввода/вывода файла.