debugDDe (1158408), страница 6

Файл №1158408 debugDDe (Раздаточные материалы) 6 страницаdebugDDe (1158408) страница 62019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 6)

The parameters are specified in files that are located in the special DVM-system directory. The parameters has the following form:

<Parameter name>=<Value>

The dynamic control module uses the following parameters:

EnableDynControl – flag of dynamic control If it is equal to 0 then dynamic control is disabled.

DebugOptions.ErrorFile – the name of diagnostic output file. This file is used if parameter DebugOptions.ErrorToScreen is equal to 0. If system cannot open the file, the error messages will be output to the screen.

DebugOptions.HashIndexSize – size of hash-index for the dynamic control variable table.

DebugOptions.HashTableSize – increment size of hash-array of the table of variables.

DebugOptions.VarTableSize – increment size of the variable-table.

DebugOptions.ErrorToScreen – if this parameter is not equal to 0 then all diagnostic messages will be output to the screen.

DebugOptions.PrintStatistic – flag to enable or disable output of the variable-table usage statistics.

DebugOptions.AppendErrorFile – the mode of a diagnostic file usage. The file will be cleared each time before program running if this parameter is equal to 0.

DebugOptions.MaxErrors – the maximum count of errors after that the dynamic control is disabled.

DebugOptions.CheckVarInitialization – flag to enable or disable checking scalar variables initialization.

DebugOptions.CheckVarReadOnly – flag to enable or disable checking usage of variables with read-only access mode.

DebugOptions.CheckReductionAccess – flag to enable or disable checking usage of reduction variables.

DebugOptions.CheckDisArrInitialization – flag to enable or disable checking distributed array elements initialization.

DebugOptions.CheckDisArrLimits – flag enable or disable checking access out of distributed array range.

DebugOptions.CheckDisArrEdgeExchange – flag to enable or disable checking edge exchange for distributed arrays.

DebugOptions.CheckDisArrSequentialAccess – flag to enable or disable checking usage of distributed array elements in the sequential program part.

DebugOptions.CheckDisArrLocalElm – flag to enable or disable checking membership of an element to the distributed array local part.

DebugOptions.CheckDataDependence – flag to enable or disable checking undeclared loop data dependence.

DebugOptions.CheckRemoteBufferAccess – flag to enable or disable checking usage of remote access buffers.

HashMethod – this parameter defines algorithm that is used for the hash-value calculation. If it is equal to 0 then the StandartHashCalc algorithm is used, if it is equal to 1 then the OffsetHashCalc algorithm is used.

HashOffsetValue – offset value for the OffsetHashCalc algorithm. The values from 0 up to 16 are supposed.

6The “Comparing execution results” method

6.1Trace accumulation

The following trace information is accumulated in a trace file:

  • Values of all variables accessed for reading.

  • Values of all variables accessed for writing.

  • Results of reduction operations.

  • Beginning of a task region or parallel and sequential loop.

  • Beginning of iteration or parallel task.

  • End of a task region or parallel and sequential loop.

Each record in the trace file has reference to a line of the source program.

Since this method requires considerable overhead the means to control trace detailing are provided.

The content of a special file (trace configuration file) determines detailing of the trace. This file contains description of all program loops and task regions.

To decrease trace size the following accumulation levels are provided:

  • No trace information.

  • Only the information about loops, task regions, tasks and iterations are accumulated.

  • In addition to the previous level the information about variable modifications are accumulated.

  • In addition to the previous level the information about all usage of the variables are accumulated.

Furthermore, you can specify for each loop an iteration range and for each task region a task range, which the information about variable usage will be accumulated for.

6.2Trace comparing

In the comparing mode the trace-file is read into the memory before program startup. The structure of trace in the memory is formed by the same functions that are used in the accumulation mode. As result, we have the same trace structure in the memory both after accumulating and after reading the trace.

Then during program execution the occurred events are compared with reference ones.

There are the following singularities of parallel program execution:

  • Values of reduction variables inside a parallel construction can be different in the sequential and parallel modes. Therefore comparing values of reduction variables inside a parallel constructions isn’t performed.

  • In the parallel mode an order of parallel loop iterations and parallel tasks can be changed. Therefore at the iteration and task beginning the corresponding reference trace record is searched for and set as current.

  • In the parallel mode a sequential branch can miss statements, which calculate and assign values to non-local elements of distributed arrays.

  • Inside the parallel construction some references to variables used for calculation of reduction maximum or minimum may be missed in the sequential or parallel modes.

6.3Checking reduction operations

Reduction variable accumulation has a special implementation. The values of reduction variables inside a parallel constructions aren’t compared with reference ones. Comparison is performed only for reduction result.

