Если ваши задачи могут быть распараллелены (а для математики / физики, как правило, они могут быть), используйте несколько ядер и столько оперативной памяти, сколько вы можете себе позволить. В общем, ситуация будет такова, что вам нужно много дискового пространства для хранения старых данных (обработанных различными методами), и части вычислений ввода-вывода будут незначительными по сравнению с частями ЦП. Я мог бы рассмотреть возможность получения хорошего графического процессора, который вы могли бы программировать для серьезных вычислительных нужд; но это, вероятно, излишне для вашего вопроса.
Для загрузки 1 ГБ данных с диска в буфер (который может быть помещен в память) требуется около 10 секунд на жестком диске со скоростью 7200 об / мин; и это единовременная стоимость для большинства расчетов. Редко ваши сложные математические вычисления займут всего несколько секунд (и если они это сделают - узким местом является то, что вы интерпретируете результаты и задаете новые задачи для выполнения, а не скорость ввода-вывода). Нет ничего необычного в том, чтобы иметь вычислительное узкое место, когда данные загружаются в память, и для выполнения задачи потребуется одно ядро 2 дня; но 4 ядра могли бы сделать это за полдня. Теперь нехватка ОЗУ и необходимость чтения / записи ОЗУ на диск будет огромным замедлением (даже при использовании SSD-накопителя в качестве подкачки).
Как грубый гид; чтение произвольного доступа из ОЗУ занимает порядка 10 нс; с твердотельного накопителя в десять тысяч раз медленнее этого (100 микросекунд); и жесткий диск примерно в 100 раз медленнее этого (10 мс). Таким образом, вы действительно не хотите выполнять произвольное чтение с SSD или жесткого диска. Также для последовательных чтений с диска (например, вы читаете файл со всем набором данных в память) жесткие диски не будут работать так же плохо.