Введение
27-го апреля в Новосибирске прошёл Форум Intel для разработчиков (IDF). Это знаменательное событие позволяет специалистам в области информационных технологий получить важную и полезную информацию из первых рук – от представителей компании Intel, лидера ИТ, а также от партнёров. Форумы Intel для разработчиков проводятся во многих странах мира. В России форум Intel впервые прошёл в 2002 году в Москве. Но территория Российской Федерации Москвой отнюдь не ограничивается. В нашей стране есть немало регионов, обладающих высоким научным и интеллектуальным потенциалом. Именно поэтому в 2004 году Intel провела в Новосибирске первый региональный Форум для разработчиков. А в этом году в Новосибирске прошёл уже второй региональный Форум Intel для разработчиков. На нём присутствовало более тысячи специалистов, которые прослушали доклады ключевых экспертов в области информационных технологий, включая гостей из-за рубежа. Что интересно, все специалисты подготовили доклады специально для российской аудитории.
Пленарный доклад Стивена Чейза и Бориса Бабаяна
Форум начался с пленарного доклада Стивена Чейза, президента российского представительства корпорации Intel, который он прочитал совместно с Борисом Арташесовичем Бабаяном, не так давно получившим почётное звание Intel Fellow.
Борис Арташесович отметил важность мероприятия для Hi-Tech индустрии в России. Его команда начала контакты с Intel два года назад, и в итоге его коллектив вошёл в компанию Intel. Впрочем, об этом мы уже писали. Объединение имело большое значение и для Intel, и для России. Оно явилось признанием уровня российских учёных, а в Россию пришли высокие технологии. В целом, подобное объединение открыло дороги молодым учёным, для будущего развития.
Стивен Чейз отметил важность сотрудничества с государственными органами. Действительно, очень важно, если власти понимают необходимость развития информационных технологий, которые могут принести немалую пользу обществу. В качестве примера такого сотрудничества Стивен упомянул хорошее взаимодействие с заместителем губернатора Новосибирской области Геннадием Алексеевичем Сапожниковым, которому было передано слово.
Геннадий приветствовал участников форума и рассказал, что с компанией Intel у властей Новосибирской области установились хорошие партнёрские отношения. Уже разработаны конкретные планы развития информационных технологий в Сибирском федеральном округе. Проведение Форума в Новосибирске, как отметил Геннадий, позволит более эффективно продвигать информационные технологии на уровень простого россиянина.
Как отметил Стивен Чейз, в России необходимо построить конкурентоспособную ИТ-индустрию. Масштабы этой индустрии непосредственно сказываются на развитии российской экономики. Состояние ИТ-индустрии в России важно для всех форм бизнеса: большого, среднего и малого. Развитие конкурентоспособной ИТ-индустрии даст преимущества гражданам, бизнесу и правительству.
Что касается мировой экономики, то компания Intel вкладывает немало средств в научные исследования по всему миру. В научно-исследовательской деятельности Intel участвуют более 7000 человек, из которых российский коллектив составляет более тысячи. Напомним, что сегодня в России работают пять научно-исследовательских “сайтов” Intel, в том числе и в Новосибирске (см. наш репортаж). Как отметил Стивен, инвестиции в Россию приводят к инновациям. А инновации – очень важная часть информационной экосистемы. Причём немалую роль в инновациях играют разработчики – участники форума Intel.
Борис Арташесович отдельно остановился на инновациях, для появления которых очень важен рабочий коллектив. Он подчеркнул значимость объединения двух коллективов: компании Intel и ведущих разработчиков в России. Каждый коллектив работал под руководством профессионалов в своей области. В Intel им был Гордон Мур, а в российской науке можно назвать таких ярких лидеров, как Сергей Алексеевич Лебедев, Андрей Петрович Ершов и Святослав Сергеевич Лавров. Профессии этих людей были всегда связаны с инновациями. Как отметил Борис Арташесович, работа в области ИТ велась российскими учёными ещё в начале 50-х годов, то есть задолго до того, как появилась Intel. Поэтому уровень российской науки не следует недооценивать.
Гордон Мур выдвинул закон, которому исполнилось уже 40 лет. В принципе, этот эмпирический закон можно рассматривать как меру инноваций. Эту меру установил Гордон Мур, и она работает до сих пор. Таким образом, закон Мура – это не просто закон увеличения плотности транзисторов на кристалле, а ещё и степень роста инноваций, которые невозможно остановить.
Но у инноваций есть, так сказать и другая сторона медали. Это не эмпирическая, а фундаментальная основа, в области именно фундаментальных исследований. В качестве примера можно привести параллелизм вычислений. Логическая скорость машин связана с эффективным использованием параллелизма. Как отметил Борис Арташесович, в нашей стране говорили о параллелизме ещё на заре развития вычислительной техники. Уже тогда думали о том, как распределить арифметические операции на параллельные машины. В процессе эволюции ВТ понятие параллелизма существенно изменилось. Параллелизм стал применяться к использованию нескольких устройств АЛУ внутри процессора. То есть процессоры стали суперскалярными. В качестве примеров Борис Арташесович привёл “Эльбрус” в России и Pentium от Intel. Затем параллелизм стал использоваться как средство в области многопоточности. Потом появились многопроцессорные машины, а теперь уже на рынок выходят многоядерные технологии.
Говоря о фундаментальных исследованиях, Борис Арташесович привёл пример защищённых вычислений, которые позволяют создать хорошую защищённую машину. В коллективе Б.А. Бабаяна велись работы по внедрению высокотехнологичных программ, в результате чего появилась высокозащищённая система, способная бороться с вирусами. Борис Арташесович ещё раз подчеркнул, что фундаментальность – важная черта инноваций.
Ещё одна черта – учёт требований рынка. Инновации должны быть в тех областях, которые необходимы рынку. И здесь Intel работает очень успешно: компания развивается ещё и в телекоммуникационной области, в сферах беспроводной связи и защищённых технологий. Здесь и фундаментальные соображения, и требования рынка двигают технологии в одном и том же направлении.
Кроме того, Борис Арташесович хотел бы обратить внимание и на другое измерение инновационных технологий. Очень важен творческий потенциал сотрудников, которые занимаются в этой области. В России потенциал сотрудников очень высок, поэтому корпорация Intel и пришла в нашу страну. Но с другой стороны, для того чтобы инновации были успешны, необходимы ресурсы, инвестиции. Intel смогла обеспечить все эти ресурсы. Творческий потенциал, инновации и ресурсы в результате оказались в хорошей синергии. Успешные инновации дают прибыли, а хорошие прибыли позволяют вкладывать больше ресурсов в инновации.
Чтобы создавать доброкачественные кристаллы нужно быть хорошо осведомлённым в том, что окружает кристалл. Следовательно, возникает необходимость делать всё более интегрально. Путь, на который встала Intel – платформизация. То есть теперь компания не только создаёт отдельные кристаллы, но и обращает внимание на разработку компьютера. И здесь есть характерный пример – платформа Centrino.
Сегодня уже целый ряд продуктов носят комплексный характер. Как заключил Борис Арташесович, инновационная деятельность открывает путь к бурному и успешному развитию ИТ в целом.
Рамочное соглашение с администрацией Новосибирской области
Во время Форума Intel для разработчиков было подписано рамочное соглашение о намерениях с администрацией Новосибирской области. От администрации соглашение подписал заместитель губернатора Геннадий Алексеевич Сапожников, а со стороны Intel – вице-президент Sales and Marketing Group, директор Solutions Market Development Group корпорации Intel Джон Дэйвис.
Подобное соглашение – уже второе в России. Напомним, что первое соглашение было подписано в сентябре 2004 года в Татарстане. Новое соглашение подчёркивает высокую оценку научно-образовательного комплекса Новосибирской области.
В соответствии с подписанным документом, стороны планируют разработать и реализовать в 2005-2007 гг. ряд проектов, направленных на продвижение информационно-коммуникационных технологий в Новосибирской области. В частности, в целях обеспечения доступного и повсеместного широкополосного доступа в Интернет сочтено возможным использование технологии WiMAX. В связи с этим, планируется обсудить возможность создания в Новосибирской области опытных зон беспроводной сети с применением этой технологии.
Протокол также предусматривает совместную деятельность с управлением образования Новосибирской области по дальнейшему развитию образовательных программ Intel на территории региона. Речь, прежде всего, идет о всемирной благотворительной программе Intel “Обучение для будущего”, в рамках которой школьные учителя приобретают навыки использования информационных технологий в учебном процессе. На сегодня в 70 с лишним регионах РФ открыто 76 центров переподготовки и повышения квалификации учителей, ещё 29 центров будет открыто в ближайшее время. Общее число российских учителей и студентов педагогических вузов, прошедших подготовку в подобных центрах, превысило 140 тысяч.
Стороны рассматривают возможность реализации программ в поддержку использования информационных и коммуникационных технологий предприятиями малого и среднего бизнеса, включая программы образовательных семинаров и т.п.
Всеволод Предтеченский: инновации Intel
Всеволод Предтеченский, ведущий специалист Intel в России, прочитал очень интересный доклад. В нём он не только показал, почему производительность остаётся важнейшим критерием, но и пояснил принципы развития многоядерных технологий.
Производительность остаётся важнейшим критерием
Сегодня компьютеры для многих являются обычными “серыми ящиками”, начинка которых способна решать все современные задачи. Не всё ли равно, что будет установлено внутри: какой процессор, какая платформа? Может, хватит изобретать? Зачем все эти лишние усилия? Конечно, какие-то инновации происходят. Но какой ценой они даются? Стоит ли овчинка выделки?
Что же думает по поводу всего этого Intel? Корпорация считает, что требования, предъявляемые к компьютерам, меняются. К примеру, сегодня практически все компьютеры работают с беспроводной сетью. Но лет пять назад о таком и думать не могли. Однако сегодня беспроводный адаптер воспринимается как неотъемлемый атрибут мобильного ПК. В целом, число подключённых к компьютеру устройств, которые пользуются вычислительными услугами ПК, неуклонно возрастает.
Компьютеры начинают обмениваться всё большим количеством данных. Сегодня уже не задают вопрос, сколько времени человек проводит в Интернете и что он там делает. Сегодня спрашивают: сколько данных он может скачать? С появлением массового доступного Интернета в голову приходят совершенно новые мысли. Скажем, можно ли заказывать по Интернету фильмы и смотреть их по телевизору? Не пора ли выбросить радиоприёмник и слушать радио по Интернету?
Компьютеры проводят скрытые и упреждающие вычислительные операции. Здесь было приведено два примера. Первый – программы, которые будут блокировать чужой доступ. С распространением публичных сетей проблема защиты данных пользователя встаёт всё острее. Компьютеры должны обладать достаточной мощностью, чтобы упреждать и предотвращать атаки извне. Если, например, в компьютере будет два процессора, то логичным будет загрузить один полезной деятельностью, а второй заставить отслеживать и отсекать попытки вторжения извне. Второй пример – поисковая система. В качестве примера была приведена программа Google Desktop. Приятно видеть, что программы подобного класса появились на персональных ПК. Сегодня на компьютерах скапливается всё большее количество данных. Жёсткие диски становятся больше, поэтому объём данных неуклонно растёт. Если раньше приходилось раскладывать входящую корреспонденцию по специальным папкам, то Google Desktop позволяет валить все письма в кучу, с которой затем работает поисковая система. Поэтому любое письмо можно легко и быстро найти. Наверняка в скором времени мы захотим искать музыкальные отрывки, фрагменты видео.
Наконец, отметим новые модели использования, скрывающиеся под термином RMS (Recognition, Mining, Synthesis – распознавание, поиск, синтез). В принципе, ничего нового здесь нет. Оставаясь последовательными машинами по своей сути, компьютеры вынуждены обрабатывать реальные объекты последовательно. Но производительности не хватает, и алгоритмы обработки приходится усекать и сокращать. В качестве примера можно привести трёхмерные объекты. Вместо них на экране компьютера мы видим всего лишь фасады. То есть перед нами не реальный объёкт, а подобие того, как он должен выглядеть на экране компьютера. В перспективе можно ожидать перехода от приближенных моделей “фасадов” к точному воспроизведению жизни и поведения сложных и простых объектов.
Что же мы наблюдаем в итоге? Настольный компьютер начинает выполнять задачи, прежде характерные только для суперкомпьютеров. Приложения, раньше являвшиеся прерогативой мейнфреймов, сегодня часто переходят “на столы”. Суперкомпьютеры становятся массовым явлением.
Та же трёхмерная графика в 80-х годах, да и в начале 90-х, была прерогативой рабочих станций. Теперь же она перешла на ПК. Посмотрите на компанию nVidia – из небольшой фирмы мы получили законодателя мод в сфере 3D для персональных компьютеров.
Другая задача: синтез компьютерных фильмов. Совсем недавно для неё требовались масштабные серверные фермы, но когда-нибудь мы получим такую возможность и на ПК. И кто знает, к каким результатам это приведёт. Мы получим новый класс задач, который сделает нашу жизнь комфортнее и интереснее.
Проблемы роста производительности
Производительность остаётся важнейшим критерием. Какие же при этом возникают проблемы?
Компьютер остаётся машиной, работающей по принципу Фон-Неймана. То есть он выполняет последовательность команд, составляющую программу. Было бы хорошо “нарезать” эту программу на отдельные кусочки, которые можно будет выполнять параллельно. Кстати, принцип параллельного выполнения уже давно используется на суперкомпьютерах. Сегодня, при последовательной обработке, мы можем использовать лишь приближённые модели. К примеру, возьмём модель глиняного кролика, который разбивается на множество частей. Для реалистичной картинки нам нужно просчитать каждую частицу. Эту задачу можно выполнить параллельно, но на обычной машине приходится прибегать к упрощённой модели. То есть для роста производительности, для получения реалистичной графики и достоверного 3D-мира мы должны максимально эффективно использовать параллельные вычисления.
К сожалению, сегодня большое число программ не могут использовать два ядра. Чтобы перейти к параллельным вычислениям, необходимо разделить программу на “кусочки”. Два ядра на процессоре – это только начало пути параллелизма. Планируется, что со временем количество ядер на кристалле увеличится. Потому не столь важно, какие будут двуядерные процессоры следующего поколения. Главное – перевести мышление от последовательных вычислений к параллельным.
Что нам ждать от будущих процессоров? Они должны хорошо измеряться (чтобы можно было оценить прирост производительности в тестах). Они должны использовать несколько ядер, чтобы люди начали программировать под многопоточность. Процессоры будут обладать большой встроенной памятью и виртуализированными аппаратными блоками. Наконец, на уровне ядер будет осуществляться управление энергопотреблением.
Как же будут развиваться многоядерные процессоры? Всеволод, отметил, что люди, как правило, сравнивают всё новое с тем, что им уже известно и знакомо. Поэтому первым шагом стали два ядра. Intel взяла те ядра, которые были на данный момент, и превратила процессор в двуядерный. Следующий шаг – увеличение количества ядер. Когда изменится менталитет программирования, можно будет использовать дополнительные параллельные ресурсы. То есть несколько ядер уже дадут весомый прирост производительности. Кроме того, возникает вопрос: а какие процессорные ресурсы нам нужны? Изменение модели программирования – это хорошо, но нужно ли нам большое число одинаковых неинтеллектуальных ядер? Не лучше ли добавить на процессор блоки со специализированными задачами? Мы сужаем область задач блока, но значительно выигрываем в скорости работы. То есть получается хороший компромисс. И технологию Input Output Acceleration Technology (технологию ускорения ввода/вывода) можно считать первым шагом в этом направлении. В итоге мы получим гибкую архитектуру, состоящую из большого числа адаптивных единиц.
Ещё несколько слов хотелось бы сказать по поводу специализированной архитектуры. Всё было бы замечательно, если можно было бы выполнять все операции на стандартных ядрах. Но во многих задачах стандартные ядра, хотя они и могут справиться с нагрузкой, рассеивают много тепла. Специализированные ядра позволяют не только быстрее выполнять определённые задачи, но и уменьшить тепловыделение. То есть они более эффективно справляются со специализированными задачами. В итоге, с точки зрения мощности и производительности, без специализированного аппаратного обеспечения в будущем нам не обойтись.
Решать проблемы роста производительности на одном уровне бесполезно. Нужно принимать во внимание все уровни: полупроводниковые и производственные технологии, цепи, микроархитектуру, корпусировку, технологии отвода тепла и систему в целом.
К примеру, рассмотрим ядра Banias и Dothan. Одна из главных их задач – экономия энергии. В принципе, процессоры продолжают потреблять энергию и греться даже в состоянии сна, если на них подаётся тактовая частота. В активном состоянии процессоры класса Pentium 4 потребляют около 100 ампер, а в состоянии сна – порядка 30-50 А. То есть у процессора продолжает оставаться огромное число утечек, которые не зависят от того, работает он или нет. Кроме того, при сокращении техпроцесса ситуация с токами утечки только ухудшается. Однако использование технологических приёмов позволяет существенно уменьшить статические утечки на процессорах семейств Intel Pentium M (Banias и Dothan) при сравнимом количестве транзисторов.
Второй пример – корпусировка. Любой материал деформируется под действием температуры, и в корпусе из-за нагрева возникают условия для деформации. Как склеить два ядра так, чтобы деформация не была критичной и не приводила к нарушению контактов с корпусом? Проблема двуядерных процессоров ещё и в том, что они имеют в два раза больший размер. При всём при этом нужно ещё и создать процессор, который будет коммерчески выгодным.
Если подвести промежуточный итог, то для увеличения производительности требуется решить следующие проблемы.
- Управление питанием.
- Производительность при нагрузках общего характера.
- Производительность при особых нагрузках и адаптивность.
- Надёжность, управляемость, безопасность.
- Экономичность для массового рынка.
Уменьшение паразитных утечек
Оказывается, за счёт усложнения аппаратной части можно уменьшить тепловыделение – хороший компромисс для мобильных процессоров. Здесь Всеволод привёл пример трёх технологий, над которыми работает Intel. Первая заключается в адаптивном смещении каналов. Вторая – в переходе на цепочку ключей, которая позволяет уменьшить токи утечки при последовательном соединении ключей. Наконец, третья технология предусматривает использование транзистора сна, который может отключать целые функциональные блоки.
Методики активного уменьшения энергопотребления
Функциональные блоки в ядрах могут работать на разных тактовых частотах. Кроме того, можно менять и напряжение питания разных блоков. То есть можно снижать не только частоту, но и напряжение питания. Мы можем решать, какие процессоры нам нужны: холодные, но медленные, либо горячие, но быстрые. Как известно, активная мощность пропорциональна частоте и квадрату напряжения. Вообще, эта технология изменения частот и напряжений функциональных блоков очень похожа на “разгон”. Каковы же взаимосвязи? Если мы повысим напряжение на 1%, то сможем увеличить частоту тоже на 1%. При этом мощность вырастет на 3%, а производительность – всего на 0,66%. То есть такой способ роста производительности не является самым эффективным.
Давайте рассмотрим переход от одного функционального блока к двум. Предположим, у нас есть логический блок. Примем за единицу частоту, напряжение, производительность, мощность и плотность мощности. Перейдём к двум логическим блокам. Понятно, что при этом площадь увеличится в два раза. Пусть оба блока работают на 0,5 частоты. При этом напряжение каждого блока тоже можно уменьшить наполовину. Суммарная производительность (если код должным образом оптимизирован) не изменится и составит 1. Суммарная мощность уменьшиться до 0,25, а плотность мощности составит всего 0,125. То есть суммарная производительность не меняется, а мощность значительно уменьшается. Плотность мощности влияет на время жизни кристалла и корпусировки – здесь она тоже намного снизилась. Подобный стратегический подход позволяет сэкономить электричество и поднять производительность.
Чтобы это понять, давайте рассмотрим второй вариант. Мы немного увеличим частоту и напряжение: до 0,85. При этом производительность составит примерно 1,8. Мощность увеличится до 1, а плотность мощности – до 0,5. То есть при сохранении прежней мощности (по сравнению с одним блоком) и при небольшом уменьшении напряжения и частоты мы получили ощутимый прирост производительности (конечно, если использовать оптимизированные приложения).
Увеличение объёма встроенной памяти
Ещё один вопрос заключается в том, сколько кэш-памяти ставить на кристалл. Вопрос не такой простой. В принципе, здесь всё зависит от приложений. Часть из них прекрасно работает вообще без кэша, в то время как другие значительно от него зависят. Большая встроенная память процессора позволяет увеличить пропускную способность, а также уменьшить задержку (за счёт запросов повторяемых данных). Кроме того, кэш-память отличается значительно меньшей плотностью мощности по сравнению с логикой процессора. В результате, увеличив кэш-память, мы можем получить высокую производительность при низком энергопотреблении.
Ожидаемые преимущества многоядерных процессоров по сравнению с одноядерными
Чтобы рассмотреть этот вопрос, давайте в качестве примера возьмём Prescott. Примем производительность и мощность этого ядра за единицу. А теперь давайте откажемся от того, что многоядерный процессор будет производителен на неоптимизированных задачах. То есть перейдём на ядро меньшего размера, которое имеет в четыре раза меньшую площадь и выделяемую мощность, но в два раза меньшую производительность.
На той же площади, что и у большого ядра, мы можем разместить четыре маленьких ядра. При этом мощность составит единицу, а производительность – 2. То есть подобная архитектура на основе маленьких ядер позволяет лучше наращивать производительность.
Но, конечно, не стоит забывать, что подобный прирост производительности мы получим только при должным образом оптимизированных программах. Поэтому “софт” нужно переписывать.
Многоядерный подход даёт ещё одно преимущество – виртуализацию. К сожалению, функции безопасности современных компьютеров реализованы не всегда оптимально. Если в вашей системе будет запущен вирус, к примеру из интернет-браузера, то он мгновенно распространится. Технология виртуализации позволяет отсекать при помощи аппаратных функций незаконные обращения одного приложения к другому. Мы можем посадить каждое приложение в своеобразную “клетку”, предоставив ресурсы, дальше которых оно не может выйти. К примеру, поместим в такую “клетку” браузер. Он не будет видеть ничего за её пределами: ни почты, ни файлов. Если в “клетку” зашёл вирус, то его можно будет легко убить. Вторая особенность виртуализации заключается в том, что если у вас есть несколько ядер, вы можете запустить несколько копий ОС. Два ядра – это два ресурса. Каждому приложению можно назначить своё ядро, и мы получим полную производительность.
Платформы
Выше мы рассматривали процессоры. Люди же покупают компьютеры. Поэтому здесь важна платформизация, которая позволит собрать воедино все технологии, способные максимально обеспечить преимущества для конечных пользователей. Корпорация Intel продолжает развивать стратегию платформизации для всех сегментов. Основой для развития являются как рост потребностей конечных пользователей, так и инновации в области платформ: беспроводная связь, управляемость, форм-фактор, время автономной работы, вычислительные возможности и т.д. Многоядерные платформы Intel обеспечат прирост вычислительной мощности. Напомним, что в основе многоядерных платформ Intel лежит опыт реализации технологий Hyper-Threading. Пользователь многоядерной платформы получит прирост производительности многопоточных приложений и быстродействия в многозадачных средах.
Планы развития
Если посмотреть на грядущие планы выпуска многоядерных процессоров, то одно ядро в ближайшие один-два года останется только в настольных ПК – слишком уж велика здесь инерционность. Да и большое количество современного ПО не оптимизировано под многоядерность, поэтому оно будет лучше работать на одном ядре, а не на двух.
В 2006 году компания Intel будет выпускать больше 10 моделей многоядерных процессоров во всех сегментах. Как ожидается, на настольном рынке доля многоядерных процессоров составит больше 70%, на серверном рынке – больше 85%, и на мобильном – больше 70%.
Как видим, Intel планирует массированный переход. Его цель – создать масштабную инсталлированную базу, вслед за которой должна подтянуться остальная инфраструктура. Нужно убедить программистов в перспективе создания таких приложений. Иначе ваши программы будут проигрывать тем решениям, которые будут оптимизированы под многоядерность.
Все продукты Intel должны быть коммерчески оправданы. Поэтому многоядерные процессоры будут использовать несколько подходов. Суть же останется неизменной: многоядерный процессор содержит два или несколько независимых исполняющих ядер. Конкретная реализация многоядерного процессора будет со временем меняться, чтобы повысить эффективность производственных расходов. Ведь архитектура процессора должна наилучшим образом сочетаться с возможностями массового производства. Кроме того, она должна быть производительна и удобна для OEM-клиентов и конечных пользователей.
К примеру, процессор Smithfield (Pentium D) будет использовать два независимых ядра на одном кристалле, каждое из которых будет обладать независимым кэшем. А 65-нм процессор Presler будет обладать двумя раздельными кристаллами ядер в одной упаковке.
Демонстрации
В завершение своего доклада Всеволод Предтеченский провёл две демонстрации. Первая – тест Cinebench 2003, который заключается в рендеринге изображения. Тест удобен тем, что позволяет смоделировать работу одного процессора (на многоядерной машине). Как мы уже отмечали выше, задачу рендеринга можно хорошо разнести на несколько параллельных процессоров. Поэтому вряд ли удивительно, что ПК с двуядерным процессором справился с рендерингом быстрее, чем одноядерная машина.
Второй пример – ABBYY FineReader 7.0. В принципе, он хорошо показывает то, как тщательно Intel сотрудничает с разработчиками программ.
Параллелизация, как отметил Всеволод, неимоверно более сложный процесс, чем “вытягивание” программы в линейку. Здесь нужны другие средства, другой образ мышления. Поэтому от разработчиков требуется больше усилий.
В тесте FineReader распознавала документ из 46 страниц. FineReader формирует несколько потоков для многостраничных документов, одновременно распознавая две (на одноядерном процессоре с Hyper-Threading) или четыре (на двуядерном процессоре с Hyper-Threading) страницы. То есть FineReader прекрасно масштабируется.
Всеволод указал на то, что распараллелить можно достаточно большое число алгоритмов.
Планы выпуска процессоров и платформ
Мы уже достаточно подробно рассматривали планы Intel по выпуску многоядерных процессоров в нескольких статьях, поэтому не будем повторяться. Просто перейдите к одной из следующих статей.
- Многоядерная дуэль: битва Intel и AMD за будущее. Часть I
- Многоядерная дуэль: битва Intel и AMD за будущее. Часть II
- Тестируем Intel Pentium D и Pentium Extreme Edition: новые двуядерные процессоры на ядре Smithfield
Переход к разработке многопоточного ПО
Заключительная часть доклада Всеволода Предтеченского была посвящена программному обеспечению. Этот раздел очень важен для Intel. Не следует думать, что многопоточные приложения можно автоматически получить перекомпиляцией однопоточных вариантов. Здесь неизбежно изменение парадигмы программирования, и сегодня следует фокусироваться именно на этом. Нас ждёт переход, масштаба которого в истории программирования ещё не было.
Экосистема разработчиков ПО должна использовать преимущества параллелизма. Здесь следует учитывать то, что экстенсивный прирост производительности посредством увеличения тактовой частоты потерял первостепенное значение. Нужно переходить на новые методики многопоточного программирования, использовать новые компиляторы, языки программирования, средства разработки и библиотеки компонентов.
Вероятностные вычисления
Мы задали Всеволоду вопрос о том, что думает Intel о вероятностных вычислениях. Всеволод выделил две стороны вопроса.
Первая связана с микропроцессорами. Те, кто занимается микропроцессорными архитектурами, уже знают их особенности. Некоторые блоки микропроцессоров уже не являются детерминистическими. Для примера поставим два одинаковых процессора рядом и запустим на них одну и ту же задачу. Однако в каждом из них может работать своя цепочка выполнения. Процессоры, конечно же, выдадут одинаковый результат, но время выполнения может отличаться – хотя и ненамного.
Вторая сторона связана с алгоритмами. Сегодня многие расчёты выполняются вероятностно вместо получения точных результатов. В качестве примеров можно привести быстрое преобразование Фурье, MPEG3/4. От точных вычислений отказываются в пользу скорости, объёма и других параметров. И подобных вычислений будет много больше. Ещё один пример – визуализация какого-либо объекта, например дерева. Представьте себе дерево – скажем, берёзу, попробуйте “увидеть” ветки и листики. Каждый может представить в уме образ берёзы, а затем приблизить его вплоть до ветви или листика. Но у каждого этот образ будет свой. Подобный алгоритм может дать сколь угодно глубокое приближение, но ответ не будет одинаковым, алгоритм использует синтез на основе предыдущего анализа. А если рендеринг такой “неточной” берёзы будет работать в десять раз быстрее точного? Не получим ли мы новый прорыв в 3D-графике благодаря приближённым вычислениям?
В целом, объём приближённых вычислений будет расти. Но и качество приближённых алгоритмов тоже будет повышаться. Вот такой парадокс. В будущем, как считает Всеволод, сохранится баланс между точными и приближёнными вычислениями.