GCC получил поддержку offloading

Наш коллега, Nick Clifton, обратил наше внимание, что спустя год после анонса начала работы, в GCC появился offloading. Функционально, это реализовано так - фрагменты программы при сборке GCC транслируются в промежуточное представление и передаются дальше, на (до)сборку некоторому другому компилятору или компиляторам. Полученное потом встраивается в итоговый бинарник, который при запуске и исполнении передаст инородный кусок кода на некий другой доступный вычислительный узел (например, программа начнет выполняться на CPU, а часть передаст на выполнение на GPU). Пока поддерживается offloading для архитектуры Intel MIC, но уже можно предсказывать появление других вариантов.

Что особенно приятно, так это то, что работа проведена соотечественниками из российского филиала Intel - Michael V. Zolotukhin (ныне инженер Apple), Ilya Verbin, Kirill Yukhin и еще некоторые стесняшки, не имеющие публичных профилей в популярных среди разработчиков социальных сетях Google+, LinkedIn и GitHub. Молодцы, соотечественники!

Интересно, что до появления LLVM, без упоминания которого сейчас уже невозможно рассказать о, наверное, самой популярной гибридной вычислительной модели - нативный код + OpenCL, манипуляции и прямой доступ к промежуточному представлению GCC не поощрялись. Конечно, добраться до внутренностей GCC было можно, что и сделали в том же проекте GCC-XML, но это было непросто, и помощи от сообщества вряд ли стоило ожидать. Мы стараемся сторониться политических тем, пока эти темы нас не затрагивают, но мы слышали, что дело было именно в политике. В народе говорят, что некоторые разработчики и идеологи проекта GNU всерьез опасались, что если сделать промежуточное представление GCC доступным к использованию, то embedded-вендоры перестанут открывать спецификации на свои архитектуры, предпочитая вместо этого предоставлять клиентам проприетарные модули для использования совместно с GCC. Году в 2002 эти рассуждения, наверное, выглядели вполне обоснованно, но с тех пор прошло много времени, и производители микропроцессоров теперь начинают с того, что пишут поддержку своей архитектуры в GCC. Хотя, конечно, может такая их открытость сегодня и является следствием пугливых решений проекта GCC того времени, теперь уж и не узнаешь.