Зимняя школа 2010 «Движение заряженных частиц в магнитной ловушке» Блохин Олег Захаров Максим Калишев Глеб Удалова Татьяна Боголепов Денис Исследование.

Презентация:



Advertisements
Похожие презентации
Процессор УПРОЩЕННАЯ ЛОГИЧЕСКАЯ СХЕМА ОДНОЯДЕРНОГО ПРОЦЕССОРА Информационная магистраль (шина) Шина данных (8, 16, 32, 64 бита) Шина адреса (16, 20, 24,
Advertisements

Распараллеливание построения среднеквадратических приближений сплайнами восьмого порядка аппроксимации Полуянов С.В.
1 Раздел 8. Магнитное поле. Для работы с тестами скорректируйте Word: Сервис Макрос Безопасность Низкая ТЕМА 3. Магнитные свойства вещества. ТЕМА 2. Методы.
Сравнение производительности NVidia NPP и Intel IPP Участники: Калишев Глеб Майоров Алексей Руководитель: Половинкин Алексей Участники: Калишев Глеб Майоров.
ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ.
Центральный процессор (ЦП, или центральное процессорное устройство ЦПУ; англ. central processing unit, сокращенно CPU, дословно центральное обрабатывающее.
Assignment 4.1 Решение уравнения Пуассона Е.Е. Перепелкин 6 апреля 2010
V Всероссийская конференция молодых ученых А. А. Давыдов ИССЛЕДОВАНИЕ ВОЗМОЖНОСТЕЙ УСКОРЕНИЯ РАСЧЕТА ЗАДАЧ АЭРО-ГАЗОДИНАМИКИ С ПОМОЩЬЮ ВЕКТОРНЫХ СОПРОЦЕССОРОВ.
Крутильные весы: 1.Незаряженная сфера 2.Неподвижная заряженная сфера 3.Легкий изолирующий стержень 4.Упругая нить 5.Бумажный диск 6.Шкала.
Сравнение возможностей инструментария разработки программного обеспечения графических процессоров.
Лекция 3 Кинематический анализ рычажных механизмов Задачей кинематического анализа рычажных механизмов является определение кинематических параметров и.
Использование CUDA в расчете динамики пучка С.Б. Ворожцов, В.Л. Смирнов, Е.Е. Перепелкин Дубна, ОИЯИ 6 апреля 2010
1 Виртуальный полигон для исследования морских объектов в экстремальных условиях эксплуатации Безгодов А.А. СПбГУ ИТМО.
2 из 21 Введение в Cache-oblivious алгоритмы: –Определение Cache-oblivious алгоритмов. –Модель памяти компьютера. –Cache-oblivious модель –Примеры сache-oblivious.
Л АБОРАТОРНАЯ РАБОТА 6 Тема: Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений.
Физический диктант по теме: «Магнитное поле». Дайте определение магнитного поля и назовите его свойства.
1 ДИНАМИКА МАТЕРИАЛЬНОЙ СИСТЕМЫ МАТЕРИАЛЬНАЯ СИСТЕМА. ТЕОРЕМА ОБ ИЗМЕНЕНИИ КОЛИЧЕСТВА ДВИЖЕНИЯ.
Сила Лоренца Сила Лоренца – сила, с которой магнитное поле действует на движущуюся электрически заряженную частицу. 1) Точка приложения – движущаяся заряженная.
ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ. Задача Коши.
Уравнение Хоуарта.. Введение. При движении тела в жидкости или, что равносильно, при обтекании тела жидкостью, частицы жидкости прилипают к поверхности.
Транксрипт:

Зимняя школа 2010 «Движение заряженных частиц в магнитной ловушке» Блохин Олег Захаров Максим Калишев Глеб Удалова Татьяна Боголепов Денис Исследование производительности OpenCL и OpenMP

Часть 1 Постановка задачи

Рассматривается система N взаимодействующих точечных зарядов в магнитном поле Сила Кулона: F ba = k q a q b (r a – r b ) / (r a – r b ) 3 Введение Нижний НовгородIntel Winter School – qaqa qbqb rbrb rara F ba

Действие магнитного поля на частицу определяется Силой Лоренца: L = q [ v × B ] Введение Нижний НовгородIntel Winter School – v q < 0 q > 0 B

Эволюция системы N взаимодействующих зарядов описывается дифференциальными уравнениями: dr i / dt = v i dv i / dt = q i q j (r j – r i ) / |r j – r i | 3 + q i [ v × B ] Заряды, положения и скорости частиц в начальный момент считаются известными Необходимо найти положения и скорости всех зарядов в последующие моменты времени Магнитное поле задаётся аналитически Введение Нижний НовгородIntel Winter School – j

В качестве магнитного поля B рассматривается теоретическая магнитная ловушка: φ = q ( 1 / r / r - ) B = grad ( φ ) = φ Введение Нижний НовгородIntel Winter School – r+r+ r-r- +q -q

Магнитные поля Нижний НовгородIntel Winter School – 20107

Часть 2 Численный метод

Рассчитываются взаимодействия между всеми парами заряженных частиц При тесных сближениях частиц растёт погрешность вычислений Чтобы частично сгладить ситуацию, добавим в знаменатель величину ε 2 > 0 a ( r i ) q i q j ( r j – r i ) / ( |r j – r i | 2 + ε 2 ) 3/2 + q i [ v × B ] Равенство уже не выполняется, но суммирование можно производить по всем индексам Метод расчёта Нижний НовгородIntel Winter School – j

Состояние i – ой частицы системы: Y i = ( r i v i ) Исходная система примет вид: Метод расчёта Нижний Новгород Intel Winter School –

Используются методы прямого интегрирования: Метод расчёта Нижний НовгородIntel Winter School – Название методаЗначение в следующей точке Ошибка на каждом шаге Эйлера Y i+1 = Y i + F(Y i ) h O(h 2 ) Рунге-Кутты 2-го порядка Y i+1 = Y i + h F(Y i + h F(Y i ) / 2) O(h 3 )

Часть 3 Исследование теоретической производительности

Основную долю расчётов занимает функция вычисления ускорения: for ( int i = 0; i < N; ++i ) { // Calculate acceleration caused by particle j on particle I float3 r = p - p i ; //3 flops float dist = dot ( r, r ); // 5 flops float invDist = inversesqrt ( dist + SOFTENING ); //2 flops float invDistCube = invDist * invDist * invDist; //2 flops float s = q * q i * invDistCube; //2 flops // accumulate effect of all particles acc += s * r; //6 flops } Метод расчёта Нижний НовгородIntel Winter School – На одну вызов функции ускорения 20 N flops На одну итерацию по методу Эйлера 20 N 2 flops

Число операций растёт пропорционально квадрату количества частиц: Метод расчёта Нижний НовгородIntel Winter School – Число частиц2K = K = K = K = 2 14 Число операций (MFLOPS) 83,89335,541342,185368,7

Рассчитываем количество тактов на каждую арифметическую операцию for ( int i = 0; i < N; ++i ) { // Calculate acceleration caused by particle j on particle i float3 r = p - p i ; //3 cycles float square = dot ( r,r ); // 5 cycles float invDist = inversesqrt ( distSqr + SOFTENING ); //5 cycles float invDistCube = invDist * invDist * invDist; //2 cycles float s = q * q i * invDistCube; //2 cycles // accumulate effect of all particles acc += s * r; //3 cycles } Всего: 20 тактов Теоретическая оценка производительности на GPU Нижний НовгородIntel Winter School –

Технические характеристики графического ускорителя NVIDIA GeForce 8800 GTS: Теоретическая оценка производительности на GPU Нижний НовгородIntel Winter School – Число потоковых процессоров Ширина шины памяти Частота потоковых процессоров Частота памяти реальная / эффективная бит500 / 1200 МГц800 МГц / 1900 МГц

Чистое время вычислений [Число ядер] [Частота процессора] [Число частиц] [Число тактов на частицу] итераций в секунду Теоретическая оценка производительности на GPU Нижний НовгородIntel Winter School –

Рассчитываем количество тактов: for ( int i = 0; i < N; ++i ) { // Calculate acceleartion caused by particle j on particle i float3 r = = p - p i ; //1 cycles float dist = dot ( r, r ); //2 cycles float invDist = inversesqrt ( dist + SOFTENING ); //4 cycles float invDistCube = invDist * invDist * invDist; //2 cycles float s = q * q i * invDistCube; //2 cycles // accumulate effect of all particles acc += s * r; //2 cycles } Всего: 13 тактов Теоретическая оценка производительности на CPU Нижний НовгородIntel Winter School –

Технические характеристики CPU Intel Core 2 Duo: Теоретическая оценка производительности на CPU Нижний НовгородIntel Winter School – Число ядерЧастота ядра МГц

Чистое время вычислений: [Число ядер] [Частота ядра] [Число частиц] [Число тактов на частицу] × × кадров в секунду Теоретическая оценка производительности на CPU Нижний НовгородIntel Winter School –

Часть 4 Исследование фактической производительности OpenCL и OpenMP

Фактическая оценка производительности Нижний НовгородIntel Winter School – Компилятор Численный метод Технология Итераций в сек (FPS) Производит. (GFLOPS) Intel C/C++ Compiler ЭйлераOpenCL Intel C/C++ Compiler Рунге-Кутты OpenCL Intel C/C++ Compiler ЭйлераOpenMP Intel C/C++ Compiler Рунге-КуттыOpenMP0.66.4

Фактическая оценка производительности Нижний НовгородIntel Winter School – Компилятор Численный метод Технология Итераций в сек (FPS) Производит. (GFLOPS) MS C/C++ Compiler ЭйлераOpenCL MS C/C++ Compiler Рунге-КуттыOpenCL MS C/C++ Compiler ЭйлераOpenMP MS C/C++ Compiler Рунге-КуттыOpenMP0.11.0

Фактическая оценка производительности Нижний НовгородIntel Winter School – OpenCL и OpenMP 16K частиц на CPU (Intel Compiler 11) 1.2 итераций в секунду = 6.4 GFLOP / sec

Часть 5 Визуализация результатов средствами OpenGL

Результаты Нижний НовгородIntel Winter School –

Вопросы