Вторая версия (1158279), страница 10
Текст из файла (страница 10)
(<process number>)<context> File: <file>, Line: <line> (<count> times)<error message>
где:
<process number> | | номер процессора, на котором произошла ошибка. | ||
<context> | | контекст, в котором произошла ошибка. | ||
sequential branch | | ошибка произошла в последовательной части программы; | ||
Loop( No(N1), Iter(I1,I2,…)), …, Loop( No(Nm), Iter(I1,I2,…)) | | ошибка произошла в ходе выполнения цикла m-степени вложенности. | ||
<file> | | имя файла, где произошла ошибка. | ||
<line> | | номер строки. | ||
<count> | | число повторений данной ошибки в данном контексте. Выводится при суммарной выдаче всех найденных ошибок. | ||
<error message> | | Сообщение о произошедшей ошибке. |
1. Динамический контроль
Сообщение | Описание |
Writing to read-only variable<var> | Обнаружена запись в переменную, которая доступна только для чтения. |
Using non-initialized private variable <var> | Обнаружено обращение к неинициализированной переменной. |
Using non-initialized element <elem> | Обнаружено обращение к неинициализированному элементу распределенного массива. |
Using variable <var> before asynchronous reduction competed | Обращение к редукционной переменной до завершения операции редукции. |
Access to non-local element <elem> | Обращение к нелокальному элементу массива. |
Writing to shadow element <elem> of array | Запись в теневой элемент массива. |
Shadow element <elem> was not updated | Обращение к теневым элементам до завершения операции пересылки границ. |
Data dependence in loop due to access to element <elem> | Обнаружена зависимость параллельного цикла по данным. |
Using shadow element <elem> before asynchronous shadow renew competed | Использование теневого элемента <elem> распределенного массива во время выполнения операции обновления теневых граней. |
Writing to remote data buffer <var> | Запись в буфер удаленного доступа <var> |
Write to remote element <elem> in sequential branch | Запись в элемент <elem> распределенного массива в последовательной части программы без спецификации собственных вычислений. |
Reading remote element <elem> in sequential branch | Использование нелокального элемента <elem> распределенного массива в последовательной части программы. |
WAIT for reduction without START | Ожидание завершения редукции без ее фактического запуска. |
Using an element outside of array limits: <elem> | Обращение к элементу массива за пределами его границ. |
START for reduction without WAIT | Отсутствие операции ожидания завершения асинхронной редукции для соответствующей операции старта асинхронной редукции. |
Reduction operation was not started | Специфицирована редукционная переменная, но соответствующее вычисление редукционной операции никогда не было стартовано. |
2. Накопление и сравнение трассировки
Сообщение | Описание |
Bad file structure | Нарушена структура файла трассировки. |
Undefined keyword | Файл трассировки содержит неизвестное ключевое слово. |
Bad command syntax | Неправильная структура записи трассировки. |
Can't open a file <file name> | Невозможно открыть указанный файл. |
Trace file <file name> is empty | Указанный файл трассировки не содержит информации. |
Bad trace structure (missing current program construct) | Нарушена структура файла трассировки. Отсутствует запись начала исполняемой конструкции. |
No current program construct | Отсутствует запись начала исполняемой конструкции. |
Unexpected task or iteration of loop | Эталонная трассировка не содержит записи о выполнении данной итерации или задачи. |
Double execution of task or iteration, No = <iter no> | Повторное исполнение той же итерации или задачи. |
Unexpected execution of program construct | Эталонная трассировка не содержит записи о начале выполнения данного цикла или задачи. |
Abnormal loop exit | Завершение цикла не соответствует записи в эталонной трассировке. |
Unexpected use of variable | Эталонная трассировка не содержит записи об использовании данной переменной. |
Unexpected trace record | Эталонная трассировка не содержит записи о исполнении данного события. |
Different <type> values: <standard value> != <current value> | Значение переменной не соответствует эталонной трассировке. |
Different <type> values of reduction variable: <standard value> != <current value> | Значение результата вычисления редукции не соответствует эталонной трассировке. |
3. Структура конфигурационного файла трассировки
# Trace size = | <размер всего файла трассировки в байтах> |
# String count = | <число строк всего файла трассировки> |
SL, PL или TR | <номер конструкции> (<номер объемлющей конструкции>) [<размерность конструкции>] {<имя файла>, <номер строки>} = <уровень накопления трассировки>, (<измерение> : <первая итерация> , <последняя итерация> , <шаг трассируемых итераций>) | |
# Trace size = <размер трассировки в байтах данной конструкции для указанного уровня накопления трассировки> | ||
# String count = <число строк трассировки данной конструкции для указанного уровня накопления трассировки > | ||
# Count of traced iterations = <число трассируемых итераций цикла или задач> |
EL: <номер конструкции>
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SL, PL или TR | <номер конструкции> (<номер объемлющей конструкции>) [<размерность конструкции>] {<имя файла>, <номер строки>} = <уровень накопления трассировки>, (<измерение> : <первая итерация> , <последняя итерация> , <шаг трассируемых итераций>) | |
# Trace size = <размер трассировки в байтах данной конструкции для указанного уровня накопления трассировки> | ||
# String count = <число строк трассировки данной конструкции для указанного уровня накопления трассировки > | ||
# Count of traced iterations = <число трассируемых итераций цикла или задач> |
EL: <номер конструкции>
4. Структура трассировки вычислений
При трассировке вычислений накапливаемая трассировочная информация состоит из двух частей:
-
заголовка трассировки;
-
тела трассировки (может отсутствовать).
Заголовок присутствует в трассировке даже тогда, когда накопление трассировки отключено для всей программы. Его структура напоминает структуру конфигурационного файла трассировки, но без вычисляемых значений объемов трассировки для всей программы и для отдельных циклов:
MODE = <уровень накопления трассировки для всей программы>,
SL, PL или TR | <номер конструкции> (<номер объемлющей конструкции>) [<размерность конструкции>] {<имя файла>, <номер строки>} = <уровень накопления трассировки>, (<измерение> : <первая итерация> , <последняя итерация> , <шаг трассируемых итераций>) |
EL: <номер конструкции>
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SL, PL или TR | <номер конструкции> (<номер объемлющей конструкции>) [<размерность конструкции>] {<имя файла>, <номер строки>} = <уровень накопления трассировки>, (<измерение> : <первая итерация> , <последняя итерация> , <шаг трассируемых итераций>) |
EL: <номер конструкции>
Тело трассировки отсутствует, когда накопление трассировки отключено для всей программы. Иначе тело трассировки состоит из множества записей следующих типов:
-
Обращение к переменной на чтение.
RD: [<тип переменной>] <имя переменной> = <значение>; {<имя файла>, <номер строки>}
-
Обращение к переменной на запись (перед вычислением выражения).
BW: [<тип переменной>] <имя переменной>; {<имя файла>, <номер строки>}
-
Результат записи в переменную.
AW: [<тип переменной>] <имя переменной> = <значение>; {<имя файла>, <номер строки>}
-
Обращение к редукционной переменной на чтение.
RV_RD: [<тип переменной>] <имя переменной> = <значение>; {<имя файла>, <номер строки>}
-
Обращение к редукционной переменной на запись (перед вычислением выражения).
RV_BW: [<тип переменной>] <имя переменной>; {<имя файла>, <номер строки>}
-
Результат записи в редукционную переменную.
RV_AW: [<тип переменной>] <имя переменной> = <значение>; {<имя файла>, <номер строки>}
-
Результат вычисления редукции.
RV: [<тип переменной>] <значение>; {<имя файла>, <номер строки>}
-
Пропуск операторов при обращении к элементу распределенного массива в последовательной части программы.
SKP: {<имя файла>, <номер строки>}
-
Начало выполнения параллельного цикла.
PL: <номер цикла> (<номер родительской конструкции или пусто>) [<размерность цикла>] = <уровень трассировки: FULL, MODIFY, MINIMAL, NONE>, (<диапазон трассируемых итераций (может отсутствовать)>); {<имя файла>, <номер строки>}
-
Начало выполнения последовательного цикла.
SL: <номер цикла> (<номер родительской конструкции или пусто>) [<размерность цикла>] = <уровень трассировки: FULL, MODIFY, MINIMAL, NONE>, (<диапазон трассируемых итераций (может отсутствовать)>); {<имя файла>, <номер строки>}
-
Начало выполнения области задач.
TR: <номер области> (<номер родительской конструкции или пусто>) [<размерность области>] = <уровень трассировки: FULL, MODIFY, MINIMAL, NONE>, (<диапазон трассируемых задач>); {<имя файла>, <номер строки>}
-
Начало итерации (помещается в трассировку только при изменении самой вложенной итерации цикла) или параллельной задачи.
IT: <абсолютный индекс итерации (вычисляется из значений всех итерационных переменных) или номер задачи>, (<значение итерационной переменной>,< значение итерационной переменной >,…).
-
Конец выполнения параллельного цикла или области задач.
EL: <номер конструкции>; {<имя файла>, <номер строки>}
Приложение 4. Сообщения об ошибках системы поддержки
Сообщения об ошибках, возникающих в процессе функционирования системы поддержки, делятся (по степени серьезности последних) на предупреждения и сообщения об ошибках, прерывающих выполнение программы. Ошибки, прерывающие выполнение программы, могут быть обычными, ответственность за которые лежит (скорее всего) на пользователе, и фатальными, требующими, возможно, участия разработчика или его представителя.