
- •Гомогенні та гетерогенні обчислювальні системи
- •В яких спосіб реалізовано взаємодію процесів у 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 програмах
Системи черг на обчислювальних кластерах
Для доступа пользователей к ресурсам кластера используется система очередей 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
Дисковий ввід ти вивід у mpi програмах
Значительная оптимизация, требуемая для эффективности (например, группирование, коллективная буферизация и ввод/вывод на диск), может быть реализована только в том случае, когда система параллельного ввода/вывода обеспечивает интерфейс высокого уровня, поддерживающий разделение файла данных между процессами, и коллективный интерфейс, поддерживающий обмен глобальными структурами данных между памятью процессов и файлами. Кроме того, дальнейшее увеличение эффективности может быть получено за счет поддержки асинхронного ввода/вывода, доступа к большим порциям информации и контроля над физическим расположением ее на устройствах хранения информации (дисках).
Значение, возвращенное MPI_IO, есть номер процесса, который может обеспечивать стандартные для некоторого языка операторы ввода/вывода. Для языка ФОРТРАН это означает, что поддерживаются все операции ввода/вывода (например,OPEN, REWIND, WRITE). Для языка Си это означает, что поддерживаются все ANSI-коды операторов ввода/вывода (например, open, fprintf, lseek).
Если каждый процесс может обеспечивать стандартный для языка ввод/вывод, то будет возвращено значение MPI_ANY_SOURCE. В противном случае, если этот вызывающий процесс может обеспечивать стандартный для языка ввод/вывод, то будет возвращен номер этого процесса. Другими словами, если некоторый процесс может обеспечивать стандартный для языка ввод/вывод, то будет возвращен номер одного такого процесса. Одно и то же значение не обязательно должно возвращаться всем процессам. Если ни один из процессов не может обеспечить стандартный для языка ввод/вывод, то будет возвращено значение MPI_PROC_NULL.