О многоядерности будущего

Сегодня посетил очередное секретное заседание клуба экспертов Intel, которое на сей раз прошло в тайном бункере неподалеку от Курчатовского института. Говорили о беспроводных решениях будущего — какими они будут, как сочетаются в них аппаратные и программные достижения, сколько будут стоить и так далее, и тому подобное. По накалу секретности заседание было воистину выдающимся: кажется, впервые на моей памяти Алексей Рогачков не разрешал фотографировать некоторые слайды презентации. Тем же, кто не слушался, Алексей фирменным взглядом в объектив снижал значение ISO камеры до -800. Разумеется, до тех пор, пока тайное не станет явным.

К сожалению, о многом услышанном действительно не напишешь в блоге, но многие из читателей, скорее всего, могут получить доступ к этой секретной информации, воспользовавшись служебным положением. Я же остановлюсь на том, что секретом не является, но простор для фантазии открывает почти безграничный. Докладчик, рассказывая о беспроводных модулях, поддерживающих одновременно и Wi-Fi, и WiMAX (Intel® Centrino® Advanced-N + WiMAX 6250 и более старый WiMAX/WiFi Link 5150), уточнил: «Эти решения двухъядерные, но на данном этапе ядра могут работать только по одному — или Wi-FI, или WiMAX. В будущем, скорее всего, появится возможность использовать оба ядра одновременно, плюс планируется добавить новые — с дополнительной функциональностью».

Тут-то я и подпрыгнул. Ведь многоядерность в потребительских сетевых решениях — это круто уже само по себе. Пока они работают по очереди, ничего необычного не происходит — драйвер просто щелкает виртуальным тумблером. Программам вообще все эти чудеса до лампочки: их интересует только есть доступ в Сеть или нет. Но вот наступило завтра, и оба ядра заработали разом. Мгновенно возникает немало каверзных вопросов. Например, как программе быстро выбрать способ максимально быстрого скачивания заданного объема данных при минимальных затратах энергии аккумулятора? Как пустить важный служебный трафик по защищенному Wi-Fi, а второстепенный («Одноклассники», торренты) по WiMAX? Как незаметно для пользователя подключить еще одно соединение, когда пропускной способности основного не хватает? Как объяснить антивирусам, что вот это ядро надо проверять предельно сурово, а это — лишь слегка? Как гнать весь входящий трафик по WiMAX, а исходящий — по Wi-Fi? Можно пофантазировать еще по поводу появления ядра с 3.5G или GPS…

Пока пользователь сам, добровольно устраивает в своем компьютере зоопарк сетевых подключений, это его проблема. Но если Intel выпускает столь высококомбинированное решение, пользователи начинают посматривать в сторону корпорации и, чуть что не так, писать в форумах и блогах гадости.

Во время визита в Нижний Новгород и общения с руководителями инженерных подразделений, менеджерами SSG, мы пришли к выводу, что для эффективного использования многоядерных процессоров нужны представители новой школы программирования. Собственно, у меня теперь вопрос: а для многоядерных сетевых адаптеров тоже нужно ждать новой школы, или и старые зубры справятся?