Многопроцессорная обработка и Archicad

Что такое многопроцессорная обработка? Как эта технология поддерживается в Archicad®? Ответы на эти и другие вопросы, связанные с многопроцессорной обработкой и Archicad, вы найдете в этой статье.

Что такое многопроцессорная обработка?

Многопроцессорная обработка — это одновременное использование двух и более центральных процессорных устройств (ЦПУ). Почти все новые компьютеры оснащены либо двуядерными процессорами, либо двумя и более процессорами. Поэтому их называют многопроцессорными компьютерами.

Что такое многозадачность?

Многозадачность (не путать с многопроцессорной обработкой) означает возможность операционной системы одновременно выполнять несколько процессов, запускаемых различными приложениями. В один момент времени один процессор может выполнять только одну задачу. Для реализации многозадачности операционная система управляет доступом каждой задачи к ресурсам процессора. Действуя вместе, аппаратное обеспечение и операционная система предоставляют каждому процессу/приложению доступ к ресурсам процессора на определенный интервал времени. Это называется квантованием времени. Это позволяет даже на компьютере с одним процессором выполнять несколько программ, обеспечивая почти мгновенную реакцию на действия пользователя. Технология многозадачности существует с 1960-х годов, и ее не стоит путать с многопоточностью.

Что такое многопоточность?

Многопоточность — это возможность программы разбивать себя на несколько потоков (подпроцессов), которые выполняются одновременно и независимо друг от друга. Многопроцессорная система может одновременно запустить два и более потоков, при этом программа «работает быстрее», чем в однопроцессорной системе. На машине с одним процессором многопоточная программа не дает прироста в скорости, однако она быстрее реагирует на действия пользователя, поскольку операционная система обеспечивает псевдопараллельное выполнение нескольких операций в одной программе. «Традиционные» однопоточные приложения не могут использовать несколько процессоров, поэтому использование многопроцессорных систем не ускорит работу таких приложений.

Что такое гиперпоточность?

Гиперпоточность — это технология, разработанная компанией Intel и использовавшаяся в процессорах семейства Pentium 4. Некоторые участки процессора дублируются, однако основные исполнительные ресурсы остаются такими же, как в «одноядерном» процессоре. Технология обеспечивает одновременное выполнение двух задач при условии, что только одна из них требует основных исполнительных ресурсов. Операционная система рассматривает гиперпоточный процессор как два процессора. Тем не менее, две аналогичные задачи не могут выполняться параллельно. Для пользователей Archicad это означает, что модуль рендеринга LightWorks не будет выполняться на гиперпоточном процессоре быстрее, чем на обычном одноядерном процессоре. В некоторых случаях при включенной поддержке гиперпоточности может наблюдаться даже снижение скорости из-за некоторых особенностей таких процессоров. Тем не менее, некоторые пользователи отмечают увеличение скорости выполнения на 15%.

Что такое двухъядерный процессор?

В отличие от гиперпоточных процессоров, в двухъядерном процессоре все ресурсы продублированы. По сути, это два процессора, заключенные в один корпус. Система рассматривает двухъядерный процессор как два процессора. Компьютер с двумя самостоятельными процессорами и компьютер с двухъядерным процессором имеют одинаковую производительность при условии, что другие характеристики процессоров — особенно объем процессорного кэша и скорость интерфейса памяти — совпадают. Некоторые компьютеры, такие как Mac Pro, имеют два двухъядерных процессора, поэтому операционной системе доступны четыре логических процессора.

Является ли Archicad многопоточным приложением?

До 12 версии в Archicad многопоточность в целом не поддерживалась. Archicad 12 использует преимущества работы на нескольких ядрах/процессорах в некоторых задачах, требующих большого объема вычислений, например, при формировании разрезов, фасадов и 3D моделей, при загрузке и сохранении, при обновлении чертежей и рендеринге LightWorks. Кроме того, Archicad 12 наилучшим образом использует ресурсы графического процессора.

В Archicad 10 и 11 многопоточность поддерживают следующие функции:

  • Модуль рендеринга LightWorks
  • Сохранение файлов с возможностью сжатия данных
  • Размещение PDF-файлов в качестве чертежей (визуальный отклик при позиционировании чертежа)

Сколько ядер может использовать Archicad 12?

Archicad может использовать все доступные ядра, однако при удвоении их количества не стоит ждать увеличения вдвое и скорости работы. Увеличение количества ядер не всегда увеличивает скорость, так как для разбиения задачи на потоки и их синхронизацию требуется время. Таким образом, для некоторых функций Archicad количество ядер ограничено, тогда как в других функциях такого ограничения нет. В целом, чем дольше выполняется процесс, тем эффективнее используются возможности многопроцессорной обработки.

