Intel Core 2 Duo/Quad vs. AMD в Gaussian 03
- В этой теме 8 ответов, 3 участника, последнее обновление 15 лет, 1 месяц назад сделано
Zheka.

Была возможность сравнить производительность процессоров Intel Core 2 Duo и Intel Core 2 Quad с абсолютно одинаковой обвязкой (ОЗУ 4 ГБ) в программе Gaussian 03 (версии, оптимизированные для x86[Intel] и x86_64[AMD]). В качестве операционной системы во всех случаях использовалась ОС OpenSuSe Linux 10.2 x86_64. Тестовая задача будет приведена в сообщении ниже.
Табл 1. Время расчёта модельной задачи.
Процессор | Версия Gaussian | Время расчёта |
Intel Core 2 Duo E6700 2.66 ГГц | g03_b02_32 | 30 минут |
AMD 64 X2 4200+ | g03_c02_64c2 | 37 минут |
Intel Core 2 Quad Q6600 2.4 ГГц | g03_c02_64c2 | 37 минут |
AMD 64 X2 4200+ | g03_c02_64c1 | 39 минут |
Intel Core 2 Duo E6700 2.66 ГГц | g03_c02_64c2 | 57 минут |
Примечание: каждый расчёт повторялся 2-3 раза, время расчёта не изменялось. Исключение составил расчёт на процессоре Intel Core 2 Duo E6700 2.66 ГГц в g03_c02_64c1, который один раз прошёл за 39 минут (больше такого не наблюдалось). Окончания "c1" и "c2" означают версии старой и новой компиляции Gaussian (оптимизированные под AMD).
Выводы: 64-битная версия сильно заточена под AMD, для обсчёта небольших систем лучше использовать версию для x86.

Решил посмотреть что нового на сайте Gaussian, а там новость:
* Read the release notes for more details.
* Includes support for Intel Macs (details)
* The AMD Opteron and EM64T platforms now have separate versions of Gaussian 03.
For maximal performance, be sure to purchase and install the appropriate version for your hardware.
You can use the: cat /proc/cpuinfo
command to determine the CPU type for a Linux computer system.
Вот оказывается как.
Тестовая задача:
#P G3
Ethylene diamine
0 1
7 0.607602 1.461785 -0.460580 1 1.605840 1.342129 -0.285640 1 0.192750 1.628768 0.457188 6 0.058691 0.200288 -0.958771 1 -0.976433 0.385986 -1.282122 1 0.612247 -0.097047 -1.858150 6 0.058817 -0.960954 0.048070 1 -0.312905 -1.877578 -0.446308 1 1.091890 -1.164704 0.360312 7 -0.699714 -0.577855 1.247354 1 -1.696296 -0.567182 1.031318 1 -0.577363 -1.273890 1.980193
Можно ли считать, что обвязка одинакова, если на ядро в среднем приходится разный объём оперативной памяти?
Проводился ли расчет сразу на всех ядрах однопроцессорного компьютера? если да, то как было реализовано smp (с помощью Linda?)?
Какой у Intel Core 2 Quad степпинг (G0 или B03)?
PS чистота и повторяемость эксперимента — превыше всего -:)

Проводился ли расчет сразу на всех ядрах однопроцессорного компьютера? если да, то как было реализовано smp (с помощью Linda?)?
Всё равно использовалась не вся память, так что обвязку можно считать одинаковой
(расчёт проводился на одном и том же компьютере с заменой процессоров).
Расчёт проводился с использованием разделяемой памяти (shared memory, без Linda).
PS чистота и повторяемость эксперимента — превыше всего -:)
Степпинг G0, но разницы никакой нет, лишь по тепловыделению.
Расчёты повторялись раз по 5 (причем не подряд, проводилась перезагрузка системы).
Хотелось бы уточнить: использует ли Гауссиан при расчёте на Intel Core 2 Quad Q6600 все четыре ядра?
Имеет ли смысл для увеличения производительности перекомпилировать kernel линукс? Вдруг smp поддерживается как-то не так (не оптимально) на представленной/проверенной Вами версии ядра.
Можете ли Вы выполнить ещё несколько тестов-расчетов, но уже "чистыми" (негибридными) методами — например, CCSD, BD, CASSCF?
Возникли подозрения , что распределение памяти для 4-х ядер происходит не так-то уж просто как для 2-ядер (просто поставить
%NProcshared=4 вместо %NProcshared=2 не является достаточным).

Использует. Только не во всех типах расчёта, в некоторые физически ограничены не более двумя. Оптимальным можно считать как раз 4-ядра (или 2 двухядерных процессора).
На сайте Biowulf-а приведены особенности параллелизации разных методов
Трудно сказать. Для этого нужно параметры ядра подобрать, при которых будут быстрее расчёты идти.
То, что будут выкинуты ненужные драйверы освободит некоторое количество памяти ОЗУ, например 50-100 МБ, но, IMHO, это мало как повлияет на расчёт. Больше должны влиять параметры кеширования и буферизации (если расчёт сильно нагружает диск), но считается что по-умолчанию у Linux-а они выставлены оптимальным образом (исключением является RHEL 5, который 100% зависает на тяжёлых расчётах, после того как съедается вся память ОЗУ и swap-а дисковым буфером).
Процессора E6700 у нас в наличии уже нет. Есть разные компьютеры (с обвязкой примерно одного уровня) с процессорами Intel Q6600, AMD Opteron x2, Athlon x2 4200. Возможно удастся провести небольшое тестирование на машине с 2-мя 4-х процессорными Xenon.
%NProcshared=4 вместо %NProcshared=2 не является достаточным).
Тестирование учитывает все эти эффекты, зачем голову забивать? 😉
Для ответа в этой теме необходимо авторизоваться.