Я работаю над программой FEM, написанной на C, для моей степени бакалавра, которая требует очень больших массивов (массивов, состоящих из [1 000 000] элементов) для хранения данных, а затем манипулирования их. Он также использует 2D-массивы, которые имеют похожие необычно большие размеры (например, [100 000] [100 000]).Огромный размер массива [1M] возможный переполнение стека
Программа завершается без какой-либо ошибки. Было обнаружено, что только когда программа выполнит процедуру для генерации сетки (которая использует большие 2D-массивы), она сработает.
Почему у вас есть требование к компилятору, а не требование к памяти? Таблица '100K x 100K float' будет принимать 37 ГБ оперативной памяти (если только я не ошибался в математике). Лучший компилятор не сделает его лучше. Я думаю, что ваша проблема больше связана с структурами данных или алгоритмами. –
Почему вы считаете, что бесплатные компиляторы не отличаются от запатентованных, поскольку речь идет о распределении огромных массивов? Это алгоритм, который является проблемой здесь (где разные компиляторы могут иметь очень разные оптимизации вектора), ОС может вступить в игру (так как вам может понадобиться извлечь часть из памяти) и т. Д. Просто размер памяти не будет разница между компиляторами сама по себе, и мы недостаточно знаем о других требованиях предлагать что-либо. –
Gcc будет работать, однако ваш компьютер может не работать. – Asoub