Вы пробовали его профилировать?
После этой бумаги (pdf) для расчета матрицы 100x100 с разложением LU потребуется 1348250 (операции с плавающей запятой). Ядро 2 может делать около 20 Гфлопс ( метрика процессора ). Таким образом, теоретически вы можете сделать инверсию за 1 мс.
Без кода довольно сложно утверждать, что является причиной большого разрыва. Из моего опыта пробной микрооптимизации, такой как циклическое развертывание, кэширование значений, SEE, многопоточность и т. Д., Вы только получите ускорение, которое в лучшем случае является лишь постоянным фактором вашего тока (которого может быть достаточно для вас).
Но если вы хотите увеличить скорость на порядок, вы должны взглянуть на свой алгоритм, возможно, в вашей реализации декомпозиции LU есть ошибка. Еще одно место, на которое стоит обратить внимание - это организация ваших данных, попробуйте другую организацию, соедините элементы строки / столбца.