Главная » Просмотр файлов » Параллельное программирование на языке C-DVM

Параллельное программирование на языке C-DVM (1158283), страница 6

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

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

Парсер останавливается с сообщением:

Unexpected <token>

Нет допустимого терминального символа;

<construct> expected

Нет требуемой конструкции;

<construct> syntax

Ошибка в конструкции.

3 . Ошибки файлового уровня и операторов

The 'main' should get the command line parameters

В командной строке передаются параметры запуска Lib-DVM. Поэтому требуется заголовок

int main (int argn, char ** args)

The 'main' should 'return <rc>;' for the Lib-DVM

Функция main должна возвращать значение. Lib-DVM передает это значение операционной системе.

Implicitly created objects must precede 'main'

«Неявно создаваемые объекты должны предшествовать main ».

Неявно создаваемые объекты должны быть описаны перед main. К таким объектам относятся распределяемые массивы, шаблоны, решетки процессоров с константными размерностями и т.п. Они автоматически создаются в самом начале main, поэтому должны быть все известны в этой точке.

'main' required for implicitly created objects

«main требуется в файле в неявно создаваемыми объектами.»

Распределяемые массивы, шаблоны, решетки процессоров с константными размерностями и т.п. автоматически создаются в самом начале main, поэтому функция main должна присутствовать в файле в неявно создаваемыми объектами.

DVM-statement outside function

«DVM-оператор вне функции.»

DVM-оператор находится вне функции.

Misplaced declarative DVM-directive

«Описательная директива в неподходящем месте»

Директива-описание встретилась среди операторов или в операторе.

DVM-directive requires a non-empty statement

«DVM-директива требует непустого оператора».

Эта директива - спецификация при операторе. Не должна отделяться от него ';'.

Should be followed by the ';'

«Должна сопровождаться ‘;’»

Директива сама является оператором и должна оканчиваться ';'.

Not allowed in a PARALLEL loop

«Недопустимо в параллельном цикле»

Коллективная операция не может выполняться на одном процессоре.

4 . Описания

DVM-object should be defined as 'void *'

«DVM объекты должны иметь тип void * »

DVM-arrays may be int, long, float, or double only

«DVM-массивы могут быть только типов int, long, float и double ».

Scalar can not be distributed

«Скалярные переменные не могут быть распределенными»

Скалярные переменные всегда являются неявно размноженными.

DVM-pointer should be a C-pointer

«DVM-указателем должен быть описан как указатель в C».

DVM(* …) требует <type> * <id>.

'*' is valid only with DISTRIBUTE and ALIGN

«’*’ допустима только с директивами DISTRIBUTE и ALIGN »

’*’ можно использовать только в директивах DISTRIBUTE и ALIGN.

Only 1D-arrays of ptrs to DVM-arrays supported

«Только одномерные массивы указателей на распределенные массивы допустимы».

Ограничение компилятора.

Unsupported declarator for distributed data

«Недопустимый декларатор для распределенных данных».

Can not initialize DVM-objects

«Нельзя указывать инициализатор для DVM объектов и массивов».

DVM declarator syntax error

«Синтаксическая ошибка в деклараторе».

Прочие синтаксические ошибки в деклараторе.

5 . Объявление и использование DVM-объектов

Undefined

«Не определен»

Неопределенный идентификатор используется в DVM-директиве. Последовательная программа при этом могла компилироваться, если идентификатор используется только в DVM-директивах.

This is not a DVM-object

«Это не DVM-объект»

Объект, используемый в DVM-директиве, не является DVM-объектом.

Rank error

«Несоответствие ранга»

Ранги объекта при описания и использовании разные и т.п.

This is not a REDUCTION_GROUP

«Это не REDUCTION_GROUP ».

DVM-директива требует параметры определенного класса.

This is not a SHADOW_GROUP

«Это не SHADOW_GROUP ».

DVM-директива требует параметры определенного класса.

This is not a REMOTE_GROUP

«Это не REMOTE_GROUP ».

DVM-директива требует параметры определенного класса.

An array of void* required

«Требуется массив указателей void * »

ON-target must be an element of task array

«ON требует элемента массива задач».

6 . DISTRIBUTE, ALIGN, TEMPLATE

'[*]' is only allowed in DVM( * DISTRIBUTE...)

«’[*]’ допустимо только в DVM( * DISTRIBUTE…)

Array should be defined as DVM(DISTRIBUTE...)

«Массив должен быть описан как DVM(DISTRIBUTE…) »

DVM-массив должен быть описан как DVM(DISTRIBUTE…).

GENBLOCK requires non-distributed 1D integer array

«GENBLOCK требует нераспределенного одномерного массива типа int

ONTO target must be a TASK or a PROCESSORS

«ONTO требует DVM-объект типа TASK или PROCESSORS

ONTO target must be an element of task array

«ONTO требует элемент массива задач.»

Align-expression syntax: [-][A*]var[+B|-B]

«Синтаксис выражения выравнивания: [-][A*]var[+B|-B] »

Разрешено только выражение, линейное относительно var.

Already used align|do variable

«Уже использованная переменная выравнивания цикла»

Два выражения выравнивания с одной и той же переменной не допускаются.

The base of a static should be a (known) static

«Базовый массив для выравнивания статического сам должен быть (уже определенным) статическим»

Статические (с константными размерностями) DVM-массивы автоматически создаются с помощью malloc в начале функции main в порядке их объявления. Базовый массив должен уже создан до выравнивания (ALIGN) по нему создаваемого массива.

The parameter should be a (non-static) TEMPLATE

«Параметр должен быть (не ‘статическим’) TEMPLATE »

Неверный параметр директивы CREATE-TEMPLATE.

7 . Доступ к распределенным данным

Can not assign to REMOTE

«Нельзя присваивать данным, описанным в REMOTE_ACCESS »

Удаленным данным нельзя присваивать значения.

Can not get REMOTE address

«Нельзя брать адрес от данных REMOTE_ACCESS »

К удаленным данным нельзя применять оператор &.

Possible non-local assignement. Use DVM(OWN)

«Возможно нелокальное присваивание. Используйте директиву OWN »

Левая часть оператора присваивания в последовательной ветви программы является элементом распределенного массива.

Only 1..4-D arrays may be distributed

«Размерность распределенных массивов не более 4»

Распределенные массивы могут иметь размерность от 1 до 4.

Too many distributed dimensions

«Слишком много распределенных размерностей»

Особый случай ошибки "Rank error".

Not all distributed dimensions

«Указаны не все распределенные размерности».

Особый случай ошибки "Rank error".

8 . Цикл PARALLEL

Duplicated or incompatible sub-directive

«Повторяющиеся или несовместимые поддирективы»

Повторяющиеся или несовместимые поддирективы директивы PARALLEL. Несовместимы SHADOW_RENEW, SHADOW_START и SHADOW_WAIT, а также все поддирективы с ON <task>.

Too many headers in the PARALLEL loop

«Слишком много заголовков в цикле PARALLEL »

Отделите лишние заголовки фигурными скобками.

Not enough headers in the PARALLEL loop

«Не хватает заголовков в цикле PARALLEL »

Разрешены только тесно вложенные параллельные циклы.

Not a PARALLEL loop variable

«Это не переменная параллельного цикла»

Переменная в распределенном DO/FOR заголовке отсутствует в списке переменных заголовка PARALLEL параллельного цикла.

PARALLEL loop variables disordered

«Нарушен порядок переменных параллельного цикла»

Порядок переменных в заголовке PARALLEL параллельного цикла и в заголовках цикла DO/FOR должен быть одинаковый.

Variable already used

«Переменная уже использована».

Два выражения выравнивания по одной переменной в параллельном цикле не разрешены.

Loop variable required

«Переменная цикла обязательна»

В заголовке параллельного цикла PARALLEL задано [<не идентификатор>] или [ ].

Only 'long' or 'int' scalar loop variables allowed

«Допустимы только скалярные переменные типа int или long »

В качестве переменных цикла можно использовать только скалярные переменные типа int или long.

9 . SHADOW

Declared (or default) maximum width exceeded

«Превышена максимальная ширина теневых граней»

Превышена максимальная ширина теневых граней, объявленная в описании массива или 1 по умолчанию.

1D-array's shadow has no CORNERs

«Для одномерного массива бесполезно CORNER »

Предупреждение. Ключевое слово не имеет смысла в данном контексте.

10 . REDUCTION

Нарушение синтаксиса и семантики параметров редукционных функций.

Undefined RVAR
Wrong type of RVAR
Undefined RLOC
Wrong type of RLOC
Unallowed RVAR-expression
Unallowed RLOC-expression

11 . Процедуры

Parameter should be defined as DVM(*...)

«Параметры должны быть описаны с ‘*’»

DVM-указатели передаются по ссылке.

Only DISTRIBUTE and ALIGN are valid for parameter

«Только директивы DISTRIBUTE и ALIGN допустимы для параметров»

В качестве параметров можно передавать только массивы. TEMPLATE, SHADOW_GROUP, PROCESSORS и т.п. не могут передаваться как параметры.

12 . Трассировка данных

Это предупреждения:

This initialization will not be traced

«Эта инициализация не будет трассироваться»

Инициализация не будет трассироваться из-за неподдерживаемого типа или уже сгенерированной main.

Can not trace ++, --, +=, -=, ...

«Не трассируются операции ++, -- +=, -=, и т.п.»

Ограничения компилятора.

Can not trace multiple assignement

«Не трассируется кратное присваивание»

Can not trace this type

«Не трассируется доступ к данным этого типа»

Неподдерживаемый тип.

13 . Разное

Can fread-fwrite DVM-arrays as a whole only

«Распределенный массив вводится/выводиться только целиком»

Do you mean multiple index?

Пишите A[a,b] как либо A[(a.b)], либо A[a][b] по смыслу.

Not yet implemented... or error

«Еще не реализовано или ошибка»

Приложение 3. Диагностические сообщения динамического отладчика

Общая структура сообщения об ошибке динамического отладчика:

(<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 =

<число строк всего файла трассировки>

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

Список файлов книги

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