Студопедия

КАТЕГОРИИ:

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


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




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

· взаимодействие приложения с периферийными устройствами (загрузка файлов с жёсткого диска) и с пользователем (запуск приложения, вывод данных на экран);

· размещение исходных данных и результатов в оперативной памяти компьютера;

· проведение непараллельных расчётов;

· копирование необходимых данных в видеопамять, доступную графическому процессору, получение из видеопамяти результатов параллельного расчёта;

· запуск вычислительного ядра на графическом процессоре.

 

Центральный процессор:
Установка значений констант, определяющих: · Характеристики взаимодействия нейтронов с веществом пластины · Количество «связок» и вычислительных потоков, запускаемых на графическом процессоре · Общие параметры генератора случайных чисел
Загрузка (из файла) массива с параметрами, необходимыми для независимой инициализации всех параллельных генераторов случайных чисел
Копирование этого массива с параметрами параллельных генераторов в видеопамять, доступную графическому процессору
Создание в оперативной памяти компьютера массива для сохранения результатов работы графического процессора
Запуск вычислительного ядра на графическом процессоре
После окончания работы графического процессора, копирование результатов расчёта (данных о количестве прошедших через пластину и отразившихся нейтронах, их весах) из видеопамяти в оперативную память компьютера
Окончательная обработка результатов моделирования (формулы (2.14-2.17) и вывод результатов на экран

Рис. 3.2. Схема и последовательность работы центрального процессора при моделировании прохождения нейтронов через пластину

 

Часть программы, исполняемую на графическом процессоре, называют вычислительным ядром. Одно и то же вычислительное ядро одновременно выполняется всеми вычислительными потоками. Оно может включать в себя:

· получение данных из видеопамяти и запись данных в видеопамять;

· обмен данными с разделяемой памятью;

· использование регистров графического процессора;

· арифметические и логические операции, другие встроенные в CUDA математические функции;

· вызовы пользовательских функций (за исключением рекурсивных);

· ветвления программы (операторы условного перехода);

· циклы.

 

Графический процессор, параллельное исполнение каждым из вычислительных потоков:
1. Инициализация генератора случайных чисел с использованием массива, загруженного центральным процессором в видеопамять
2. Присвоение начальных значений координате, весу, и углу отклонения нейтрона
3. Получение случайного значения длины свободного пробега нейтрона
4. Расчёт новой координаты нейтрона по формуле (2.9)
5. Проверка условий выхода нейтрона за пределы пластины
6. Окончание расчёта и переход к пункту 9 в случае, если нейтрон покинул пластину
7. Модификация веса нейтрона по формуле (2.13)
8. Получение случайного значения нового отклонения траектории нейтрона от оси x. Переход к пункту 3.
9. Сохранение в видеопамяти результата моделирования, а именно - следующих данных: · Некоторое значение, показывающее, прошёл нейтрон через пластину, или отразился (например, 1 для прохождения и 0 для отражения); · Конечный вес нейтрона

Рис. 3.3. Схема и последовательность работы центрального процессора при моделировании прохождения нейтронов через пластину

Наш пример по расчёту проницаемости пластины методом Монте-Карло будет включать в себя действия, показанные на схемах рис. 3.2 и рис. 3.3.

Действия, перечисленные на схеме рис. 3.2, выполняются последовательно, одним центральным процессором. Напротив, вычислительное ядро, запускаемое на графическом процессоре, исполняется параллельно большим количеством вычислительных потоков (в нашем примере их будет 32∙128 = 4096). Порядок работы вычислительного ядра показан на рис. 3.3.


Поделиться:

Дата добавления: 2015-09-13; просмотров: 63; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты