Процесс 32бит не может съесть больше 2гб памяти, а с учетом специфики работы NET - примерно на 1.2-1.3гб начинаются out of memory.
64бит процесс можно "употребить" сколько угодно памяти. Что касается 2млн проходов, то при это нужно только 2гб на хранение результатов, не считая рабочего объема. В принципе 4гб должно хватать, но в притык. Зависит от количеств блоков (индикаторов) в скрипте и выделяемого объема под кеш.