(U4.11.01) Процедура DEBUT

Материал из ru.wiki.laduga.ru
Перейти к: навигация, поиск


1 Цель

Повлиять на память ресурсов, диск и файлы.

Выполнение состоит из ряда команд, начинающихся с DEBUT и заканчивающихся в FIN (U4.11.02), (см. также процедуру POURSUITE (U4.11.03)).

Команда DEBUT, исполняемая с помощью Контроллера, выполняет следующие задачи:

  • определение характеристик баз данных (управляемый JEVEUX) и присвоение связанных файлов;
  • чтение каталогов элементов и команд.

Очевидно, сложный синтаксис этой процедуры не должен беспокоить пользователя; его вызов с операндами по умолчанию, достаточен в большинстве случаев: DEBUT ()

Операнды должны использоваться в случае исследований, требующих значительного размера файлов "базы данных" или чтобы изменять маршрут различных файлов, у которых логические номера устройств отличаются от логических номеров устройств, заданных по умолчанию.

Команды, находящиеся перед DEBUT, если они синтаксически корректны игнорируются.



2 Код

   DEBUT
        ( ◊PAR_LOT = / “OUI”,                          [DEFECT]
                     / “NON”,
          ◊IMPR_MACRO = / “NON”,                       [DEFECT]
                        / “OUI”,
          ◊LANG = Lang,                                [TXM]
          ◊BASE = _F ( ♦FICHIER = / “GLOBALE”,
                                  / “VOLATILE”,
                                  / | LONG_ENRE = lenr,  [I]
                                    | NMAX_ENRE = nenr,  [I] 
                                    | LONG_REPE = lrep,  [I] 
                     ),
          ◊CODE =_F ( ♦NOM =nom code,                    [K8]
                      ♦NIV_PUB_WEB= / “INTERNET”,
                                    / “INTRANET”,
                      ◊VISU_EFICAS= / “OUI”,          [DEFECT]
                                    / “NON”, 
                    ),
          ◊ERREUR = _F (ERREUR_F= / “ABORT”,          [DEFECT]
                                  / “EXCEPTION”, 
                        ),
          ◊IGNORE_ALARM =l_vale ,                     [l_Kn] 
          ◊DEBUG = _F ( JXVERI = / “OUI”, 
                                 / “NON”, 
                        ENVIMA = 'TEST',              [l_Kn]
                        ◊JEVEUX = / “OUI”,
                                  / “NON”,
                        ◊SDVERI = / “OUI”,
                                    “NON”, 
                        ◊HIST_ETAPE = / “NON”,
                                        “OUI”, 
                     ),
          ◊MESURE_TEMPS = _F (
                              ◊NIVE_DETAIL = / 0          [DEFAUT]
                                             / 2/1/3

                              ◊MOYENNE = / “OUI”          [DEFECT]
                                         / “NON”
                               ),
          ◊MEMOIRE =_F ( ◊TAILLE_BLOC= / 800. , 
   [DEFAUT]
                                       /tbloc ,            [R] 
                       ),
          ◊CATALOGUE = _F ( ♦ FICHIER= nfic, 
   [l_Kn]
                        ◊ UNITE= unit,                     [I]
                          ),
          ◊RESERVE_CPU =_F ( / VALE=vale                   [R] 
                             / POURCENTAGE= pcent                  [R]
                             ◊ BORNE= / bv, [R]  /180 .           [DEFAUT]
                           ), 
         )



3 Отображение данных

В начале выполнения Code_Aster на экран выводится заголовок. Там находится:

  • идентификация определяет используемую версию: номер модели, дата последних поправок;
  • дата и час начала выполнения;
  • имя, архитектура, операционная система машины;
  • язык, используемый для отображения сообщений;
  • тип параллелизма, доступного (MPI/OpenMP), номера предоставленных процессоров;
  • версии использованных библиотек (когда это доступно) для hdf5, MED, MUMPH, SCOTCH;
  • далее некоторая информация о распределении памяти.
Например:
   Ограничение памяти для выполнения: 256.00 Мбайт.
   Память, потребленная инициализацией: 148.68 Мбайт.
   Память объектов набора команд: 17.48 Мбайт.
   Память, оставшаяся для динамического выделения: 89.84Мбайт.
   Размер файлов обмена: 48.00 Гбайт.

