CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
18.10.2021

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Desktop
Internet
Internet-серверы
Безопасность
Бизнес/Офис
Игры
Мультимедиа
Наука
Операционные системы
Программирование
СУБД
Создание веб-сайтов
Утилиты

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки

Рабы закона Мура

CITKIT.ru
Цикл "Операционные системы:
Ностальгия по будущему
"

Страницы: предыдущая :: 1 :: 2 :: 3

Будущее

Тенденции настоящего, к сожалению, дают все основания ожидать, что в будущем рабство программистов не только сохранится, но и существенно усилится. Пока что на многоядерность процессоров можно закрыть глаза. В конце концов, два или даже четыре ядра благополучно может использовать сама операционная система, ничего не говоря о их наличии пользователям, а просто выполняя на них отдельные, никак не взаимодействующие приложения. Но ведь беда-то в том, что закон Мура продолжает действовать, и теперь, похоже, выражается в геометрическом возрастании числа ядер в микропроцессоре. Что, господа, вы будете делать с 1000-ядерным микропроцессором? Какие услуги должна предоставлять пользователям операционная система компьютера с таким микропроцессором? Что и как будет считаться на таком компьютере?

Нас ставят перед фактом. Производители микропроцессоров делают то, что могут, а получать удовольствие и пользу от их творений придется программистам. Честно скажу, я не знаю, как быть в этой ситуации. По-моему, если вдруг не найдется гений, который придумает, как с пользой для человечества и без риска для жизни программистов использовать эту технику будущего (похоже, не столь уж отдаленного), то компьютерная индустрия просто зайдет в тупик. Утешает только то, что это понятно многим специалистам, а человечество, когда его загоняют в тупик, обычно ухитряется что-то придумать.

В будущем нас ждет еще одна компьютерная проблема – многопоточные (multithreading) микропроцессоры. На аппаратном уровне идея кажется мне замечательной. В современных процессорах основные задержки при выполнении очередной команды возникают в том случае, когда эта команда и/или требуемые для ее данные не обнаруживаются в кэше процессора. В этом случае производится обращение к основной памяти, и длительность этой операции такова, что может привести к остановке всех конвейеров процессора. В многопоточном процессоре на уровне аппаратуры поддерживается несколько потоков управления со своими контекстами. Если в некотором потоке требуется обращение к основной памяти, этот поток блокируется, и производится очень быстрое (однотактовое) переключение процессора на поток управления, готовый к продолжению выполнения. Легко видеть, что при достаточно большом числе потоков управления, поддерживаемых аппаратурой, компьютер, основанный на таком процессоре, будет работать с пиковой скоростью процессора.

В данном случае идея возникла на основе чисто практических потребностей. Как известно, распространенные на сегодняшний день процессоры с кэшем ориентированы на решение задач, отвечающих критерию локальности. Этот критерий состоит в том, что в любой небольшой промежуток времени любая программа обращается к данным, локализованным образом расположенным в памяти. Другими словами, если в кэш перемещается некоторый блок данных, то велика вероятность, что в ближайшее время обращения к основной памяти не понадобятся. Принцип локальности является опорным в аппаратуре, операционных системах и компиляторах.

Однако оказалось, что для ряда важных стратегических проблем человечества принцип локальности не действует. И если такие проблемы (например, мониторинг окружающей среды) пытаться решать на основе сегодняшних компьютеров, то они будут решаться со скоростью не процессоров, а основной памяти. При использовании многопоточного процессора теоретически можно повысить скорость решения таких задач в сотни раз.

Понятно, что для того, чтобы в любой момент времени в процессоре нашелся хотя бы один поток управления, готовый к продолжению выполнения, этих потоков должно быть много (тысячи), а значит, они должны быть очень короткими, по несколько команд. Как получить такую многопоточную программу, непонятно. Явное программирование должно быть просто убийственным, а требуемое автоматическое распараллеливание для традиционных языков программирования невозможно. Может быть, для этих целей удастся использовать функциональные языки программирования, или удастся придумать какую-то новую парадигму.

Пока речь идет о специализированной аппаратуре, предназначенной для решения уникальных задач, это не так уж и важно. Можно представить себе, что такой компьютер будет представлять двухпроцессорный комплекс (или мультипроцессор), один из процессоров которого будет традиционным, и на нем будет работать операционная система со всеми обслуживающими программами, а второй – многопоточный – будет использоваться собственно для решения задачи. Саму уникальную задачу за большие деньги и трудозатраты можно, в конце концов, распараллелить вручную (если, конечно, этому не помешает закон Амдала). И пока соответствующими разработками занимается Cray и другие суперкомпьютерные компании, широкие массы программистов могут спать спокойно, видя сны о компьютерном прогрессе человечества.

