Если ваша матрица разреженная , т.е. она содержит много нулевых записей, то вы можете легко реализовать множество пакетов алгебры разреженной матрицы без особых проблем.К сожалению, это потребует от вас хранения ваших матриц в разреженном формате, что, насколько мне известно, gsl
не делает.Как только ваша матрица будет храниться в каком-то разреженном формате, вы сможете без проблем работать с большими системами, даже в последовательных приложениях.
Я предлагаю использовать UMFPACK, поскольку для его реализации требуется наименьший объем работы.это не требует, чтобы вы помещали свои данные в их структуры.
Замечание по параллелизму: Если ваш код в настоящее время последовательный, переход к параллельному решателю НЕ тривиален.Вполне возможно, что реализовать многопоточный пакет может быть просто, но у меня нет большого опыта работы с многопоточными программами.Кроме того, действительно параллельные решатели (распределенная память) не так уж эффективны, поскольку каждому процессору требуется собственная копия полной матрицы, и лучше использовать итерационные методы.
Немного больше подробностей было бы полезно: Как долго это долго?Вам нужно обратное по какой-то причине, или вы просто решаете систему уравнений?