То, что означает:

  • 256 Мбайт это количество памяти, требуемое пользователем, это - общее количество, которое не должно превышаться;
  • 148.68 Мбайт используется для выполнения начальной загрузки (загрузка исполнимой программы, связанных динамических библиотек, и т.д.) ;
  • 17.48 Мбайт используется чтением файла команды (Замечание: в режиме PAR_LOT ='NON', набор команд, считанный прогрессивно, это значение, будет равно нулю) ;
  • 89.84 Мбайт это количество доступной памяти (в это время) для объектов вычисления (равное 256-148.68-17.48). Следовательно, получим, что вычисление не может начаться, если это значение слишком низко.

Во время выполнения, согласно динамически выполненным распределениям, это значение варьируется больше чем на 10% (повышение или понижение), сообщение этого типа сообщает пользователю:

   Память, использованная в данный момент, кроме JEVEUX, имеет 214.08 Мбайт. 
   Предел динамического распределения JEVEUX равен 41.92 Мбайт.

В конце выполнения оценка указывает, может ли то же вычисление быть запущено снова с использованием меньшего количества памяти:

   Память, требуемая для запуска, переоценена, она равна 256 Мбайт. 
   Пик используемой памяти равен 216.02 Мбайт 

или если необходимо больше памяти (действительно согласно платформам, максимальный предел может быть превышен, без системной остановки вычисления):

   Память, которую требуется для запуска, недооценена, она равна 256 Мбайт. 
   Пик используемой памяти равен 273.22 Мбайт.



4 Операнды

4.1 Операнд PAR_LOT

   PAR_LOT =

Способ обработки команд:

   "OUI":(выбор по умолчанию); контролер анализирует все команды прежде, чем выполнить их.
   "NON":проанализировав команду, супервизор требует выполнить ее, затем переходит к анализу (и выполнению) следующей команды (обработка команды управления).

4.2 Ключевое слово IMPR_MACRO

   IMPR_MACRO =

Включение или отключение отображения, произведенное макросами в файле сообщения. Чтение файлов сообщения может быть тяжелым, когда оно содержит все количество сигналов подкоманд, сгенерированных самим макросом. По умолчанию появится только сигнал команд, явно вызванных пользователем в его наборе команд.

4.3 Ключевое слово LANG

Оно позволяет выбрать язык отображения сообщений, переданных кодом.

Если ключевое слово не обозначено, тогда переменные среды определяют язык сообщений (ссылка: http://www.gnu.org/software/gettext/manual/gettext.html#Users). Можно, например, определить в файле ~/.bashrc: экспорт LANG=fr_FR.UTF-8.

Кодирование (UTF-8 или ISO-8859-1) позволяет правильно вывести на экран выбранные символы. Ключевое слово LANG ожидает значение из двух букв, например: “FR” (для французского языка) или “IN” (для английского языка).

Когда язык выбран (что бы ни было средой или LANG), тем не менее необходимо, чтобы файл преобразованных сообщений (файл.mo) был доступен. Этот файл ожидается под этим именем:

 $ASTER_ROOT/share/local / `lang`/LC_MESSAGES/aster_`version`.mo

где $ASTER_ROOT является основным каталогом Code_Aster (например: / aster или/opt/aster), Lang это имя, состоящее из строчных букв языка (например, en, fr, de...)), и имени версии.

Используемый Code_Aster (например: устойчивый, протестированный, нестабильный).

Если файл перевода не может быть считан, тогда используется французский.

Примечание

Даже, если файл перевода существует, и если сообщение не было переведено, то на экран оно будет выведено на французском языке (язык сообщений, используемый в исходном коде).

4.4 Ключевое слово BASE

   BASE =

Функциональность этого ключевого слова состоит в том, чтобы вновь определять значения параметров файлов прямого доступа, связанного с "базами данных", в случае если не нужно использовать значения по умолчанию.

Значения по умолчанию это параметры, связанные с базами данных.

   GLOBALE
       NMAX_ENRE                                      62914
       LONG_ENRE                                      100       Kmots
       LONG_REPE                                      2000
   VOLATILE
       NMAX_ENRE                                      62914
       LONG_ENRE                                      100       Kmots
       LONG_REPE                                      the 2000

Слово состоит из 8 байтов на 64- битной платформе под LINUX 64, TRU64 и IRIX64, из четырех байтов на 32- битной платформе под SOLARIS, HP-UX и WINDOWS - NT, LINUX.

Под Linux 64, со значениями по умолчанию, процедура DEBUT выделит файл произвольного доступа к более чем 62914 записям 100 Kmots (K стоимостью в 1024) для основы “GLOBALE”.

Примечание:

Реальный размер файла динамический; он зависит от объема информации для реального хранения. Но этот размер ограничен условиями работы и предварительной установки параметра среди значений, характеризующих платформу. На справочной 64-битной платформе Linux фиксирован максимальный размер равный 48 Гбайт. Это значение может быть изменено при передаче параметра на командную строку исполнимой программы позади ключевого слова “-max_base taille”, где размер является фактическим значением, измеренным в Мбайтах. На 32-битных платформах максимальный размер фиксирован в 2,047 Гбайт (2 147,483,647), но код управляет несколькими файлами для движения вне этого предела, когда параметр “-max_base” передан в виде аргумента.
Для основы Globale, которая может быть сохранена и снова использована в данных вычисления, максимальный размер в “POURSUITE” сохранен, так как если бы параметр “-max_base” не использовался, но возможен его пересмотр ради этого способа.

4.4.1 Операнд FICHIER

   ♦FICHIER=

Символьное имя рассмотренного базиса.

4.4.2 Операнды LONG_ENRE/NMAX_ENRE/LONG_REPE

Определение параметров базы данных (файлы прямого доступа).

   LONG_ENRE = lenr 

lenr - длина записей в Kmots из файлов, используемых в прямом доступе.

Примечание:

Менеджер памяти JEVEUX использует этот параметр для определения двух типов объектов: большие объекты, которые будут отключены в стольких же записей по мере необходимости и маленьких объектах, которые будут накоплены в буфере записи до его освобождения.
   NMAX_ENRE = nenr 
nenr - число записей по умолчанию, при котором значение определено, начиная с LONG_ENRE и параметр на справочной платформе 64-битной Linux, фиксированной на 48 Гбайтах (51 539 607 552 байта) ,для максимального размера файла, связанного с базой данных, если это значение не было изменено при помощи ключевого слова max_base в командной строке.

Примечание:

Оба операнда LONG_ENRE и NMAX_ENRE должны использоваться с предосторожностью, нежелательное использование приведет к резкой остановке программы насыщением файлов произвольного доступа. Когерентность между максимальным размером файла и значением, следующим из произведения двух параметров LONG_ENRE и NMAX_ENRE, проверена в начале выполнения.
   LONG_REPE = lrep 
lrep это начальная длина каталога (максимальное количество адресуемых объектов JEVEUX), он динамически управляется менеджером памяти, который расширяет размер каталога и всех связанных системных объектов по мере потребностей.

Примечание:

Пользователь, модифицируя эти различные параметры, окончательно определяет некоторые характеристики базы данных GLOBALE, которая не может больше изменяться в POURSUITE.

4.5 Ключевое слово CODE

   CODE =

определение имени для всего исследования. Это ключевое слово предназначено только для файлов команды критериев уменьшения, которыми управляют с помощью исходного кода.

Присутствие этого ключевого слова начинает передачу информационного сообщения и автоматически фиксирует режим deboggage DEBUG (JXVERI = “OUI”), который проверяет JEVEUX объекты, что может принести к сверхстоимости выполнения. Поведение в случае ошибки может быть изменено.

4.5.1 Операнд NOM

Имя идентификации исследования состоит более чем с 8 символов.

4.5.2 Операнд NIV_PUB_WEB

   NIV_PUB_WEB = 'INTRANET'

Показатель уровня публикации. Означает, что испытание пригодно только для передачи по внутренней сети.

   NIV_PUB_WEB = "INTERNET"

Указывает на то, что испытание пригодно для передачи, таким каким, он находится во внешней сети.

   VISU_EFICAS = "OUI"

Указывает на то, что файл команды может открыться без проблемы с помощью инструментов EFICAS. Прежде всего, это ключевое слово используется для испытаний и в целях получения новых версий инструментов.

   VISU_EFICAS = "NON"

Сигнализирует о присутствии источника питона в файле команды, не позволяющем его выпуск с помощью инструментов EFICAS.

4.6 Ключевое слово ERREUR

Позволяет модифицировать поведение кода в случае ошибки <F>.

4.6.1 Операнд ERREUR_F

В случае ошибки, код останавливает нормальное выполнение набора команд.

По умолчанию, исключение выполнено (для подробного определения исключения Питон сошлется на документацию Питона или на документацию контролера, см (U1.03.01)). В этом случае код выполняет команду FIN (см (U4.11.02)), которая закрывает базис для разрешения возможного продолжения вычисления. Заметим, что, несмотря на то, что начальная ошибка не считается "фатальной" (<F>), обследование <S>_ERROR, “восстановлено” исключением FIN. Затем этот базис будет перезаписано драйвером исследований. Такое происходит при ERREUR_F ='EXCEPTION'.

ERREUR_F ='ABORT' означает окончательную остановку выполнения набора команд в случае фатальной ошибки (<F>). Команда FIN не выполнена, таким образом базис не закрыт правильно, он не перезаписан, и возобновление вычисления невозможно.

Примечание:

Для отметки выполнения сравнительных тестов разработчиками, остановка ABORT автоматическая и по умолчанию. Это определяется присутствием ключевого слова CODE (кроме того, если ERREUR_F определяет что-либо иного).
В случае нехватки времени CPU, памяти, для всех ошибок типа <S> и исключений, ведет себя так, как при ERREUR_F ='EXCEPTION'.

4.7 Ключевое слово IGNORE_ALARM

   IGNORE_ALARM =

Позволяет пользователю удалить отображение определенных аварийных сигналов (чье появление известно), чтобы более легко идентифицировать другие аварийные сигналы, которые могут появиться.

Во время выполнения команды FIN систематически выводится на экран сводную диаграмму аварийных сигналов, испускаемых во время выполнения (и число вхождений). Аварийные сигналы, проигнорированные пользователем, предшествующие “*” для того, чтобы различать их (и они появляются, даже если они не выпущены).

Аварийные сигналы обозначены, начиная с перечня материалов, появляющегося между символами <и>, например: IGNORE_ALARME = (“MED_2”, “SUPERVIS_40”, …).

4.8 Ключевое слово DEBUG

   DEBUG =

Опция déboggage (зарезервированная для обслуживания кода разработчиками).

4.8.1 Операнд JXVERI

   JXVERI =

Позволяет управлять целостностью сегментов памяти между выполнением двух последовательных команд. По умолчанию выполнение выполнено без “DEBUG”. Эта опция систематически активируется при наличии ключевого слова CODE.

4.8.2 Операнд ENVIMA

   ENVIMA = ’TEST’

Позволяет вывести в файл RESULTAT значения предварительной установки параметров в пакете программного обеспечения ENVIMA ,характеризующего вычислительную машину (D6.01.01).

4.8.3 Операнд JEVEUX

   ◊JEVEUX =

Позволяет активировать рабочий режим в отладке менеджера памяти JEVEUX: разгрузка на диске не отличается от присвоенных значений сегментов в неопределенном значении (D6.02.01).

4.8.4 Операнд SDVERI

   SDVERI = ’NON’

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

Это ключевое слово начинает проверку структур данных, произведенных операторами. Это используется во фрейме процедур разработки кода в тестах не регрессии. Если присутствует ключевое слово CODE, это ключевое слово берет значение по умолчанию ’OUI’.

4.8.5 Операнд HIST_ETAPE

   HIST_ETAPE = ’NON’

Это ключевое слово позволяет сохранить всю историю используемых этапов/команд. Оно требует много памяти и должно использоваться только в очень особых случаях (команды, требующие, чтобы оно указало на них в документации).

По умолчанию эта история не сохранена.

4.9 Ключевое слово MESURE_TEMPS

Ключевое слово MESURE_TEMPS позволяет выбрать уровень детализации вывода CPU, который будет выведен на экран в файле сообщений переносом команд из элементарных вычислений, разрешений линейных систем, разгрузки объектов на диске или связи MPI.

4.9.1 Операнд NIVE_DETAIL

По умолчанию, в конце каждой команды, будет выведена строка типа:

    #1.Resolution.des.systemes.lineaires     CPU. (USER+SYST/SYST/ELAPS): 7.52 0.79 11.22
    # 2.Calculs.elementaires.et.as semblages    CPU. (USER+SYST/SYST/ELAPS): 15.07 0.70 15.77

    ◊NIVE_DETAIL=0              никакого вывода.
                           =1   вывод по умолчанию.
                           =2   более подробный вывод:

    #1.Resolution.des.systemes.lineaires      CPU (USER+SYST/SYST/ELAPS): 7.72 0.82 8.72
    #1.1.Numerotation, .connectivity .de.la.ma trice  CPU (USER+SYST/SYST/ELAPS): 0.21 0.02 0.31
    #1.2.FACTORISATION.SYMBOLIC               CPU (USER+SYST/SYST/ELAPS): 0.58 0.05 1.28
    #1.3.Factorisation.numerique. (ou.precond.)   CPU (USER+SYST/SYST/ELAPS): 6.78 0.73 7.71
    #1.4.Resolution                               CPU (USER+SYST/SYST/ELAPS): 0.15 0.02 0.35
    # 2.Calculs.elementaires.et.as semblages       CPU (USER+SYST/SYST/ELAPS): 28.87 0.64 29.47
    #2.1.Routine.calcul                           CPU (USER+SYST/SYST/ELAPS): 26.61 0.56 26.61
    #2.1.1.Routines.te00ij                        CPU (USER+SYST/SYST/ELAPS): 24.58 0.07 25.78
    #2.2.Assemblages                              CPU (USER+SYST/SYST/ELAPS): 2.26 0.08 3.36
    #2.2.1.Assemblage.matrices                    CPU (USER+SYST/SYST/ELAPS): 2.02 0.06 3.12
    #2.2.2.Assemblage.seconds.membres             CPU (USER+SYST/SYST/ELAPS): 0.24 0.02 0.37

                              =3 более подробный вывод и инкрементный вывод каждого такта.


    Во время параллельных вычислений (MPI)  прошлые связи также выводятся на экран:
    #4 Communications MPI CPU (USER+SYST/SYST/ELAPS): 12.67 0.50 12.68

4.9.2 Операнд MOYENNE

    ◊MOYENNE = 'OUI' отображение статистики
             = 'NON' без отображения статистики 

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

По умолчанию каждое выведенное на экран время добавлено следующим образом:

   #1 Résolution.des.systèmes.linéaires          CPU (USER+SYST/SYST/ELAPS): 0.29 0.00 0.35
          (average….diff. .procs)               CPU (USER+SYST/SYST/ELAPS): 0.30 0.00 0.47
          (variation-type.diff. .procs)         CPU (USER+SYST/SYST/ELAPS): 0.01 0.00 0.05

4.10 Ключевое слово MEMOIRE

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

4.10.1 Операнд TAILLE_GROUP_ELEM

   TAILLE_GROUP_ELEM = tgrel [défaut: 1000]

Этот параметр дает максимальное количество конечных элементов того же типа, которые будет собраны в группе элементов.

Этот параметр влияет на показатели производительности и CPU элементарных вычислений и соединений.

Когда tgrel увеличивается, нужно сэкономить время CPU. С другой стороны, объекты, JEVEUX имеют больше памяти, чем может потребоваться.

4.10.2 Операнд TAILLE_BLOC

   TAILLE_BLOC = tbloc [défaut: 800.]

Этот параметр вычисляет размер блоков матриц, разложенных на множители для solver LDLT. Этот размер есть в kiloR8 (1 kiloR8 = 1024 действительных числа). Этот параметр влияет на число операций ввода/вывода и таким образом за время соединения и разрешения. По умолчанию это значение фиксировано в 800 kiloR8, то есть это 8 записей по умолчанию в файле произвольного доступа, связанного с основным JEVEUX.

4.11 Ключевое слово CATA

Это ключевое слово зарезервировано для разработчиков, оно используется во время компиляции каталогов элементов для получения файла в форме основного JEVEUX.

4.11.1 Операнд FICHIER

   FICHIER = nfic

может принимать только значение ”CATAELEM”

4.11.2 Операнд UNITE

   UNITE = unite

Номер логического модуля связался с каталогами элементов. В процедурах конструкции каталога элементов каждый использует значение 4. Файл fort.4 достигают, начиная с источника каталога, с помощью процедуры Питона.

4.12 Ключевое слово RESERVE_CPU

Позволяет сохранять долю времени CPU, выделенную на работу для окончания выполнения в случае остановки из-за отсутствия времени CPU, обнаруженного командой Aster. Этот механизм полезен только в случае выполнения пакета Code_Aster. Значение этого резерва может быть обозначено в абсолютном значении или в форме процента общего времени CPU. Это значение ограничено значением ключевого слова LIMITS.

Когда ключевое слово, CODE присутствует, т.е. для всех тестов нет регресса, каждый систематически накладывает 10-секундный резерв времени CPU, если ключевое слово RESERVE_CPU отсутствует.

4.12.1 Операнд VALE

Значение, выраженное в секундах, забранных с общего времени CPU, на котором базируются некоторые команды для остановки выполнения.

4.12.2 Операнд POURCENTACE

Процентное отношение, вычитанное из общего времени CPU, на котором базируются некоторые команды для остановки выполнения.

4.12.3 Операнд LIMITS

Максимальное значение резерва времени по умолчанию равно 180 секундам.