Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VOPROSY_Kolesnikov.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
613.39 Кб
Скачать
  1. Функції для роботи з системним таймером в OpenMp

В OpenMP предусмотрены функции для работы с системным таймером.

Функция omp_get_wtime() возвращает в вызвавшей нити астрономическое время в секундах (вещественное число двойной точности), прошедшее с некоторого момента в прошлом. Если некоторый участок программы окружить вызовами данной функции, то разность возвращаемых значений покажет время работы данного участка. Гарантируется, что момент времени, используемый в качестве точки отсчета, не будет изменён за время существования процесса. Таймеры разных нитей могут быть не синхронизированы и выдавать различные значения. Функция omp_get_wtick() возвращает в вызвавшей нити разрешение таймера в секундах. Это время можно рассматривать как меру точности таймера. Примеры иллюстрирует применение функций omp_get_wtime() и omp_get_wtick() для работы с таймерами в OpenMP. В данных примерах производится замер начального времени, затем сразу замер конечного времени. Разность времён даёт время на замер времени. Кроме того, измеряется точность системного таймера.

Работа с системными таймерами на языке Си

#include <stdio.h>

#include <omp.h>

int main(int argc, char *argv[])

{ double start_time, end_time, tick;

start_time = omp_get_wtime();

end_time = omp_get_wtime();

tick = omp_get_wtick();

printf("Время на замер времени %lf\n", end_time-start_time);

printf("Точность таймера %lf\n", tick); }

  1. Дисковий ввід ти вивід у MPI програмах

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

Значение, возвращенное MPI_IO, есть номер процесса, который может обеспечивать стандартные для некоторого языка операторы ввода/вывода. Для языка ФОРТРАН это означает, что поддерживаются все операции ввода/вывода (например,OPEN, REWIND, WRITE). Для языка Си это означает, что поддерживаются все ANSI-коды операторов ввода/вывода (например, open, fprintf, lseek).

Если каждый процесс может обеспечивать стандартный для языка ввод/вывод, то будет возвращено значение MPI_ANY_SOURCE. В противном случае, если этот вызывающий процесс может обеспечивать стандартный для языка ввод/вывод, то будет возвращен номер этого процесса. Другими словами, если некоторый процесс может обеспечивать стандартный для языка ввод/вывод, то будет возвращен номер одного такого процесса. Одно и то же значение не обязательно должно возвращаться всем процессам. Если ни один из процессов не может обеспечить стандартный для языка ввод/вывод, то будет возвращено значение MPI_PROC_NULL.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]