There are two ways to calculate a reduction operation. The first way is a standard method of reduction performance. Program statements inside an iteration or task perform all computations of a reduction variable on its own processor. The final result of reduction operation between processors is computed by Lib-DVM. If a program is performed on a single processor only program statements will compute the reduction.

The second way is emulation of performing each iteration and parallel task on a separate processor. At the beginning of iteration and task the initial value is assigned to reduction variable. The initial value is stored before parallel construction beginning. Upon end of iteration and task the reduction is performed by Lib-DVM according to specified reduction function.

To perform reduction checking the comparing of program execution results is performed for each method that described above. If a program specifies the reduction function correctly the reduction results will be the same for both ways. Otherwise the error of differences of reduction results will be reported for user.

6.4Formats of input and output files

6.4.1Trace configuration file

The trace configuration file is used to specify the level of trace details and show volumes of trace for the specified parameters. The user can tune the level of trace details by running the program several times in the mode of forming the trace configuration file and modifying each time the formed file.

As was said before, there are the following levels of trace details:

  • absence of trace (NONE level);

  • tracing beginning and ending of loops and task regions, and tracing beginning iterations and parallel tasks (MINIMAL level);

  • the previous level plus tracing modification of variables and results of reduction (MODIFY level);

  • tracing all events (FULL level).

The trace level of the whole program is assigned in the trace parameter file. The trace level for the each program structure (parallel and sequential loop, task region) is assigned in the trace configuration file. If the level of trace details for the structure is not assigned then the level of the parent structure is accepted. If the parent structure does not exist then the level of the whole program is accepted.

The trace configuration file contains the following additional information for the full trace and each program structure: number of trace strings, trace size in bytes and number of traced iterations (or tasks for task region). If a structure is performed several times then the trace configuration file contains summary information for the structure.

Additionally, for the each structure the structure number, numbers of beginning and completion structure lines, trace level and traced iteration range is presented. The user can change the trace level and traced iteration range. If trace level is not set then the trace level of the whole program are accepted.

The comments in the trace configuration file are marked by the ‘#’ character. All symbols after ‘#’ will be ignored.

The structure of the trace configuration file is the following:

# Trace size = <full trace size>

# String count = <number of trace strings>

<SL | PL | TR> <structure number> (<number of parent structure>) [<structure rank>] {<file name>, <line number>} = <NONE | MINIMAL | MODIFY | FULL>, (<dimension>:<first iteration>, < last iteration >, <iteration step>), …

# Trace size = <structure trace size>

# String count = <number of structure trace strings>

# Count of traced iterations = <number of traced iterations or tasks>

EL: <structure number>

………

<SL | PL | TR> <N> (<P>) [<R>] {<FILE>, <LINE>}= <NONE | MINIMAL | MODIFY | FULL>, (<I0>:<L0>, <R0>, <S0>), (<I1>:<L1>, <R1>, <S1>), …

# Trace size = <structure trace size>

# String count = <number of structure trace strings>

# Count of traced iterations = <number of traced iterations or tasks>

EL: <N>

All structure parameters are assigned after the ‘=’ symbol. The SL record corresponds to a sequential loop, the PL record corresponds to a parallel loop, and the TR record corresponds to a task region.

The traced iteration range is set in the brackets. If these parameters are absent, the all iterations will be traced. For the excluded iterations the variable accessing is not traced but iteration beginning events are traced.

The traced iteration range is assigned as the following:

(<dimension> : [<first iteration>] , [<last iteration >] , [<iteration step>])

<dimension> – structure dimension (beginning from 0) to which the limitations are assigned. This parameter is required.

<first iteration> – iteration number from which the iterations are traced. By default, the iterations are traced from the first.

<last iteration> – iteration number up to which the iterations are traced. By default, the iterations are traced up to the last.

< iteration step> – the step with which the iterations will be traced. By default, the 1 is used.

Iteration ranges examples:

  • (0:2,10,) – trace iteration from 2 up to 10.

  • (0:,10,) – trace iterations up to 10.

  • (0:4,,) – trace iterations from 4.

  • (0:,,3) – trace iterations with the 3 step.

Empty iterations will be removed from the trace in the special mode. This mode can be specified by using the trace parameters file.

6.4.2Trace file

The comparing execution results puts to begin of the trace file a special trace header. This header contains information about trace parameters, which was used during trace accumulation. When the trace-comparing mode is specified, the trace parameters are read from the trace header and are used instead of the trace configuration file.

The format of the header the following:

MODE = <NONE | MINIMAL | MODIFY | FULL>, [EMPTYITER]

# Begin trace header. Don't modify these records

<SL | PL | TR> <N> (<P>) [<R>] {<FILE>, <LINE>}= <NONE | MINIMAL | MODIFY | FULL>, (<I0>:<L0>, <R0>, <S0>), (<I1>:<L1>, <R1>, <S1>), …

EL: <N>

Характеристики

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7021
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее