[mephi-hpc] Установка программ

anikeev anikeev at ut.mephi.ru
Wed Feb 6 17:03:35 MSK 2019


On Wed, 2019-02-06 at 15:39 +0300, Мария Шутикова wrote:
> Здравствуйте!
> Спасибо большое за ответ!

В файле /mnt/pool/4/mishutikova/W444job.sh.o137735 имеется информация
об ошибке:

mix: Pulay -- inversion failed, > SVD

Это вывод Вашего приложения, это не системная ошибка. Информацию по ней
имеет смысл искать в руководстве пользователя для Вашей программы или у
её разработчиков. Google находит соответствующие темы в официальном
багтреккере для Вашего приложения:

https://answers.launchpad.net/siesta/+question/660804

> Файлы .o и .e для STDOUT и STDERR, cгенерированные менеджером
> ресурсов Torque, для запусков тестовой
> задачи pool/4/mishutikova/W_444/W444.fdf с nodes=1:ppn=32
> и OMP_NUM_THREADS=4 и OMP_NUM_THREADS=32, остались в
> pool/4/mishutikova
> Сейчас запустила задачу с OMP_NUM_THREADS=1.
> 
> Среда, 6 февраля 2019, 12:58 +03:00 от anikeev <anikeev at ut.mephi.ru>:
> 
> On Wed, 2019-02-06 at 11:35 +0300, Мария Шутикова wrote:
> > Здравствуйте!
> Добрый день!
> 
> > Подскажите, пожалуйста!
> > Я запускаю задачу с помощью скрипта, аналогичного тому, который Вы
> > мне подсказали, а именно:
>> > #!/bin/sh
>> > #PBS -l nodes=1:ppn=32,walltime=4320:00:00
>> > #print the time and date
> > date
>> > #run simulation
> > cd /mnt/pool/4/mishutikova/W_444
> > OMP_NUM_THREADS=8 /mnt/pool/4/mishutikova/siesta-4.1-b4/Obj/siesta
> <
> > W444.fdf | tee W444.out
>> > #print the time and date again
> > date
>> > Основная проблема в том, что задача считается где-то час, а потом
> > замирает, и все. В выходном файле от нее больше ничего не
> появляется,
> > при этом в файле ошибок ничего нет. А когда заходишь посмотреть
> > статус задачи, выясняется, что задачи уже нет, хотя время еще не
> > прошло. Со значениями  nodes=1:ppn=1 и OMP_NUM_THREADS=1 такого
> вроде
> > бы пока не происходит...
> 
> Для начала нужно посмотреть выходные файлы задачи. Имеются ввиду
> файлы
> .o и .e для STDOUT и STDERR, генерируемые менеджером ресурсов Torque,
> а
> не .out, генерируемый Вашей программой. У Вас остались эти файлы? Где
> можно их посмотреть (какая директория на кластере)? Прикладывать к
> письму их не надо - они могут быть большими.
> 
> Параметр OMP_NUM_THREADS не имеет смысла указывать больше параметра
> ppn. Параметр ppn указывает, сколько потоков Вашей задаче будет
> выделено на узле. OMP_NUM_THREADS указывает, сколько из этих потоков
> Вы
> будете на самом деле использовать. Для OpenMP-задач параметр nodes
> всегда 1. Если Вы стараетесь подобрать максимальное допустимое число
> потоков не вызывающее переполнение памяти, всегда используйте ppn=32,
> чтобы получать полный вычислительный узел. Подбирайте параметр
> OMP_NUM_THREADS.
> 
> > Читаю литературу об OpenMP и пробую разобраться. Но самостоятельно
> > понять что происходит и в какую сторону двигаться, чтобы подобрать
> > оптимальные ресурсы для вычислений что-то пока не вышло... В самом
> > входном файле к SIESTA ошибок нет. Я, конечно, буду разбираться
> > дальше, но, может быть, Вы подскажете что-то, ведь у Вас больше
> > опыта? В выходном файле выдает такие строчки:
> 
> Вот здесь хорошие лекции по OpenMP:
> 
> https://computing.llnl.gov/tutorials/openMP/
> 
> Если речь идет об OpenMP, то строится диаграмма прироста
> производительности от количества потоков. Нужно подготовить тестовую
> задачу, запустить её с использованием (OMP_NUM_THREADS) 1, 2, 4, 8,
> 16,
> 32 ядер и записать время исполнения задачи. Если программе перестаёт
> хватать оперативной памяти (ошибка OOM kill в .e файле), то,
> очевидно,
> больше ядер на одном узле использовать нельзя. Для успешных запусков
> строиться график времени исполнения от числа ядер. Падение времени
> будет медленнее линейной зависимости, то есть параллельные задачи
> потребляют больше процессорочасов, но считаются быстрее. Далее,
> принимается административное решение об оптимальном количестве
> потоков
> исходя из уравновешивания потерь процессорочасов на синхронизации
> параллельных задач и потерь человекочасов на ожидание окончания
> расчета. 
> 
> Ваша программа не использует MPI, но на всякий случай:
> 
> Для MPI метод аналогичен, кроме того, что там есть два параметра
> оптимизации - количество использованных узлов и количество
> использованных потоков (MPI) на узле. Для уменьшения количества
> тестовых запусков можно шагать через степень: 1, 4, 16.
> 
> Для Hybrid-MPI (MPI+OpenMP) практически всегда правильным решением
> будет использование одного MPI потока на узел, так что эта задача
> тоже
> двухпараметрическая: количество узлов и количество OpenMP потоков на
> узел.
> 
> Иерархия Hybrid-MPI:
> 
> task -> MPI node0 -> MPI node0 thread0 -> OpenMP thread 0.0.0
>                                        -> OpenMP thread 0.0.1
>                   -> MPI node0 thread1 -> OpenMP thread 0.1.0
>                                        -> OpenMP thread 0.1.1
>      -> MPI node1 -> MPI node1 thread0 -> OpenMP thread 1.0.0
>                                        -> OpenMP thread 1.0.1
>                   -> MPI node1 thread1 -> OpenMP thread 1.1.0
>                                        -> OpenMP thread 1.1.1
> 
> P.S. Пишите, пожалуйста, на официальные почтовые ящики. Для приватной
> переписки (письма видят только администраторы) можно писать на hpc-
> priv
> ate at ut.mephi.ru. Для публичной переписки можно писать на hpc at lists.ut
> .m
> ephi.ru. Письма, отправленные на личную почту могут теряться.
> 
> > Siesta Version : v4.1-b4
> > Architecture : unknown
> > Compiler version: GNU Fortran (Debian 4.9.2-10+deb8u1) 4.9.2
> > Compiler flags : gfortran -O2 -fPIC -ftree-vectorize -fopenmp
> > PP flags : -DFC_HAVE_ABORT -DSIESTA__DIAG_2STAGE -DSIESTA__MRRR
> > Libraries : libsiestaLAPACK.a libsiestaBLAS.a -fopenmp
> > -L/opt/openblas/lib -lopenblas -LL/opt/openblas/lib -lopenblas
> > SERIAL version
> > * Running in serial mode
> > * Running 8 OpenMP threads.
> > * Running 8 processes.
> > * OpenMP version 201307
> > * OpenMP NOT bound (please bind threads!)
> > * OpenMP runtime schedule DYNAMIC, chunks 1
> > ** OpenMP runtime schedule DYNAMIC, chunks 16
>>> > Четверг, 15 ноября 2018, 20:15 +03:00 от anikeev <anikeev at ut.mephi.
> ru
> > >:
>> > On Thu, 2018-11-15 at 14:29 +0300, anikeev wrote:
> > > On Tue, 2018-11-13 at 11:28 +0300, anikeev wrote:
> > > > On Mon, 2018-11-12 at 18:20 +0300, Мария Шутикова wrote:
> > > > > Здравствуйте!
> > > > 
> > > > Добрый день!
> > > 
> > > Здравствуйте!
> > > 
> > > > > Для моей научно-исследовательской деятельности стала
> необходима
> > > > > программа квантово-механических расчетов
> > > > > SIESTA. https://launchpad.net/siesta 
> > > > > Не могли бы Вы установить ее, если это возможно?
> > > > 
> > > > Данная программа отсутствует в репозиториях Debian и Gentoo. Её
> > > > нужно
> > > > собирать из исходного кода. Попробуйте пока собрать её
> > > > самостоятельно.
> > > > Я постараюсь посмотреть её при возможности.
> > > 
> > > Я подготовил версию Siesta. Для экономии оперативной памяти, она
> > > собрана с поддержкой OpenMP и без поддержки MPI (для
> использования
> > > любого числа ядер одной вычислительной ноды).
> > > 
> > > Программа расположена в директории:
> > > 
> > > /mnt/pool/4/anikeev/siesta-4.1-b4/
> > > 
> > > Тестовая задача расположена в директории:
> > > 
> > > /mnt/pool/4/anikeev/h2o
> > > 
> > > Для использования Вам нужно скопировать программу в свою
> директорию
> > и
> > > исправить пути в скрипте запуска.
> > > 
> > > Обратите внимание, что для использования OpenMP не нужно
> > пользоваться
> > > командой mpirun, но нужно задавать переменную окружения
> > > OMP_NUM_THREADS. Пример стартового скрипта:
> > > 
> > > anikeev at master.cherenkov /mnt/pool/4/anikeev/h2o $ cat start.sh 
> > > #!/bin/sh
> > > 
> > > #PBS -N ExampleJob
> > > #PBS -l nodes=1:ppn=32,walltime=4320:00:00
> > > 
> > > #print the time and date
> > > date
> > > 
> > > #run simulation
> > > cd /mnt/pool/4/anikeev/h2o
> > > OMP_NUM_THREADS=32 /mnt/pool/4/anikeev/siesta-4.1-b4/Obj/siesta <
> > > h2o.fdf > h2o.out
> > > 
> > > #print the time and date again
> > > date
> > P.S. Если Вам всё равно не будет хватать оперативной памяти,
> > попробуйте
> > запрашивать в скрипте PBS весь узел целиком, но запускать программу
> > не
> > на всех вычислительных ядрах. Например, так:
>> > #!/bin/sh
>> > #PBS -l nodes=1:ppn=32,walltime=4320:00:00
>> > #print the time and date
> > date
>> > #run simulation
> > cd /mnt/pool/4/anikeev/h2o
> > OMP_NUM_THREADS=8 /mnt/pool/4/anikeev/siesta-4.1-b4/Obj/siesta <
> > h2o.fdf | tee h2o.out
>> > #print the time and date again
> > date
>> > Допустимое количество ядер на ноде предстоит определить
> > экспериментальным путём.
>> > > > > _______________________________________________
> > > > > hpc mailing list
> > > > > hpc at lists.mephi.ru
> > > > > https://lists.mephi.ru/listinfo/hpc
> > -- 
> > С уважением,
> > инженер отдела Unix-технологий МИФИ,
> > Аникеев Артём.
> > Тел.: 8
> > (495) 788-56-99, доб. 8998
>>> -- 
> С уважением,
> инженер отдела Unix-технологий МИФИ,
> Аникеев Артём.
> Тел.: 8
> (495) 788-56-99, доб. 8998
> 
> 
> _______________________________________________
> hpc mailing list
> hpc at lists.mephi.ru
> https://lists.mephi.ru/listinfo/hpc
-- 
С уважением,
инженер отдела Unix-технологий МИФИ,
Аникеев Артём.
Тел.: 8
(495) 788-56-99, доб. 8998


More information about the hpc mailing list