Gamess использует процессор не на полную мощность

вопросы строения молекул и квантовой химии
lucky-ph
Сообщения: 36
Зарегистрирован: Пн дек 03, 2007 3:44 pm
Контактная информация:

Gamess использует процессор не на полную мощность

Сообщение lucky-ph » Пн дек 17, 2007 10:10 am

При рассчете в параллельном режиме на двухъядерном компьютере общая загрузка процессора составляет всего 50%, хотя если запускать две независимые задачи, то каждая из них занимает 50% CPU. Подскажите пожалуйста в чем дело.

Darth Vasya
Сообщения: 426
Зарегистрирован: Чт май 24, 2007 1:54 pm

Сообщение Darth Vasya » Пн дек 17, 2007 10:19 am

Таки ясно, в чём дело: 50% - это ровно полная загрузка одного ядра. Если хочется в одном расчёте задействовать оба, милости просим использовать MPI...

Хотя если разжиться библиотеками MKL и интеловскими компиляторами (а всё это добро с недавних пор предоставляется пользователям linux на халяву), можно попробовать заставить и один процесс работать в режиме multithreaded, Эффективность загрузки процессора при этом будет не 100%, зато одни и те же данные не придётся хранить в памяти в двух экземплярах...
Плохо зная грамматику, сложные конструкции должны употребляться с осторожностью.

lucky-ph
Сообщения: 36
Зарегистрирован: Пн дек 03, 2007 3:44 pm
Контактная информация:

Сообщение lucky-ph » Пн дек 17, 2007 1:19 pm

Darth Vasya писал(а):Таки ясно, в чём дело: 50% - это ровно полная загрузка одного ядра. Если хочется в одном расчёте задействовать оба, милости просим использовать MPI...
Я же написал, что считаю в параллельном режиме. Кстати использую wmpi (находится в одном архиве с exe pcgamess от Грановского). Считаю под windows.

Darth Vasya
Сообщения: 426
Зарегистрирован: Чт май 24, 2007 1:54 pm

Сообщение Darth Vasya » Пн дек 17, 2007 5:16 pm

Тогда не знаю, с гамессом не работаю. Флажки всякие там для параллелизации правильно расставлены? Может, дело в распределении загрузки? Воспроизвести проблему, например, в параллельной SIESTA смогу без труда - с помощью всего одного флажка :)
Плохо зная грамматику, сложные конструкции должны употребляться с осторожностью.

alxyppv
Сообщения: 560
Зарегистрирован: Сб апр 07, 2007 11:23 am

Сообщение alxyppv » Пн дек 17, 2007 9:07 pm

У меня вроде все распараллеливается (ноут с Core2Duo), причем wmpi не пользуюсь... в рабочих директориях лежит mpich_smp.dll, а также надо MPIBIND.NT-MPICH-SMP.DLL скопировать в mpibind.dll. Запуск строкой:

pcgamess.exe -i C:\...\inp.inp -o C:\...\out.out C:\...\dir1 C:\...\dir2 -np 2

при этом dir1 и dir2 содержат в себе exe-шник и необходимые dll (fastdiag, mpibin и проч.)
А.П.

lucky-ph
Сообщения: 36
Зарегистрирован: Пн дек 03, 2007 3:44 pm
Контактная информация:

Сообщение lucky-ph » Пн дек 24, 2007 3:56 pm

спасибо за команду запуска
все работает!

lucky-ph
Сообщения: 36
Зарегистрирован: Пн дек 03, 2007 3:44 pm
Контактная информация:

Сообщение lucky-ph » Вт дек 25, 2007 10:09 am

alxyppv писал(а): при этом dir1 и dir2 содержат в себе exe-шник и необходимые dll (fastdiag, mpibin и проч.)
exe-шник должен находиться в dir1 а в dir2 его может и не быть

АлександрI
Сообщения: 378
Зарегистрирован: Ср мар 23, 2011 5:09 pm

Re: Gamess использует процессор не на полную мощность

Сообщение АлександрI » Ср май 11, 2011 7:13 pm

alxyppv писал(а):pcgamess.exe -i C:\...\inp.inp -o C:\...\out.out C:\...\dir1 C:\...\dir2 -np 2
Считаю в Firefly по подобной этой командной строке. В аутпуте есть все сообщения, что начат расчёт на двух ядрах. Однако на втором ядре только 1-2% загрузки. Это так и должно быть? Где то в англоязычном форуме по FireFly когда то встречал фразу, что для FF достаточно одного ядра. Задача у меня - оптимизация, молекула - 40 атомов

АлександрI
Сообщения: 378
Зарегистрирован: Ср мар 23, 2011 5:09 pm

Re: Gamess использует процессор не на полную мощность

Сообщение АлександрI » Чт май 12, 2011 10:35 pm

lucky-ph писал(а):спасибо за команду запуска

все работает!
Работает, но как??!!
Расчёт гессиана я запустил, увидел при этом весьма незначительную загрузку второго ядра, написал об этом на Форум (смотри выше), но никто не откликнулся, может оттого, что этот вопрос обсуждался на Форуме ещё в 2007 году?
Через некоторое время я заглянул в аутпут и обнаружил чрезвычайно неприятную вещь: время "двуядерного" расчёта увеличилось в десять раз на один шаг:

Фрагмент аутпута с компа с одним ядром:
[...]
38 H38 -7.074473 -1.657982 3.689436
39 H39 7.875301 -8.640782 -0.081139
...... END OF ONE-ELECTRON INTEGRALS ......

CPU TIME: STEP = 2.53 , TOTAL = 29.0 SECONDS ( 0.5 MIN)
WALL CLOCK TIME: STEP = 2.88 , TOTAL = 31.5 SECONDS ( 0.5 MIN)
CPU UTILIZATION: STEP = 88.00%, TOTAL = 92.15%
...... END OF TWO-ELECTRON INTEGRALS .....

CPU TIME: STEP = 7.64 , TOTAL = 36.7 SECONDS ( 0.6 MIN)
WALL CLOCK TIME: STEP = 8.62 , TOTAL = 40.1 SECONDS ( 0.7 MIN)
CPU UTILIZATION: STEP = 88.61%, TOTAL = 91.39%

PCMAnalyze: performing pass # 1

Tessera # 113 has been deleted to improve numerical stability.
Tessera # 327 has been deleted to improve numerical stability.

[...]
Аналогичный кусок с другого компа с двумя ядрами:
[...]
38 H38 -7.074473 -1.657982 3.689436
39 H39 7.875301 -8.640782 -0.081139
...... END OF ONE-ELECTRON INTEGRALS ......

TIMING STATISTICS ON NODE 0:
CPU TIME: STEP = 54.95 , TOTAL = 178.5 SECONDS ( 3.0 MIN)
WALL CLOCK TIME: STEP = 110.61 , TOTAL = 336.4 SECONDS ( 5.6 MIN)
CPU UTILIZATION: STEP = 49.68%, TOTAL = 53.06%
...... END OF TWO-ELECTRON INTEGRALS .....

TIMING STATISTICS ON NODE 0:
CPU TIME: STEP = 42.22 , TOTAL = 220.7 SECONDS ( 3.7 MIN)
WALL CLOCK TIME: STEP = 85.17 , TOTAL = 421.6 SECONDS ( 7.0 MIN)
CPU UTILIZATION: STEP = 49.57%, TOTAL = 52.36%

PCMAnalyze: performing pass # 1

Tessera # 113 has been deleted to improve numerical stability.
Tessera # 327 has been deleted to improve numerical stability.

[...]
Замечу, что для "двуядерного" расчёта я ввёл в инпут все команды, которые нашёл на англоязычном форуме Грановского, почти все из них в мануалах не значатся...
Расчёт пока идёт, если не дождусь рекомендаций и кончится терпение, перейду снова на "одноядерный" расчёт...

o-oxhem
Сообщения: 425
Зарегистрирован: Вт июл 08, 2008 10:33 pm

Re: Gamess использует процессор не на полную мощность

Сообщение o-oxhem » Чт май 12, 2011 10:46 pm

Это касается только расчётов с PCM? Если нет, то как инсталлировали FF для парал. исполнения? Укажите ключевые слова (секция управляющих параметров).

АлександрI
Сообщения: 378
Зарегистрирован: Ср мар 23, 2011 5:09 pm

Re: Gamess использует процессор не на полную мощность

Сообщение АлександрI » Пт май 13, 2011 7:18 pm

o-oxhem писал(а):Это касается только расчётов с PCM?
Время расчёта уменьшилось - это естественно, за счёт отказа от РСМ, но незначительно при том же раскладе (1-е ядро 50%, 2-е ядро 1-2%):
[...]
38 H38 -7.074473 -1.657982 3.689436
39 H39 7.875301 -8.640782 -0.081139
...... END OF ONE-ELECTRON INTEGRALS ......

TIMING STATISTICS ON NODE 0:
CPU TIME: STEP = 56.02 , TOTAL = 166.0 SECONDS ( 2.8 MIN)
WALL CLOCK TIME: STEP = 113.71 , TOTAL = 330.0 SECONDS ( 5.5 MIN)
CPU UTILIZATION: STEP = 49.26%, TOTAL = 50.28%
...... END OF TWO-ELECTRON INTEGRALS .....

TIMING STATISTICS ON NODE 0:
CPU TIME: STEP = 44.66 , TOTAL = 210.6 SECONDS ( 3.5 MIN)
WALL CLOCK TIME: STEP = 90.42 , TOTAL = 420.5 SECONDS ( 7.0 MIN)
CPU UTILIZATION: STEP = 49.39%, TOTAL = 50.09%
[...]
o-oxhem писал(а):как инсталлировали FF для парал. исполнения? Укажите ключевые слова (секция управляющих параметров).
Что-то такое я делал больше года назад, уже забыл. Помню, Грановский прислал файл, потом пароль, после чего у меня получилась папка, с которой я уже манипулировал, как хотел... Это оно или нет? Что касается "ключевых слов" и "управляющих параметров", то, пожалуйста, переведите на язык начинающих чайников...
Я так понял, что можно перестать мучить копм "двуядерной" задачей и вернуться к status qwo? :issue:

o-oxhem
Сообщения: 425
Зарегистрирован: Вт июл 08, 2008 10:33 pm

Re: Gamess использует процессор не на полную мощность

Сообщение o-oxhem » Пт май 13, 2011 7:36 pm

Инсталляция была выполнена не правильно. На форуме разобрано подробно.

Укажите ключевые слова (секция управляющих параметров).

Код: Выделить всё

 $CONTRL SCFTYP=RHF RUNTYP=OPTIMIZE UNITS=ANGS
 COORD=CART ICHARG=0 MULT=1 d5=.t. DFTTYP=PBE0 maxit=199 $END
 $p2p p2p=.t. dlb=.t. $end  
 $zmat dlc=.t. auto=.t. NZVAR=63 $end 
!$STATPT HSSEND=.T. HESS=CALC METHOD=GDIIS NSTEP=100 $END
!$FORCE VIBANL=.T. DECOMP=.T. $END
 $BASIS GBASIS=TZV NDFUNC=1 NPFUNC=1 $END

АлександрI
Сообщения: 378
Зарегистрирован: Ср мар 23, 2011 5:09 pm

Re: Gamess использует процессор не на полную мощность

Сообщение АлександрI » Пт май 13, 2011 8:41 pm

o-oxhem писал(а):Инсталляция была выполнена не правильно. На форуме разобрано подробно.
Если вы имели в виду переименование и перемещение:
alxyppv писал(а): в рабочих директориях лежит mpich_smp.dll, а также надо MPIBIND.NT-MPICH-SMP.DLL скопировать в mpibind.dll.
так в этом плане я делал всё, что нужно, а описал выше, как "манипулирование"...
Расчёт всё таки идёт на двух ядрах, о чём свидетельствует сообщения в аутпуте:
[...]
PARALLEL VERSION (UNIFIED) RUNNING WITH 2 NODES
[...]
Loading P2P interface library... loaded successfully (version 1.9).
Initializing P2P interface... topology done.

[...]
Что ещё не так?
o-oxhem писал(а):Укажите ключевые слова (секция управляющих параметров).
Я так понял, что Вы имели в виду, чтобы привести инпут? Этот вопрос очень кстати, так как в инпут я вставил по двуядерному расчёту всё, что нашёл на англоязычном форуме Грановского, и ещё кое-что, тоже из его рекомендаций, которые сопровождаются припиской "попробуйте это"... Вот мой инпут (я не стал загромождать письмо стандартными "ключевыми словами":
$contrl [..] nzvar=1 $end
$dft [..] $end
$scf [..] $end
$guess guess=moread purify=1 kdiag=0 $end
$pcm solvnt=H2O $end
$statpt purify=1 $end
$system [..] mklnp=2 kdiag=0 nojac=1 decomm=0 wsctl=0 $end
$cphf cphf=ao $end
$basis extfil=1 $end
$p2p p2p=1 xdlb=1 bind=1 blkdlb=0 nbiolb=1 sndbuf=256 rcvbuf=256
$end
$zmat dlc=1 auto=1 $end
$eldens ieden=1 spind=0 diffd=1 skiphf=1 $end
$cube cube=1 mesh=fine $end
$force purify=1 nvib=2 $end
$intgrl qfmm=1 $end
$data
1-cation-3
C1

[..]
Может быть, что-то здесь не нужно, а что-то и вредно для моей задачи?

o-oxhem
Сообщения: 425
Зарегистрирован: Вт июл 08, 2008 10:33 pm

Re: Gamess использует процессор не на полную мощность

Сообщение o-oxhem » Пт май 13, 2011 9:45 pm

Полагаю, Вы используете несовместимое:
нужно убрать лишнее - mklnp=2 (попытка сочетать разные стратегии параллелизации может быть источником проблемы) . Установить wmpi (должен быть в архиве с FF).

Код: Выделить всё

$p2p p2p=1 xdlb=1 bind=1 blkdlb=0 nbiolb=1 sndbuf=256 rcvbuf=256
$end
Интересно, кто-нибудь вот это всё разом применяет? Это можно оформить в виде опроса. :)

Желательно (скорее необходимо в большинстве случаев) размещать директории FF на разных физических дисках.
Попробовать для начала расчёт энергии (без опт., без PCM).

АлександрI
Сообщения: 378
Зарегистрирован: Ср мар 23, 2011 5:09 pm

Re: Gamess использует процессор не на полную мощность

Сообщение АлександрI » Сб май 14, 2011 1:19 am

o-oxhem писал(а):нужно убрать лишнее - mklnp=2 (попытка сочетать разные стратегии параллелизации может быть источником проблемы)
Убрал mklnp=2 ; проблема не исчезла.
o-oxhem писал(а):Установить wmpi (должен быть в архиве с FF).
Нашёл диск для инсталляции FF - там wmpi...exe не оказалось. Однако в папке
BINDINGS обнаружил mpibind.wmpi1-3.dll, ...1-6.dll,...ii.dll. Может с ними надо что-то делать? Если нет, то пришлите мне этот злополучный файл wmpi1_3.exe. Может, наконец, эта моя эпопея благополучно завершится?
Буду Вам очень признателен...

АлександрI
Сообщения: 378
Зарегистрирован: Ср мар 23, 2011 5:09 pm

Re: Gamess использует процессор не на полную мощность

Сообщение АлександрI » Сб июн 25, 2011 7:10 pm

АлександрI писал(а):пришлите мне этот злополучный файл wmpi1_3.exe.
Ну что ж, спасибо, дорогие форумчане, за то, что за полтора месяца никто не ущемил себя, прислав мне, чайнику, маленький файлик (конечно же никто и не был обязан делать это)..
Но за это время, понемногу разбираясь сам, я обнаружил, что, возможно, названный файлик мне бы и не пригодился: у того компа, о котором шла речь, как оказалось, не два ядра, а два "потока". Я не понимаю, что это за такое и зачем это надо было делать на нём... Может быть, поэтому у меня и не получалось использование советов... А скорость расчётов увеличивается при таком раскладе? Помогите, пожалуйста, разобраться :issue:

VTur
Сообщения: 7357
Зарегистрирован: Пт авг 31, 2007 1:36 pm

Re: Gamess использует процессор не на полную мощность

Сообщение VTur » Ср июн 29, 2011 7:33 pm

Я не сисадмин и файлов у меня нет. Потоки - это внутренние программные возможности распараллеливания задачи. Они закладываются при написании кода и компиляции. Если ядро одно, то потоки идут по-очереди, если несколько ядер и есть операционная поддержка распараллеливания, то параллельно.
После отстоя требуйте долива

АлександрI
Сообщения: 378
Зарегистрирован: Ср мар 23, 2011 5:09 pm

Re: Gamess использует процессор не на полную мощность

Сообщение АлександрI » Ср июн 29, 2011 11:41 pm

VTur писал(а):Потоки - это внутренние программные возможности распараллеливания задачи.
Спасибо, я понял. Но, запустив ещё раз программу CPU-Z, я опять увидел в отчёте несколько раз повторяющиеся фразы о двух потоках и одном процессоре:

Код: Выделить всё

Отчет CPU-Z TXT
-------------------------------------------------------------------------

Binaries
-------------------------------------------------------------------------

Версия CPU-Z			1.53.1

Процессоры
-------------------------------------------------------------------------

Число процессоров		1
Число потоков		2

APICs
-------------------------------------------------------------------------

Процессор 0	
	-- Ядро 0	
		-- Thread 0	0
		-- Thread 1	1

Сведения о процессоре
-------------------------------------------------------------------------

Процессор 1			ID = 0
	Число ядер		1 (max 1)
	Число потоков	2 (max 2)
	Имя			Intel Pentium 4 520
	Кодовое 		Prescott
Но, может быть это как раз то, что Вы говорите:
VTur писал(а):Они закладываются при написании кода и компиляции.
Эти потоки сможет реализовать мой примитивный процессор с одним ядром по требованию кода при компиляции (максимально сможет два) при распараллеливании по Грановскому и процессор загрузится на все 100%, как 2 по 50. Тогда мне опять нужен это чёртов файлик: ну пожалуйста, у кого он есть? :roll:

Аватара пользователя
EvgeniX
Сообщения: 2780
Зарегистрирован: Пт апр 27, 2007 5:32 am

Re: Gamess использует процессор не на полную мощность

Сообщение EvgeniX » Чт июн 30, 2011 12:09 am

Код: Выделить всё

   Имя         Intel Pentium 4 520
   Кодовое       Prescott
Всё понятно. Выключите Hyper Threading (чтобы не вводила в заблуждение виндус), считайте на одном ядре и будет вам счастье (100% загрузки процессора). А пока костыль (HT) на костыле (попытка на 1-ядерном процессоре распараллеливать).

АлександрI
Сообщения: 378
Зарегистрирован: Ср мар 23, 2011 5:09 pm

Re: Gamess использует процессор не на полную мощность

Сообщение АлександрI » Чт июн 30, 2011 12:53 am

EvgeniX писал(а):будет вам счастье
Благодарю и хочу счастья, но...
EvgeniX писал(а):Выключите Hyper Threading
...увы, не знаю, как это сделать. Подскажите, пожалуйста, несчастному чайнику от компов, какую кнопку нажимать, куда смотреть и т.д. Сделаю прямо щас :!:

Ответить

Вернуться в «квантовая химия и моделирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 21 гость