
- •Гомогенні та гетерогенні обчислювальні системи
- •В яких спосіб реалізовано взаємодію процесів у mpi програмах?
- •Системи черг на обчислювальних кластерах
- •Доточкові передачі даних в mpi
- •Паралельні області та послідовні області у OpenMp програмі
- •Структура mpi програми
- •Проблеми організації паралельних обчислень
- •Механізми синхронізації у mpi програмах?
- •Мережі з’єднання у високопродуктивних обчислювальних системах
- •Редукційні операції у mpi програмах?
- •Показники ефективності паралельних алгоритмів
- •Передача даних на всі процеси даного комунікатора у mpi програмах?
- •Паралельні та розподілені обчислення
- •Збирання даних зі всіх процесів даного комунікатора у mpi програмах?
- •Функції для роботи з системним таймером в OpenMp
- •Директива #pragma omp parallel. Призначення, опції, приклади застосування Директива parallel
- •Відкладені операції прийому та передачі у mpi програмах? Отложенные запросы на взаимодействие
- •Директива #pragma omp single та #pragma omp master. Призначення, опції, приклади застосування Директива single
- •Директива master
- •Передача повідомлень без блокування у mpi програмах Передача/прием сообщений без блокировки
- •Змінні у OpenMp програмах Классы переменных
- •Передача повідомлень з блокуванням у mpi програмах Передача/прием сообщений с блокировкой
- •Функції omp_get_thread_num() та omp_get_num _thread(). Призначення, опції, приклади застосування
- •Колективні операції з взаємодії процесів у mpi програмах
- •Директива #pragma omp for. Призначення, опції, приклади застосування
- •Індивідуальні операції з взаємодії процесів у mpi програмах
- •Директива #pragma omp sections. Призначення, опції, приклади застосування
- •В яких спосіб реалізовано взаємодію процесів у mpi програмах?
- •Директива #pragma omp task. Призначення, опції, приклади застосування
- •Функції mpi_Wtime(). Призначення, опції, приклади застосування
- •Механізми синхронізації в OpenMp програмах
- •Синхронизация типа atomic
- •Синхронизация типа critical
- •Синхронизация типа barrier
- •Синхронизация типа master
- •Ініціалізація паралельної частини mpi програми
- •Директива #pragma omp barrier. Призначення, опції, приклади застосування
- •Спорідненість та відмінності технології OpenMp та mpi
- •Критичні секції в OpenMp програмах
- •Високопродуктивні обчислювальні системи
- •Взаємні блокування у паралельних програмах
- •Визначення загального числа паралельних процесів у групі та визначення номера процесу в групі у mpi програмах?
- •Моделі паралельних обчислень
- •Грід системи
- •Критичні секції в OpenMp програмах
- •В яких спосіб реалізовано взаємодію процесів у mpi програмах?
- •Механізми синхронізації в OpenMp програмах
- •Синхронизация типа atomic
- •Синхронизация типа critical
- •Синхронизация типа barrier
- •Синхронизация типа master
- •Спорідненість та відмінності технології OpenMp та mpi
- •Директива #pragma omp task. Призначення, опції, приклади застосування
- •Ініціалізація паралельної частини mpi програми
- •Директива #pragma omp for. Призначення, опції, приклади застосування
- •Функції mpi_Wtime(). Призначення, опції, приклади застосування
- •Функції omp_get_thread_num() та omp_get_num _thread(). Призначення, опції, приклади застосування
- •Індивідуальні операції з взаємодії процесів у mpi програмах
- •Директива #pragma omp single та #pragma omp master. Призначення, опції, приклади застосування Директива single
- •Директива master
- •Колективні операції з взаємодії процесів у mpi програмах
- •Директива #pragma omp parallel. Призначення, опції, приклади застосування Директива parallel
- •Передача повідомлень без блокування у mpi програмах Передача/прием сообщений без блокировки
- •Показники ефективності паралельних алгоритмів
- •Передача повідомлень без блокування у mpi програмах Передача/прием сообщений без блокировки
- •Паралельні області та послідовні області у OpenMp програмі
- •Відкладені операції прийому та передачі у mpi програмах? Отложенные запросы на взаимодействие
- •Системи черг на обчислювальних кластерах
- •Дисковий ввід ти вивід у mpi програмах
Гомогенні та гетерогенні обчислювальні системи
Одним из эффективнейших направлений развития вычислительной техники стало построение так называемых многомашинных вычислительных систем (ММВС).
Рис. 1. Структурная схема многомашинной вычислительной системы
ММВС могут быть гомогенными или гетерогенными. Гомогенные системы в самом общем случае строятся на основе одинаковых по типу и составу машин или модулей, которые управляются одинаковыми операционными системами, и объединяются на базе единой коммуникационной технологии. Гетерогенные ММВС могут содержать широкий спектр независимых машин или модулей, разных по составу, типу процессоров, объему памяти, а также соединенных посредством разнообразных коммуникационных технологий. Каждая из ВМ в такой системе в общем случае может работать под управлением собственной оригинальной операционной системы. В подавляющем большинстве практических реализаций ММВС сосредоточенного типа являются гомогенными, а распределенные вычислительные системы – гетерогенными.
В яких спосіб реалізовано взаємодію процесів у mpi програмах?
Наиболее распространенной технологией программирования для параллельных компьютеров с распределенной памятью в настоящее время является MPI. Основным способом взаимодействия параллельных процессов в таких системах является передача сообщений друг другу. Это и отражено в названии данной технологии — Message Passing Interface (интерфейс передачи сообщений). Стандарт MPI фиксирует интерфейс, который должен соблюдаться как системой программирования на каждой вычислительной платформе, так и пользователем при создании своих программ. Современные реализации, чаще всего, соответствуют стандарту MPI версии 1.1. В 1997—1998 годах появился стандарт MPI-2.0, значительно расширивший функциональность предыдущей версии. Однако до сих пор этот вариант MPI не получил широкого распространения и в полном объеме не реализован ни на одной системе. Везде далее, если иного не оговорено, мы будем иметь дело со стандартом MPI-1.1.
Системи черг на обчислювальних кластерах
Для доступа пользователей к ресурсам кластера используется система очередей Torque (клон OpenPBS). Каждый пользователей при добавлении задачи в очередь указывает требования к ресурсам - памяти, процессорному времени и т.д. Планировщик задач Maui оптимизирует использование кластера, стараясь минимизировать время простоя и предоставить разным пользователям равный доступ к ресурсам системы.
Для того, чтобы запустить задачу на выпонение нужно либо написать скрипт с описанием необходимых ресурсов и того, что надо выполнить, либо воспользоваться коммандой qsub с опциями в коммандной строке.
Скрипт с описанием ресурсов и задачи является обычным shell скриптом. Ресурсы указываются в виде коментариев, начинающихся с #PBS. Запуск скрипта осуществляется командой qsub скрипт .
Пример скрипта:
#!/bin/sh
#PBS -l walltime=1:00:00
#PBS -l mem=400mb
#PBS -l nodes=4
#PBS -d /home-anr/medvedeva/test
./a.out
Опция -l отвечает за выделяемые ресурсы. Опция -d - рабочий каталог. ./a.out - вызов программы пользователя.
В скрипте можно пользоваться всеми возможностями оболочки sh, такими как условные операторы, циклы, или даже установить другую оболочку для обработки вашего задания - perl, bash, tcsh.
Соответствующий этому скрипту вызов qsub с аргументами командной строки:
qsub -l walltime=1:00:00 -l mem=400mb -l nodes=4 -d /home-anr/medvedeva/test subrun
Комманда qstat дает возможность узнать о состоянии заданий в очереди.
Для удаления программы из очереди используется комманда qdel