Часто Задаваемые Вопросы.

  1. Как в моей программе определить, что время кванта истекло?
    • Воспользуйтесь библиотекой libcp
    • Запустите вашу программу с ключом -termsignal. Например, если Вы запустите программу командой
      mpirun -np 60 -maxtime 4320 -quantum 300 -termsignal 16 very_long_task
      
      по истечению кванта Вашей программе пошлется сигнал с номером 16. Вы можете перехватить этот сигнал и его обработать.
  2. Мне нужно 5 минут, чтобы сбросить промежуточные результаты. Нельзя ли отложить сброс задачи на это время?
      Запустите Вашу программу с ключом -termtime. Например
      mpirun -np 60 -maxtime 4320 -quantum 300 -termsignal 16 -termtime 5 long_task
      
  3. Какие еще ключи есть у команды mpirun?
  4. Как задать значения ключей команды mpirun по умолчанию?
      Отредактируйте файл .crunmvs в Вашей домашней директории.
  5. Как определить через какое время запустится моя программа? Сколько задач в очереди перед моей программой?
      Выдать команду   mqinfo
  6. Какие мои задачи сейчас стоят в очереди? Какие задачи сейчас считаются?
      Эта информация выводится по команде mps.
  7. Как посмотреть вывод результатов моей программы?
      Воспользуйтесь командой
      mout <имя_задачи> out
  8. Какие сообщения об ошибках пишет моя программа?
      воспользуйтесь командой
      mout <имя_задачи> err
  9. Вывод от всех узлов кластера помещается в один и тот же файл. Можно ли сделать так, чтобы вывод от разных узлов в моей программе на языке C писался в разные файлы?
      Воспользуйтесь функцией freopen. Например после вызова функции
      char *filename;
      freopen(filename,"w",stdout);
      
      весь вывод Вашей программы пойдет в файл с именем filename. Если Вы хотите чтобы вывод добавлялся в файл (например, после рестарта) в качестве второго параметра укажите "a".
  10. Моя задача не использует 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...
 
 
 
 
 
 
 
 
  Тел. +7(499)220-79-72; E-mail: inform@kiam.ru