fdvmDDe (1158418), страница 3

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

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

The statements of procedure are scanned in lexical order until last statement of procedure. The specification statements and directives are omitted.

If the user specify non-zero level of debugging in compiler run command, the statements containing expressions (assignment, CALL , arithmetical IF and so on) are surrounded with Debugger functions for controlling values of variables.

The function inserts Debugger calls at the beginning and the end of each parallel and sequential loop and Performance Analyzer calls at the beginning and the end of each interval.

List of called functions:

TempVarDVM

DebugVarArrayRef

RTLInit

DebugVarArrayRef_Left

RTLExit

DebugArg_VarArrayRef

InsertNewStatementBefore

SkipParLoopNest

InsertNewStatementAfter

ReplaceContext

doAssignStmtAfter

ParallelLoop_Debug

Extract_Stmt

isParallelLoopEndStmt

addToStmtList

AddToGroupNameList

ReplaceDoNestLabel_Above

CreateReductionGroup

CloseDoInParLoop

ReductionList

CloseParLoop

D_Lnumb

isDoEndStmt

D_Fname

ReplaceFuncCall

D_Skpbl

InitRemoteGroups

D_Iter_ON

CloseLoop

St_Binter

DebugLoop

St_Einter

SeqLoopBegin

St_Biof

SeqLoopEndInParLoop

St_Eiof

OverLoopAnalyze

St_Eloop

SeqLoopEnd

DeclareVarDVM

OpenInterval

DeleteObject

CloseInterval

Error

Value

err

initMask

InitGroups

isLIFReductionOp

IsReductionOp

IEXLoopAnalyze

IndependentLoop_Debug

BeginDebugFragment

SkipIndepLoopNest

EndDebugFragment

DebugTaskRegion

INDReductionDebug

CloseTaskRegion

void initialize ( )

This function initializes the variables of compiler used in the mode of generating Debugger and Performance Analyzer calls.



void initVariantNames ( )

This function initializes the table of variant tags.

void initLibNames ( )

This function initializes the Lib-DVM function name table.

void initDVM ( )

This function inserts the Lib-DVM function symbols in the Symbol Table.

void initMask ( )

This function cleans the mask of using Lib-DVM functions. The functions generating Lib-DVM library calls reset the corresponding mask element to 1. The declaration statement is created only for masked (used in procedure) Lib-DVM functions.

void TempVarDVM ( SgStatement *func )

func

- pointer to the procedure header statement

The function puts in the Symbol Table the following symbols of reserved variables:

integer

dvm000(...)

- array for storing Lib-DVM function results

integer

hpf000(...)

- array for storing Lib-DVM function results

(it is used for HPF-DVM program)

integer

i0000m(0:0)

- base for addressing distributed arrays of type integer

real

r0000m(0:0)

- base for addressing distributed arrays of type real

double precision

d0000m(0:0)

- base for addressing distributed arrays of type double

precision

logical

l0000m(0:0)

- base for addressing distributed arrays of type logical

complex

c0000m(0:0)

- base for addressing distributed arrays of type complex

integer

i000io(1000)

- buffer for I/O of distributed arrays of type integer

real

r000io(1000)

- buffer for I/O of distributed arrays of type real

double precision

d000io(1000)

- buffer for I/O of distributed arrays of type double

precision

logical

l000io(1000)

- buffer for I/O of distributed arrays of type logical

complex

c000io(1000)

- buffer for I/O of distributed arrays of type complex

integer

idvm00

- do-variables of loops implementing I/O of

idvm01

distributed arrays

. . .

idvm07

integer

i000bf(...)

- buffer for storing remote data of type integer

real

r000bf(...)

- buffer for storing remote data of type real

double precision

d000bf(1000)

- buffer for storing remote data of type double

precision

logical

l000bf(1000)

- buffer for storing remote data of type logical

complex

c000bf(1000)

- buffer for storing remote data of type complex

void DeclareVarDVM ( SgStatement *lstat )

lstat

- pointer to the statement

Creates the declaration statements of reserved variables used in procedure:

  • headers of distributed arrays,

  • do-variables of loops implementing I/O of distributed arrays,

  • variables for addressing distributed arrays(DVM memory variables),

  • common block for DVM memory variables,

  • buffer arrays for remote access data,

  • buffer arrays for I/O of distributed arrays,

  • variables of type group (SHADOW_GROUP,REDUCTION_GROUP, so on),

  • processor and task arrays

  • arrays for storing Lib-DVM function results,

  • Lib-DVM functions,

and inserts them in procedure after the statement lstat (last declaration statement or the statement preceding DATA statement.

(See TempVarDVM( )).

5.1.1Distributed array creation and remapping

void GenDistArray (

SgSymbol
int
SgExpression
SgStatement

*das,
idisars,
*ps
*stdis );

das

- pointer to the symbol of distributed array

idisars

- the mapping rules (distribution formats) are stored

in the elements of reserved array dvm000 : dvm000(idisars),

dvm000(idisars+1),...

ps

- pointer to the processor array reference

stdis

- pointer to the DISTRIBUTE statement

Generates the statements to create Lib-DVM object and allocate a memory for array declared with DISTRIBUTE attribute and for all the arrays immediately or ultimately aligned with it, and inserts these statements before first executable statement of the procedure.

void GenAlignArray (

align
align
int
int

*node,
*root,
nr
iaxis );

node

- pointer to the alignment tree node that corresponds to the aligned

array

root

- pointer to the alignment tree node that corresponds to the array

node is aligned with

nr

- the number of aligning rules

iaxis

- the aligning rules (AxisArray(nr), CoefArray(nr), ConstArray(nr))

are stored in the elements of reserved array dvm000 :

dvm000(iaxis),

dvm000(iaxis+1),...

Generates the statements to create Lib-DVM object and allocate a memory for array declared with ALIGN attribute and inserts these statements before first executable statement of the procedure.

void doAlignRule_1 ( int rank )

rank

- rank of array

Generates the statements to initialize 3 arrays of aligning rules:

AxisArray(i) = 1

CoeffArray(i) = 1

ConstArray(i) = 1 , i=1, rank

that are used as arguments of Lib-DVM function align( ).

int doAlignRule (

SgSymbol
SgStatement
int

*alignee,
*algn_st,
iaxis );

alignee

- pointer to the symbol of aligned array

algn_st

- pointer to the ALIGN statement

iaxis

- index of reserved array dvm000 where the AxisArray(1) is stored

The function generates the statements to create arrays of aligning rules that are used as arguments of Lib-DVM function align( ).

The function returns the number of aligning rules (the length of align-source-list in ALIGN directive).

void AlignTree ( align *root )

root

- pointer to the alignment tree root

Traverses the alignment tree and calls the function GenAlignArray() for creating distributed array for each aligned array (node of tree).

int doDisRuleArrays (

SgExpression
SgExpression

*dist_format,
*aster );

dist_format

- distribution format list

aster

- pointer to the expression * or null pointer

The function generates the statements to create 2 arrays of mapping rules that are used as arguments (AxisArray, DistrParamArray) of distr( ) and redis( ) Lib-DVM functions.

The function returns the index of array dvm000 element storing the first mapping rule (AxisArray(1)).

void RedistributeArray (

SgSymbol
int
SgExpression
int
SgExpression
SgStatement

*das,
idisars,
*ps
sign
*dasref
*stdis );

das

- pointer to the symbol of redistributed array

idisars

- the mapping rules (distribution formats) are stored

in the elements of reserved array dvm000 : dvm000(idisars),

dvm000(idisars+1),...

ps

- pointer to the processor array reference

sign

- the flag that defines whether to update contents of redistributed

array or not

dasref

- pointer to the redistributed array reference

stdis

- pointer to the REDISTRIBUTE directive

Generates statement to redistribute array:

dvm000(i) = redis(...)

and inserts it in procedure in place of REDISTRIBUTE directive.

For array that is specified by directive ALIGN and DISTRIBUTE of the form

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

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

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