Несомненно, полезно иметь компьютер с двухъядерным процессором, а при работе над большими проектами лучше использовать даже четырехъядерный процессор. В некоторых случаях 8 ядер будут давать небольшой прирост скорости по сравнению с 4 ядрами, но заметной разницы вы не обнаружите.

Какие функции Archicad лучше всего оптимизированы для многопроцессорной обработки?

Формирование 3D моделей и разрезов, векторное затенение, рендеринг и перерисовка 2D изображений. Наибольший прирост производительности вы ощутите при формировании сложного разреза с векторным затенением.

Будет ли рендеринг LightWorks выполняться в два раза быстрее на двухъядерном процессоре?

Изображение в ходе рендеринга формируется в несколько этапов. При запуске функции «Photorender projection» в первую очередь в 3D окне формируется 3D модель. Затем она преобразуется в формат LightWorks, и только после этого выполняется так называемый «рендеринг», когда линии изображения начинают появляться на экране. В Archicad 12 большинство этих операций поддерживают многопоточность. В более ранних версиях Archicad многопоточность применяется только на последнем этапе.

Может ли LightWorks использовать 4 процессора?

Да. Теоретически LightWorks может использовать любое количество процессоров.

Я никогда не пользуюсь LightWorks. Имеет ли смысл покупать процессор с двумя, четырьмя или более ядрами?

Конечно, особенно если вы используете Archicad 12 или более поздней версии, поскольку огромный прирост производительности, достигнутый в Archicad 12, обеспечивается за счет многопоточности. Даже при использовании более ранними версиями Archicad только 50% процентов ресурсов процессор всегда выполняет в это время невидимые (или не вполне видимые) системные задачи или другие пользовательские задачи, например, другую копию Archicad. Во время выполнения ресурсоемких задач (например, формирования 3D модели, разрезов, публикации, обновления чертежей), когда Archicad использует максимум ресурсов процессора, система по-прежнему будет отвечать на запросы пользователя при попытке использовать другие приложения. Например, при обновлении чертежей, связанных с другим проектом Archicad, фоновый процесс Archicad не будет мешать работе с открытым проектом. Наличие двух вычислительных ядер дает преимущество всем пользователям. Четыре, восемь и более ядер принесут пользу при работе с действительно сложными моделями, а также при интенсивном использовании многозадачности. Посетив форумы Archicad-Talk, вы можете поискать темы, касающиеся покупки новых компьютеров.

У меня компьютер с четырехъядерным процессором. Когда я использую Archicad 12, все процессоры загружаются на 100% лишь время от времени. В других случаях на 100% загружено только одно ядро, или все четыре загружены на 25%. Почему так происходит?

Только некоторые компоненты Archicad 12 полностью поддерживают многопоточность. Например, когда вы формируете сложный фасад с затенением, некоторое время все процессоры будут загружены на 100%. В другое время будет работать только один поток, потребляя ресурсы, эквивалентные 100% ресурсов одного процессора. Некоторые задачи выполняются только в одном потоке, поэтому все процессоры не бывают заняты равномерно.

У меня компьютер с двухъядерным процессором. Когда я использую Archicad 11, ядра загружаются максимум на 50% и никогда не достигают 100% загрузки.

Реализуя многозадачность (см. выше), операционная система равномерно распределяет задачи по нескольким процессорам, даже если однопоточная задача будет выполняться на двухъядерном процессоре. Вместо того чтобы загрузить одно ядро на 100%, а другие оставить незадействованными, четырехъядерный процессор задействует каждое из четырех ядер на 25%. Поскольку в таких операционных системах, как XP и Mac OS, работают десятки и даже сотни системных процессов, загрузка процессора будет даже превышать 50% (2 ядра) и 25% (4 ядра).

Я выполняю рендеринг с помощью LightWorks, но оба ядра по-прежнему не задействуются более, чем на 50%

Некоторые операции LightWorks не используют возможностей многопоточности. При некоторых настройках сглаживания и других параметров LightWorks рендеринг будет выполняться только в одном потоке. Это нормально. Подробности — в статье LightWorks.

Когда Archicad будет полностью многопоточным?

Многопоточность в Archicad 12 дает огромный прирост производительности по сравнению с предыдущими версиями, однако в ближайшее время Archicad не станет полностью многопоточным приложением. Причина отчасти в том, что переписывание кода Archicad для поддержки многопоточности — очень трудоемкая задача. Кроме того, при выполнении некоторых операций это не даст большого прироста производительности. Graphisoft® продолжает реализовывать многопоточность там, где это принесет преимущества пользователям.

Имеет ли значение при многопроцессорной обработке объем оперативной памяти?

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

6 декабря 2010 г.
Читать другие статьи