Попробуйте скомпилировать вашу 64-битную программу. 32-разрядные программы могут иметь до 2 ^ 32 = около 4 ГБ памяти. 64-битные программы могут использовать значительно больше (2 ^ 64, что составляет 18 эксабайт). В наши дни очень легко набрать 4 ГБ памяти.
Обратите внимание, что если вы используете больше ОЗУ, чем у вас есть, вашей ОС придется перенести часть памяти на диск. Это может сильно повредить производительности. Если вы дойдете до этой точки (где вы используете значительную часть ОЗУ) и у вас останутся дополнительные ядра, вам придется углубиться в алгоритм, чтобы найти более детализированный участок для распараллеливания.
Если вы дляпо какой-то причине невозможно переключиться на 64-разрядную версию, вы можете выполнять многопроцессорную обработку (запускать несколько экземпляров программы), чтобы каждый процесс имел до 4 ГБ. Вам нужно будет как-то запустить и скоординировать процессы. В зависимости от ваших потребностей это может означать использование простых аргументов командной строки или сложного межпроцессного взаимодействия (IPC). OpenMP не делает IPC, но Open MPI делает. Открытый MPI обычно используется для связи между многими узлами в сети, но его можно настроить для одновременного запуска экземпляров на одном компьютере.