Хотя у меня нет большого опыта работы с суперкомпьютерами (вообще), я могу вам сказать, что std :: bad_alloc должен появляться только тогда, когда у вас заканчиваются системные ресурсы.
В этом случае есть вероятность, чтовы достигли предела, который компьютер накладывает на вашу кучу (либо с точки зрения операционной системы, либо с физической точки зрения {то же самое в конце}), так как ваш вектор будет динамически размещать элементы в куче.
Вы можете попробовать использовать top
или аналогичную команду, чтобы отслеживать использование вашего ресурса и сравнить настройки вашей системы с тем, что вы на самом деле используете.
Еще одно замечание - вы должны создать свой вектор и резерв вызовов () если вы знаете, сколько элементов он будет примерно использовать - это значительно повысит вашу эффективность.