Здавалка
Главная | Обратная связь

Функциональность и основные характеристики UPC



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

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

MPI OpenMP PGAS

Рисунок – механизм обращения процессов(потоков) к адресному пространству задачи

 

В отличие от MPI, в языке UPC не реализован механизм передачи данных между вычислительными процессами, поэтому UPC относится к безобменным средствам распараллеливания. При этом, аналогично MPI, UPC использует модель распределенного адресного пространства, суть которой заключается в том, что по умолчанию каждый поток хранит полную копию блока данных. Распараллеливание осуществляется процедурами и программными средствами языка UPC. Для обеспечения целостности, массивы данных объявляются общими (shared), однако каждый процесс(поток) может обращаться только к “своему” подблоку данных, ограниченному собственным адресным пространством, таким образом, параллельная обработка данных на каждом потоке выполняется в защищенном режиме и не требует обязательной синхронизации. Это существенно отличает UPC от потокового программирования на общей памяти с использованием OpenMP интерфейса.

 

Язык программирования UPC обладает следующими характеристиками и функциональными возможностями:

Ø Модели памяти - локальные и разделяемые массивы и данные, методы распределения данных между процессами/потоками.

Ø Указатели и специальные функции и операторы, связанные с потоками и разделяемой памятью: upc_threadof, upc_phaseof, upc_localsizeof, upc_blocksizeof и др.

Ø Разделение работ итерационного типа между процессами/потоками с помощью конструкции upc_forall.

Ø Динамическое выделение памяти.

Ø Коллективные операции.

Ø Методы синхронизации - барьеры (upc_barrier), запирания (upc_lock), ограничители (upc_fence), контроль непротиворечивости памяти (upc_strict и upc_relaxed).

 

Важное замечание: Разработка UPC приложений требует наличия в среде разработки UPC компилятора и реализации языка UPC. Для корректной работы компилятора расширение файлов приложений должно быть .c или .upc

Опции, содержащие mpi обращения необходимы для построения GASNet (Global Address Space Networking) механизма, который обеспечивает поддержку высокопроизводительного сетевого интерфейса в приложениях, использующих технологию PGAS. Технология PGAS является безобменной и не содержит функций передачи данных, однако, при выполнении UPC приложений на распределенной памяти работа с данными, находящимися на распределенных узлах требует использования механизма сетевого доступа. Поэтому, при использовании UPC на вычислительных системах смешанной архитектуры необходима поддержка механизма GASNet.

 

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.