Intel считает, что параллельное программное обеспечение гораздо важнее для многоядерных процессоров типа Larrabee.
Уже несколько лет многоядерные
процессоры активно используются на потребительском рынке. Однако, несмотря на стабильный доступ к двух-, трёх- и четырёхъядерным процессорам, до сих пор создано очень мало приложений, которые могут активно использовать вычислительные возможности нескольких ядер. Компания Intel надеется, что это изменится, и призывает разработчиков
программного обеспечения активно работать над параллельными программами.
Джеймс Райндерс (James Reinders), руководитель службы маркетинга отделения Software Products Division корпорации Intel, выступил с речью на конференции SD West. Он сказал, что разработчикам программного обеспечения пришло время "по-настоящему понять, как мыслят параллельно". Он также сказал о том, что возможности разработчиков, которые не сумеют думать параллельно, очень ограничены.
Райндерс представил восемь правил создания параллельных приложений ещё в 2007 году. Эти восемь правил включают в себя параллельное мышление; программирование с помощью абстракций; программирование не потоков, а задач; создание решений с возможностью отключения параллельности; избегание блокировок, если это возможно; использование подходящих для параллельных вычислений инструментов и библиотек; использование масштабируемой памяти; масштабируемость при увеличении рабочей нагрузки.
Несмотря на то, что первые многоядерные процессоры появились около пяти лет назад, Intel по-прежнему борется за параллельность в программах, предназначенных для процессоров. При этом производитель ощущает растущее давление со стороны nVidia, партнёры и собственные разработчики которой пишут параллельные приложения, исполняемые на GPU. Сейчас nVidia и Intel оказались втянуты в борьбу за определение того, что же будет основой будущих
компьютеров: GPU или CPU.
Как утверждает Райндерс, программирование для процессоров с 16 или с 32 ядрами принципиально отличается от программирования для одноядерных процессоров и имеет совсем немного общего с программированием для процессоров с двумя-тремя ядрами. Выполнение программы должны быть не только параллельным настолько, насколько позволяет конкретная система; оно должно при необходимости легко становиться однопоточным. Нельзя создавать программы, которые не смогут работать без параллелизма. Это делает создание и отладку программ очень сложной задачей.
Райндерс рассказал о пакете программ Intel Parallel Studio, который предназначен для разработки параллельных приложений на C/C++. к настоящему моменту появилась бета-версия этого пакета. Райндерс добавил, что основная идея этого пакета ─ добавить поддержку параллелизма в Microsoft Visual Studio. Компания Intel планирует предложить аналогичный пакет программ для Linux в конце этого года или начале следующего. Эти пакеты программ позволят писать приложения, активно использующие параллельные вычисления, и больше подходящие для многоядерных процессоров Larrabee, чем современные. По имеющимся сведениям, процессор Larrabee будет включать в себя графическое ядро, что позволит Intel конкурировать с nVidia и ATI на рынке графических решений. Программы для Larrabee будут использовать язык C/C++, аналогично последним GPU nVidia, в которых используется CUDA.