проверка mpi программ в ejudge
-
- Posts:14
- Joined:06 January 2017, 08:49
Добрый день!
Хочу сделать контест для проверки MPI программ. Поставил mpich. Написал скрипты mpicc-version.in и mpicc.in (за образец взял скрипты для gcc). Переконфигурировал систему, новый компилятор (mpicc) появился в списке для отправки решения в контесте.
При запуске программ на проверку надо указывать число запускаемых процессов, например так: mpiexec -n 4 ./programma (запуститься локально на 4 процессах).
Вопрос: как указать в контесте, чтобы проверка решения делалась с приставкой mpiexec -n 4 ?
(Ejudge - последняя версия, ubuntu server 16.04 x64).
Хочу сделать контест для проверки MPI программ. Поставил mpich. Написал скрипты mpicc-version.in и mpicc.in (за образец взял скрипты для gcc). Переконфигурировал систему, новый компилятор (mpicc) появился в списке для отправки решения в контесте.
При запуске программ на проверку надо указывать число запускаемых процессов, например так: mpiexec -n 4 ./programma (запуститься локально на 4 процессах).
Вопрос: как указать в контесте, чтобы проверка решения делалась с приставкой mpiexec -n 4 ?
(Ejudge - последняя версия, ubuntu server 16.04 x64).
-
- Posts:14
- Joined:06 January 2017, 08:49
Re: проверка mpi программ в ejudge
Благодарю! Правильно ли я понимаю, что для использования своего скрипта для запуска я пишу свою секцию [tester] в serve.conf, там для параметра start_cmd указываю свой скрипт (myscript.bash например)?
Что имеется ввиду под этой строкой в инструкции по Вашей ссылке: "Кроме того до запуска вспомогательной программы настраиваются все перенаправления ввода-вывода...", в каком случае это делать? Посмотрел в файле javarun, там вроде никаких перенаправлений нет.
Что имеется ввиду под этой строкой в инструкции по Вашей ссылке: "Кроме того до запуска вспомогательной программы настраиваются все перенаправления ввода-вывода...", в каком случае это делать? Посмотрел в файле javarun, там вроде никаких перенаправлений нет.
Re: проверка mpi программ в ejudge
Эта опция должна быть в разделе [problem]
скрипт runmpi.sh может иметь такой вид:
Code: Select all
start_cmd = "runmpi.sh"
Code: Select all
#! /bin/sh
exec mpiexec -n 4 $@
-
- Posts:14
- Joined:06 January 2017, 08:49
Re: проверка mpi программ в ejudge
Спасибо! Это помогло! Программа запускается, но при прогоне теста на первой же задаче стандартного контеста ejudge (сложение 2 чисел) выдает Run-time error на 1 тесте, в отчете пишет:
...
YOUR APPLICATION TERMINATED WITH THE EXIT STRING: File size limit exceeded (signal 25)
This typically refers to a problem with your application.
Please see the FAQ page for debugging suggestions
--- Stderr: size 0 ---
--- Resource usage ---
program: { utime=8, stime=0, ptime=8, rtime=147, maxvsz=7663616, maxrss=3473408, nvcsw=69, nivcsw=11 }
Программу запускаю на 4 процессах, числа принимаю, складываю и выдаю в 0 процессе, остальные по факту отрабатывают вхолостую, использую стандартные функции scanf, printf.
увеличивал параметры:
Maximum virtual memory size:
Maximum stack size:
до 512M и 64M соответвстенно, не помогает, в чем может быть причина?
...
YOUR APPLICATION TERMINATED WITH THE EXIT STRING: File size limit exceeded (signal 25)
This typically refers to a problem with your application.
Please see the FAQ page for debugging suggestions
--- Stderr: size 0 ---
--- Resource usage ---
program: { utime=8, stime=0, ptime=8, rtime=147, maxvsz=7663616, maxrss=3473408, nvcsw=69, nivcsw=11 }
Программу запускаю на 4 процессах, числа принимаю, складываю и выдаю в 0 процессе, остальные по факту отрабатывают вхолостую, использую стандартные функции scanf, printf.
увеличивал параметры:
Maximum virtual memory size:
Maximum stack size:
до 512M и 64M соответвстенно, не помогает, в чем может быть причина?
Re: проверка mpi программ в ejudge
max_file_size?
Судя по диагностике.
Судя по диагностике.
-
- Posts:14
- Joined:06 January 2017, 08:49
Re: проверка mpi программ в ejudge
Большое спасибо! Мне помогло!
-
- Posts:14
- Joined:06 January 2017, 08:49
Re: проверка mpi программ в ejudge
Еще такой вопрос возник, если указывать в serve.cfg у параметров задачи свой скрипт в start_cmd, то он используется всегда, не зависимо от того на каком языке сдается задача, мне же нужно, чтобы мой скрипт запускался, только при сдаче через определенный компилятор (mpicc), можно ли в рамках настроек ejudge это сделать? (например добавив новую секцию [tester] со своими настройками в serve.cfg) ?
Re: проверка mpi программ в ejudge
Не лучше ли отдельную задачу сделать для MPI?
И разрешить использование только одного компилятора c помощью enable_language?
И разрешить использование только одного компилятора c помощью enable_language?
-
- Posts:14
- Joined:06 January 2017, 08:49
Re: проверка mpi программ в ejudge
да, можно, отдельный контест сделать для задач на MPI, просто удобнее, когда 1 общий контест с набором задач, и каждую задачу студент сначала решает и сдает на одном языке, потом ту же задачу сдает на другом.
я так понимаю, что поддержка разных вариантов секции [tester], реализована в коде самого ejudge?
я так понимаю, что поддержка разных вариантов секции [tester], реализована в коде самого ejudge?
Re: проверка mpi программ в ejudge
[tester] лучше не трогать. Она, в общем, не нужна и почти игнорируется.
Все-таки, разве не удобнее сделать две задачи в рамках одного контеста?
Все-таки, разве не удобнее сделать две задачи в рамках одного контеста?
-
- Posts:14
- Joined:06 January 2017, 08:49
Re: проверка mpi программ в ejudge
Лучше я сделаю полностью отдельные контесты, чтобы не было путаницы, на каком языке можно, на каком нельзя писать решение задачи.