WebCAE
← Назад к новостям
Новости17 августа 2026

Прямой решатель на Apple Accelerate: 120 000 степеней свободы за 3,8 с вместо 87

Десктопная сборка теперь факторизует матрицу жёсткости через разреженное разложение Холецкого из Apple Accelerate. На задаче в 120 000 степеней свободы это 3,8 с против 87,2 с у прежнего прямого решателя, а порог прямого пути на macOS поднят со 120 до 300 тысяч степеней свободы.

Портрет разреженной матрицы и два аппаратных пути решения

Прямой решатель — честный способ решить контактную задачу: он даёт точный ответ, не буксует на плохо обусловленных уравнениях связи и не возвращает молча не до конца сошедшееся решение. Его беда всегда была в цене — время факторизации и память растут заметно быстрее самой модели. В десктопной сборке мы отдали эту факторизацию разреженному Холецкому из Apple Accelerate, и цена упала в 20 с лишним раз.

Что изменилось

Нативное ядро извлекает нижний треугольник матрицы жёсткости в формате CSC, выполняет символический анализ с переупорядочением AMD и факторизует через Accelerate. На Apple Silicon это раскладывает плотные суперузлы по производительным ядрам и матричным ускорителям — а именно они и съедают основное время разложения Холецкого.

Сравнение с прежним прямым решателем (Eigen SimplicialLDLT) на трёхмерных гексаэдральных моделях балок и сборок, одна машина, одни и те же матрицы:

2 940 ст. свободы
41,2 мс → 2,9 мс
9 720 ст. свободы
337 мс → 18,6 мс
54 000 ст. свободы
24,8 с → 0,95 с
120 000 ст. свободы
87,2 с → 3,8 с
Ускорение
14× – 26×
Совпадение с эталоном
1e-12

Поля перемещений совпадают со старым решателем до 1e-12 — машинный ноль для такой задачи. В постановке не изменилось ничего, поменялся только бэкенд факторизации.

Потолок стал выше

Раз факторизация подешевела, поднялся и порог, до которого продукт вообще выбирает прямой путь: на macOS со 120 000 до 300 000 степеней свободы. Ниже этой черты вы получаете точное решение, за сходимостью которого не надо следить. Выше — решатель, как и раньше, уходит на итерационный путь.

Каскад и почему мы иногда отказываемся от многосеточного метода

Решатель устроен как каскад, а не как один метод: прямая разреженная факторизация для малых и средних систем, алгебраический многосеточный предобуславливатель (AMG) для больших чистых сеток, метод сопряжённых градиентов с неполным Холецким для плохо обусловленных контактных систем и базовый CG в самом низу. Главный урок августа: выбор метода важнее его настройки.

На сборке с точной редукцией уравнений связи — 74 262 редуцированные степени свободы — AMG не просто медленно сходился. Невязка росла: 4,06 на нулевой итерации, 34,4 к 480-й, при пустом графике сходимости в интерфейсе и без ответа в конце. Тот же расчёт прямым методом: около 3 с, сошёлся. Причина структурная — после редукции связей ядро жёстких смещений, на которое опирается многосеточный метод, относится к нередуцированному телу, а не к той матрице, которую видит сглаживатель.

Это не приговор многосеточным методам. На чистой сетке первого порядка без уравнений связи тот же AMG сходится за 8 итераций на 6 миллионах степеней свободы. Поэтому решением стал не подбор предобуславливателя, а явное правило: если модель использует точную редукцию MPC, каскад пропускает AMG вовсе, и отдельный тест-страж роняет сборку, если правило кто-нибудь снимет. Плюс жёсткий обрыв: если после 15 многосеточных циклов невязка больше удвоенной стартовой, решатель прекращает работу, а не тратит минуты на расходящийся счёт.

Что это даёт на реальной модели

Рама из 88 тел, связанных 1 106 контактными парами (3 318 уравнений связи), теперь считается как единая конструкция: максимальный прогиб под собственным весом 0,126–0,143 мм. До починки сборки связей та же модель давала прогибы в десятки метров, а 87 тел из 88 разлетались в стороны.

Где остаются пределы

Честные числа, потому что форма кривой важнее любого отдельного замера: объём работы факторизации растёт примерно как квадрат размера задачи, а заполнение множителя — быстрее самой матрицы. На тестовой виртуальной машине с Linux модель на 121 680 степеней свободы занимает 87,2 с и 1,17 ГБ; на 242 760 степенях свободы это уже около 14 минут и 3,8 ГБ. Дальше прямой путь перестаёт быть интерактивным, а за миллионом степеней свободы на сборках с точными связями хорошего маршрута у нас пока нет вообще: ни один из проверенных прототипов — ни deflated PCG, ни формулировка через дополнение Шура — на системе в 1,1 млн степеней свободы не сошёлся. Этот пробел мы пока не закрыли и предпочитаем сказать об этом прямо, а не привести число, которое не воспроизводится.

Цифры выше сняты на Apple Silicon для пути Accelerate и на восьмиядерной виртуальной машине с Linux для исследования масштабирования. Это разные стенды, и мы не смешиваем их в одной таблице.

Мы используем обязательные cookie для работы сайта и, с вашего согласия, аналитические. Политика конфиденциальности