Print at Dec 17, 2025, 7:08:26 AM

Posted by NaKS at Apr 23, 2023, 5:45:18 PM
Re: Чем кому помочь?
Доброго времени суток!
Возник вопрос, скорее, риторический. Возможно, это не вопрос даже, а, информация к размышлению. В то же время, если кто-то знает, что у этой проблемы есть решение и поделится таковым - буду крайне признателен.

Итак, я являюсь обладателем двухпроцессорной сборки, приобретенной на популярном аггрегаторе aliexpress. Это двухсокетная материнская плата на LGA 2011-3 (чип C612), два процессора и ECC-reg оперативная память (4 х 8Gb). Windows 10 64 bit, если это важно. Поскольку, рендеринг в SweetHome3D проводится на процессоре, подобные сборки являются весьма применимыми.

Изначально сборка была укомплектована двумя E5 2670 v3. Это 12-ядерные, 24-поточные процессоры с частотой 2,3 Ghz, которые бустятся до 3,1 Ghz путём разблокирования турбобуста на все ядра (кто не в теме - не заморачивайтесь). Система рендерила только в путь, загружая на 100% все 24 ядра и 48 потоков. Условно, мой проект 5-комнатной квартиры, со всей её мебелью и множеством деталей, отрисовывался при виде "сверху" в разрешении 3840х2880 за ~40 минут (моя предыдущая система рендерила то же самое почти 5 часов).

В настоящий момент, бы проведен апгрейд до двух E5 2696 v3. Это почти максимальные 18-ядерные, 36-поточные процессоры с частотой 2,3 Ghz, которые бустятся уже до 3,8 Ghz. И, казалось бы, что мешает - но, тут обнаружился один неприятный момент. В конфигурации 36 ядер/72 потока, рендеринг в SweetHome3D нагружает только один процессор из двух. В диспетчере задач видно, как один процессор нагружает все ядра на 100%, а, второй процессор простаивает (2-6% загрузки). Что интересно - даже при таком раскладе, один 2696 v3 рендерит быстрее, чем пара 2670 v3 где-то на хх процентов (~ 15 минут против предшествующих ~ 40 минут).

Ситуация меняется при отключении многопоточности (Hyperthreading OFF). 36 ядер и 36 потоков загружаются полностью, что, в целом, чуть лучше, чем один процессор в многопотоке. Однако, опытным путём, было найдено другое решение максимизировать производитлеьность. Если отключить по два ядра на каждом процессоре, в конфигурации 2х16 (32) ядра и 64 потока - все допустимые мощности вновь загружаются на 100%, и рендеринг той же самой картинки сокращается до 12 минут 35 секунд. И, это классно, однако, гложет: простаивают целых 4 ядра (то есть, по целому процессору в большинстве случаев).

Понимая, что виноват не сам SweetHome3D, а, скорее, апплет JAVA, я обновил его. Однако, это ни к чему не привело, и это тоже интересно: была успешно установлена версия 1,7. Однако, в при выводе информации "о программе" в самой SweetHome3D, видится предыдущая версия JAVA 1.6.2.

Собственно, если кто-то сможет прокомментировать, что в моём случае не так - буду благодарен. В противном случае, могу рекомендовать, что для максимального рендеринга на двух процессорах нужно приобретать не более 16-ядерных процессоров.