Но, пардон, уже слышны известия о многопоточных процессорах от Sun Microsystems. Пускай, это пока не очень серьезно: восьмиядерный процессор Niagara-2 c поддержкой восьми потоков в каждом ядре. Но закон Мура-то действует. И кто знает, не станут ли многоядерные процессоры со временем массовыми. И что мы будем с ними делать? Что такое «универсальная» операционная система для многопотокового процессора? Может ли она вообще существовать? Задачка-то посерьезнее будет, чем для многоядерных однопотоковых процессоров.

Так что и в будущем останемся мы рабами закона Мура, и чтобы перестать быть его рабами, нужно либо научиться хорошо использовать то, что получается у разработчиков процессоров, либо предложить им новые идеи, которые привели бы к архитектурам, более пригодным для программистов. И тогда закон Мура перестанет нас давить, а будет лишь помогать.




Страницы: предыдущая :: 1 :: 2 :: 3

Комментарии

Страницы комментариев: 1 :: 2 :: 3 :: 4 :: следующая

аноним, Wed Oct 14 10:47:19 2009:
такое впечатление, что развитие эвм в союзе тормозилось с само верха. уже тогда готовились к его ликвидации?
аноним, Wed Sep 2 20:26:25 2009:
Какой нах закон мура?! Это просто маркетинговая уловка! Ну что поменяется, если этому закону не следовать? Аж ничего! Лучше бы по-моему дорабатывали существующее железо и софт. ТОгда и проблемы с безопасностью глядишь исчезли бы. И быстрее все стало бы работать из-за оптимизации.
Бородулин Вячеслав, Tue Jun 2 05:55:21 2009:
Спасибо и за Вашу статью "Восход и закат High Performance Fortran: наглядный урок истории"
Тоже очень понравилась.
Бородулин Вячеслав, Tue Jun 2 05:52:16 2009:
Спасибо Сергей за интересную статью. Я думаю, что если произвести отсев всех комментариев хотя бы по критерию орфографии и оконченных 11 классов то из них уже отсталось бы 3-5 штук. А если отсеять тех кто не программировал под параллельные системы, и не написал ни одной статьи, так и подавно будет человека два.

Сам недавно начал работать с университетским кластером и задумался над фундаментальными проблемами распараллеливания вычислений. Оказалось не всё выражается простой маркетинговой фразой интел - "чем больше ядер, тем выше производительность"...

С уважением, Бородулин Вячеслав, ТОГУ
SKeeper, Mon Apr 13 14:15:13 2009:
Браво! Хоть и как-то пессимистично, но все равно интересно.
дао, Sun Apr 12 15:19:29 2009:
мне кажется автора просто не понимают!
это относится и ко всем предыдущим статьям.
tweak, Wed Apr 8 22:19:11 2009:
креатив ниасилил, многабуков. Автор ставит интересный вопрос, но не предлагает вариантов решения проблемы "закона Мура для software".
В отличие от более другого автора http://www.moserware.com/2008/04/towards-moores-law-software-part-1-of-3.html
аноним, Wed Apr 1 09:25:33 2009:
привет кузнецов
аноним, Mon Mar 30 21:18:43 2009:
блин.. интересная статья, наверно. потом по-читаю. не грусти, Серега!
Rigdzin, Mon Mar 30 18:30:21 2009:
А вот почему я возбухаю по поводу лараби: http://www.thg.ru/graphic/intel_larrabee/index.html
В этой статье четко говорится, что интел собирается использовать х86 инструкции именно для графического проца. Причем сами инструкции предполагается модифицировать.
Аргумент, что интел пытается отвоевать рынок встроенной графики - неправилен. Интел и так владеет этим рынком чуть-ли не на 60%. Она скорее пытается подвинуть АТИ и Нвидию с перспективного рынка высокопроизводительных вычислений в объёме десктопа. А кто там обеспечивает такое? Правильно: Радеон и ДжиФорс. Вот интел по аналогии с ними тоже выпускает ГПУ, правда пихает в него х86, забывая, что Рдеон и ДжиФорс такие мощные не потому, что там х86, а как раз наоборот.
По поводу стоимости компьютеров DEC на базе процессоров Alpha - жизнь всегда наказывала жлобство. Я так подозреваю, что их руководство назначало более высокую цену по принципу, если наши компы быстрее - значит круче, и мы будем требовать за них большие деньги, и нам плевать, что продажи наши падают - вот и умер DEC.

Страницы комментариев: 1 :: 2 :: 3 :: 4 :: следующая

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds