Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Общая оценка кодов






Если рассматривать прецизионные коды, то на данный момент можно заметить только лишь тот факт, что каждый код имеет свои достоинства и недостатки. На фоне MCNP и MCU-PD моделирующий код Serpent выглядит довольно слабо(проблемы с памятью, только один метод расчетов), однако следует учитывать еще и доступность и открытость кодов. MCNP и MCU-PD полностью закрытые коды, и крайне сложно найти их исходники, в то время как при покупке Serpent можно получить исходный код и самому устранить погрешности; кроме того, он позволяет проводить расчет выгорания. MCNP является всемирно признанным эталоном, на который равняются при создании прецизионных кодов: у него огромное количество различных методов понижения дисперсии, отработанных и проверенных временем; хорошая поддержка; высокая точность работы. Из недостатков MCNP: доступность(цена и просто возможность купить). MCU-PD обладает теми же достоинствами и недостатками, однако при этом он позволяет считать выгорание и подготавливать полностью библиотеки данных для второго этапа.

Из теплогидравлических кодов рассматривались DYN3D и ATHLET. Код DYN3D вполне себе самодостаточен, насколько это возможно для второго этапа, в то время как ATHLET редко применяется отдельно от других теплогидравлических кодов ввиду своей специфики, а именно моделирования только теплогидравлической составляющей, без полноценного моделирования выгорания и ядерных процессов внутри АЭС. Обычно для полноценного моделирования теплогидравлических процессов с течением времени используют связку DYN3D/ATHLET или БИПР8/ATHLET. При этом все необходимые данные подготавливают с помощью SERPENT или MCU-PD.

 

 

Глава 3. Технология MPI, её реализации и применение на суперкомпьютерах и кластерах

MPI

MPI(Message Passing Interface) — программный интерфейс(API), предназначенный для передачи данных между параллельно работающими программами. Разработан с целью упростить передачу данных между узлами суперкомпьютера или кластера в случае, когда затраты на передачу слишком велики.

Распространяется в виде набора динамических библиотек с реализациями для различных языков(C++, Python, Java и др.) и приложений наподобие Matlab, а также всех необходимых для запуска приложений программ-агентов(«mpirun», «mpiexec»). Позволяет проводить обмены данных типа «точка» - «точка» и «коллективная коммуникация».

Основным понятием в MPI является сообщение, под которым подразумевается передача любого рода данных. MPI предоставляет удобный интерфейс и свою виртуальную топологию, упрощая создание системы передачи данных между узлами. Прием сообщения и передача его синхронизированы и индивидуальны, что позволяет не беспокоиться о потерянных или неверно интерпретированных данных при передаче. Передача происходит вызовом соответствующей процедуры, на узлах: если узел передает, то передачи; если принимает, то приема. Если при этом вызов на прием/передачу никто не принял, то один или более узлов могут просто «встать на паузу» до того момента, пока их искомый узел передачи/приема не откликнется.

Помимо простой передачи сообщений, MPI позволяет запускать по несколько потоков на одном узле(или как их называют – ноде), однако чаще всего запускается не более одного потока для ускорения работы, т.к. основное предназначение MPI в использовании его в системах с разделенной памятью, таких как кластеры. В то же время MPI часто используется и в системах с объединённою памятью для упрощения распараллеливания задачи.

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

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

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


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал