Служба новостей IDG, Сан-Франциско
Многоядерные архитектуры заставляют задуматься об использовании параллельности уже на уровне клиентского ПО
Популярность многоядерных процессоров растет, о чем свидетельствует демонстрация пяти новых многоядерных архитектур, которую провели их разработчики в рамках конференции Fall Processor Forum, организованной исследовательской компанией In-Stat/MDR. А вот разработчики программного обеспечения, как считают руководители корпорации Microsoft, плохо подготовились к наступлению этой эпохи.
Херб Саттер, архитектор программ корпорации Microsoft, в своем выступлении на конференции отметил, что разработчики процессоров понимают, что производители процессоров вынуждены были обратиться к многоядерным архитектурам, чтобы решить проблему выделения тепла. В то же время разработчики не уверены, понимают ли проектировщики аппаратного обеспечения, что до сих пор производительность программного обеспечения для ПК автоматически увеличивалась по мере роста производительности процессоров, и какую сложную задачу они ставят перед создателями программ. Разработчики могли просто вносить небольшие изменения в существующие программы и добиваться увеличения быстродействия, в то время как проектировщики аппаратуры придумывали способы поднять производительность процессоров.
Но многоядерные архитектуры заставляют задуматься об использовании параллельности уже на уровне клиентского программного обеспечения.
Разработчики, создающие приложения для серверов, уже решили эти проблемы, поскольку многоядерные процессоры и многопроцессорные системы широко применяются на рынке серверов вот уже несколько лет. Многие из этих приложений, по мнению Саттера, предназначены для работы нескольких программных цепочек, способных использовать параллелизм таких систем. Разработчики клиентских приложений, однако, по-прежнему обитают в мире, где есть только одна цепочка выполнения, многие годы создавая то, что Саттер назвал «последовательными приложениями».
Разработчики программного обеспечения должны предложить новые способы его создания. Как с появлением объектно-ориентированного программирования увеличилась сложность языков сборки, точно так же и параллельное программирование требует нового уровня абстракции.
Microsoft работает над этой проблемой в рамках проекта Concur Project, который ведет группа, возглавляемая Саттером. Они пытаются определить эти абстракции и связать их с аппаратным обеспечением. Но все разработчики программного обеспечения должны понимать, что в дальнейшем программное обеспечение для ПК необходимо создавать с учетом параллельности его работы.
Проектировщики процессоров способны помочь, напоминая разработчикам программного обеспечения, как они создают свои продукты. Аппаратное обеспечение в первую очередь должно сосредоточиваться на программируемости, а потом уже на скорости.