1

Привет, я учусь PETSc (программное обеспечение для численного решения PDES '), и я пришел этот отрывок в FAQ

Требуется высокая производительность памяти на процессор. Каждый процессор (ядро в многоядерных системах) должен иметь свою собственную пропускную способность памяти примерно 2 или более гигабайт в секунду. Например, стандартные двухпроцессорные «ПК» не обеспечат лучшей производительности при использовании второго процессора, то есть вы не увидите ускорения при использовании второго процессора. Это связано с тем, что скорость разреженных матричных вычислений почти полностью определяется скоростью памяти, а не скоростью процессора.

Я использую системы Debian Linux и Ubuntu Linux на своих компьютерах. Как узнать пропускную способность памяти в Гб / с моего процессора? Есть ли команды Linux для этого.

2 ответа2

2

Для Linux доступен тест пропускной способности памяти . Это открытый исходный код и работает для X86 и Arm.

Это даст вам сырую производительность для вашей памяти, а также производительность системы с памятью. Но это не даст вам пропускную способность в реальном времени.

Существует также инструмент memtop. Это больше об использовании, чем пропускная способность. Вы можете использовать его для мониторинга вашей системы во время работы PETSc, чтобы увидеть, какая полоса пропускания используется.

Существует также программа для считывания счетчиков производительности процессора, которая может использоваться в сочетании с ошибками страниц.

И, наконец, вы всегда можете просто попробовать запустить PETSc. Если при использовании двух ядер производительность удваивается, у вас есть запасная пропускная способность. Повторяйте, пока скорость не увеличится. Не самый элегантный способ, но вполне возможно лучшее практическое решение.

1

Обычный способ говорить о пропускной способности памяти - использовать тест Stream, который доступен в многопоточных версиях. Существует тесная связь между теоретической пропускной способностью (количество каналов * ширина * тактовая частота) для данной системы - это удобно знать, поскольку ее легко вычислить.

sys    memory                      BW*   stream  stream/core
R      2s x 2ch x PC3200  (numa)   12.8  6.5     3.2
S      2s   2ch x pc5400  (uma)    10.8  6.1     .76
O      2s x 4ch x pc10660 (numa)   85    51      2.1

Современные машины, особенно настольные компьютеры, имеют тенденцию предоставлять больше, чем эти старые серверные системы. Вышеприведенные числа являются условно скомпилированными, ненастроенными запусками Stream - сайты энтузиастов, как правило, сообщают о настроенных числах псевдопотоков на базе Windows, которые приближаются к теоретическим значениям оборудования. Я бы не стал использовать значения из Memtest86, поскольку это тестер оперативной памяти, а не эталонный тест.

Кроме того, в целом, числовые коды могут выгодно использовать блокировку, чтобы уменьшить их зависимость от чистой пропускной способности памяти. Комментарий PETSc подразумевает, что они не блокируют, что, к сожалению, не масштабируется с помощью FLOPS на чипе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .