Единство двух миров

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

Пословица вспомнилась, конечно, неспроста. Я так часто пишу о важности поддержки многоядерных процессоров в играх и программах, что надо мной регулярно подшучивают. Не обижаюсь: во-первых, очень приятно поднимать людям настроение, а, во-вторых, внимание к проблеме все равно привлечено. Но я – тот самый рот, напевающий «Халва! Халва!» на разные мотивы. А есть еще много людей, занимающихся конкретными делами по продвижению идеи параллельного программирования и созданию соответствующих инструментов – в Intel SSG и Intel Software Network. Все ли получается идеально? Наверное, нет. Но от двухъядерной системы прок есть уже есть в большинстве распространенных приложений. И, думаю, скоро научатся массово «пригождаться» и четыре ядра. Если вы, читая это, скептически усмехаетесь – спросите себя, готовы ли вернуться на компьютер с одноядерным процессором, пусть и с достаточно высокой частотой? Лично я – ни за какие коврижки, потому что само ощущение от работы сейчас совсем другое, особенно если не жадничать при выборе основного накопителя.

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

И вот мы наконец-то подбираемся к истории, подтолкнувшей к написанию этого чуть пафосного вступления. Как мы знаем, кроме x86 есть еще одна параллельная вселенная, держащая преимущество на рынке совсем мобильных устройств. И там с недавних пор играют в многоядерность – начали с двух, но совсем скоро освоят и четыре. Недавно я очутился на Туманном Альбионе, где проходила презентация нового флагманского смартфона одной хорошей компании. Аппарат получился большой, красивый и недешевый. Хочешь кино смотри, хочешь в игры играй, хочешь фотографируй, а хочешь - почту читай. Да, еще звонить можно. Я даже проникся мыслью обзавестись таким же.

Но вот отгремели фанфары, и журналистов допустили к сэмплам. Держу аппарат в руках, читаю характеристики и чуть ошалеваю: процессор-то внутри… одноядерный! При этом работает все не медленнее, чем на моем смартфоне, где используется двухъядерная версия. Крайне удивленный таким подходом к проектированию флагманов, иду к представителю компании и начинаю на своем небезупречном английском допытываться о странном подходе к созданию флагманов. Мужчина сначала пытается переключить мое внимание на мегаэкран (здоровенный!) и чудо-наушники в комплекте (отличные!), а потом говорит: «Слушай, ну если нет никакой разницы, зачем ставить двухъядерник?».

- Это как – никакой разницы?
- Да так – никакой. Не пишут пока приложений, использующих больше одного ядра. Только в бенчмарках и можно что-то углядеть. Частота гораздо важнее, и здесь она вполне достаточная. Так что не волнуйтесь, пользователи останутся довольны.

Между нами говоря, подобный «откат» по ядрам – не хитрое инженерное решение, а просто эффективное использование уже готовой аппаратной платформы. Ее разработали для операционной системы, вообще не признающей больше одного процессорного ядра на борту, а потом решили использовать еще с одной, условно многоядерной. Но сам факт, что производитель не стесняется нарекать флагманом смартфон с одним ядром, лишь усиливает эту условность…

Путь-то между тем один: упершись в частоту, надо учиться использовать несколько ядер. Вот только на x86 эту науку стали осваивать уже давно, а коллеги из параллельной вселенной только выходят на ту же дорогу.

Все там будем :)
Per informazioni più dettagliate sulle ottimizzazioni basate su compilatore, vedere il nostro Avviso sull'ottimizzazione.
Contrassegni: