Gamess использует процессор не на полную мощность
Gamess использует процессор не на полную мощность
При рассчете в параллельном режиме на двухъядерном компьютере общая загрузка процессора составляет всего 50%, хотя если запускать две независимые задачи, то каждая из них занимает 50% CPU. Подскажите пожалуйста в чем дело.
-
- Сообщения: 426
- Зарегистрирован: Чт май 24, 2007 1:54 pm
Таки ясно, в чём дело: 50% - это ровно полная загрузка одного ядра. Если хочется в одном расчёте задействовать оба, милости просим использовать MPI...
Хотя если разжиться библиотеками MKL и интеловскими компиляторами (а всё это добро с недавних пор предоставляется пользователям linux на халяву), можно попробовать заставить и один процесс работать в режиме multithreaded, Эффективность загрузки процессора при этом будет не 100%, зато одни и те же данные не придётся хранить в памяти в двух экземплярах...
Хотя если разжиться библиотеками MKL и интеловскими компиляторами (а всё это добро с недавних пор предоставляется пользователям linux на халяву), можно попробовать заставить и один процесс работать в режиме multithreaded, Эффективность загрузки процессора при этом будет не 100%, зато одни и те же данные не придётся хранить в памяти в двух экземплярах...
Плохо зная грамматику, сложные конструкции должны употребляться с осторожностью.
Я же написал, что считаю в параллельном режиме. Кстати использую wmpi (находится в одном архиве с exe pcgamess от Грановского). Считаю под windows.Darth Vasya писал(а):Таки ясно, в чём дело: 50% - это ровно полная загрузка одного ядра. Если хочется в одном расчёте задействовать оба, милости просим использовать MPI...
-
- Сообщения: 426
- Зарегистрирован: Чт май 24, 2007 1:54 pm
Тогда не знаю, с гамессом не работаю. Флажки всякие там для параллелизации правильно расставлены? Может, дело в распределении загрузки? Воспроизвести проблему, например, в параллельной SIESTA смогу без труда - с помощью всего одного флажка
Плохо зная грамматику, сложные конструкции должны употребляться с осторожностью.
У меня вроде все распараллеливается (ноут с 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 и проч.)
pcgamess.exe -i C:\...\inp.inp -o C:\...\out.out C:\...\dir1 C:\...\dir2 -np 2
при этом dir1 и dir2 содержат в себе exe-шник и необходимые dll (fastdiag, mpibin и проч.)
А.П.
-
- Сообщения: 378
- Зарегистрирован: Ср мар 23, 2011 5:09 pm
Re: Gamess использует процессор не на полную мощность
Считаю в Firefly по подобной этой командной строке. В аутпуте есть все сообщения, что начат расчёт на двух ядрах. Однако на втором ядре только 1-2% загрузки. Это так и должно быть? Где то в англоязычном форуме по FireFly когда то встречал фразу, что для FF достаточно одного ядра. Задача у меня - оптимизация, молекула - 40 атомовalxyppv писал(а):pcgamess.exe -i C:\...\inp.inp -o C:\...\out.out C:\...\dir1 C:\...\dir2 -np 2
-
- Сообщения: 378
- Зарегистрирован: Ср мар 23, 2011 5:09 pm
Re: Gamess использует процессор не на полную мощность
Работает, но как??!!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.
[...]
Замечу, что для "двуядерного" расчёта я ввёл в инпут все команды, которые нашёл на англоязычном форуме Грановского, почти все из них в мануалах не значатся...
Расчёт пока идёт, если не дождусь рекомендаций и кончится терпение, перейду снова на "одноядерный" расчёт...
Re: Gamess использует процессор не на полную мощность
Это касается только расчётов с PCM? Если нет, то как инсталлировали FF для парал. исполнения? Укажите ключевые слова (секция управляющих параметров).
-
- Сообщения: 378
- Зарегистрирован: Ср мар 23, 2011 5:09 pm
Re: Gamess использует процессор не на полную мощность
Время расчёта уменьшилось - это естественно, за счёт отказа от РСМ, но незначительно при том же раскладе (1-е ядро 50%, 2-е ядро 1-2%):o-oxhem писал(а):Это касается только расчётов с PCM?
[...]
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?
Re: Gamess использует процессор не на полную мощность
Инсталляция была выполнена не правильно. На форуме разобрано подробно.
Укажите ключевые слова (секция управляющих параметров).
Укажите ключевые слова (секция управляющих параметров).
Код: Выделить всё
$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
-
- Сообщения: 378
- Зарегистрирован: Ср мар 23, 2011 5:09 pm
Re: Gamess использует процессор не на полную мощность
Если вы имели в виду переименование и перемещение: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
[..]
Может быть, что-то здесь не нужно, а что-то и вредно для моей задачи?
Re: Gamess использует процессор не на полную мощность
Полагаю, Вы используете несовместимое:
нужно убрать лишнее - mklnp=2 (попытка сочетать разные стратегии параллелизации может быть источником проблемы) . Установить wmpi (должен быть в архиве с FF).
Интересно, кто-нибудь вот это всё разом применяет? Это можно оформить в виде опроса.
Желательно (скорее необходимо в большинстве случаев) размещать директории FF на разных физических дисках.
Попробовать для начала расчёт энергии (без опт., без PCM).
нужно убрать лишнее - mklnp=2 (попытка сочетать разные стратегии параллелизации может быть источником проблемы) . Установить wmpi (должен быть в архиве с FF).
Код: Выделить всё
$p2p p2p=1 xdlb=1 bind=1 blkdlb=0 nbiolb=1 sndbuf=256 rcvbuf=256
$end
Желательно (скорее необходимо в большинстве случаев) размещать директории FF на разных физических дисках.
Попробовать для начала расчёт энергии (без опт., без PCM).
-
- Сообщения: 378
- Зарегистрирован: Ср мар 23, 2011 5:09 pm
Re: Gamess использует процессор не на полную мощность
Убрал mklnp=2 ; проблема не исчезла.o-oxhem писал(а):нужно убрать лишнее - mklnp=2 (попытка сочетать разные стратегии параллелизации может быть источником проблемы)
Нашёл диск для инсталляции FF - там wmpi...exe не оказалось. Однако в папкеo-oxhem писал(а):Установить wmpi (должен быть в архиве с FF).
BINDINGS обнаружил mpibind.wmpi1-3.dll, ...1-6.dll,...ii.dll. Может с ними надо что-то делать? Если нет, то пришлите мне этот злополучный файл wmpi1_3.exe. Может, наконец, эта моя эпопея благополучно завершится?
Буду Вам очень признателен...
-
- Сообщения: 378
- Зарегистрирован: Ср мар 23, 2011 5:09 pm
Re: Gamess использует процессор не на полную мощность
Ну что ж, спасибо, дорогие форумчане, за то, что за полтора месяца никто не ущемил себя, прислав мне, чайнику, маленький файлик (конечно же никто и не был обязан делать это)..АлександрI писал(а):пришлите мне этот злополучный файл wmpi1_3.exe.
Но за это время, понемногу разбираясь сам, я обнаружил, что, возможно, названный файлик мне бы и не пригодился: у того компа, о котором шла речь, как оказалось, не два ядра, а два "потока". Я не понимаю, что это за такое и зачем это надо было делать на нём... Может быть, поэтому у меня и не получалось использование советов... А скорость расчётов увеличивается при таком раскладе? Помогите, пожалуйста, разобраться
Re: Gamess использует процессор не на полную мощность
Я не сисадмин и файлов у меня нет. Потоки - это внутренние программные возможности распараллеливания задачи. Они закладываются при написании кода и компиляции. Если ядро одно, то потоки идут по-очереди, если несколько ядер и есть операционная поддержка распараллеливания, то параллельно.
После отстоя требуйте долива
-
- Сообщения: 378
- Зарегистрирован: Ср мар 23, 2011 5:09 pm
Re: Gamess использует процессор не на полную мощность
Спасибо, я понял. Но, запустив ещё раз программу CPU-Z, я опять увидел в отчёте несколько раз повторяющиеся фразы о двух потоках и одном процессоре:VTur писал(а):Потоки - это внутренние программные возможности распараллеливания задачи.
Код: Выделить всё
Отчет 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
Эти потоки сможет реализовать мой примитивный процессор с одним ядром по требованию кода при компиляции (максимально сможет два) при распараллеливании по Грановскому и процессор загрузится на все 100%, как 2 по 50. Тогда мне опять нужен этоVTur писал(а):Они закладываются при написании кода и компиляции.
Re: Gamess использует процессор не на полную мощность
Код: Выделить всё
Имя Intel Pentium 4 520
Кодовое Prescott
-
- Сообщения: 378
- Зарегистрирован: Ср мар 23, 2011 5:09 pm
Re: Gamess использует процессор не на полную мощность
Благодарю и хочу счастья, но...EvgeniX писал(а):будет вам счастье
...увы, не знаю, как это сделать. Подскажите, пожалуйста, несчастному чайнику от компов, какую кнопку нажимать, куда смотреть и т.д. Сделаю прямо щасEvgeniX писал(а):Выключите Hyper Threading
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 21 гость