|
Вопросы - ответы › №10...19
Часто Задаваемые Вопросы.
- Как в моей программе определить, что время кванта истекло?
- Мне нужно 5 минут, чтобы сбросить промежуточные результаты. Нельзя ли отложить сброс задачи на это время?
Запустите Вашу программу с ключом -termtime. Например
mpirun -np 60 -maxtime 4320 -quantum 300 -termsignal 16 -termtime 5 long_task
- Какие еще ключи есть у команды mpirun?
- Как задать значения ключей команды mpirun по умолчанию?
Отредактируйте файл .crunmvs в Вашей домашней директории.
- Как определить через какое время запустится моя программа? Сколько задач в очереди перед моей программой?
- Какие мои задачи сейчас стоят в очереди? Какие задачи сейчас считаются?
Эта информация выводится по команде mps.
- Как посмотреть вывод результатов моей программы?
mout <имя_задачи> out
- Какие сообщения об ошибках пишет моя программа?
mout <имя_задачи> err
- Вывод от всех узлов кластера помещается в один и тот же файл. Можно ли сделать так, чтобы вывод от разных узлов в моей программе на языке C писался в разные файлы?
Воспользуйтесь функцией freopen. Например после вызова функции
char *filename;
freopen(filename,"w",stdout);
весь вывод Вашей программы пойдет в файл с именем filename. Если Вы хотите чтобы вывод добавлялся в файл (например, после рестарта) в качестве второго параметра укажите "a".
- Моя задача не использует MPI. Как мне определить номер своего узла и общее число узлов, выделенных моей программе?
Воспользуйтесь функцией getenv
- для openmpi
- getenv("OMPI_COMM_WORLD_RANK")" вернет номер текущего узла
- getenv("OMPI_COMM_WORLD_SIZE")" вернет общее число выделенных узлов
- для impi и skifmpi
- getenv("PMI_RANK") вернет номер текущего узла
- getenv("PMI_SIZE") вернет общее число выделенных узлов
Функция getenv возвращает строку символов. Для преобразования этой строки в число можно воспользоваться функцией atoi.
1...9 10...19 20...29 30...
|
|