Диссертация (1103257), страница 5
Текст из файла (страница 5)
Поскольку часто именно скоростьработы с памятью является фактором, ограничивающим производительность, рассмотрим их подробнее (см. таблицу 1).Таблица 1: Типы памяти, используемые CUDAназваниедоступ для CPU доступ для GPU скорость работы тип выделениярегистрынетестьвысокаяна нитьlocalнетестьнизкаяна нитьsharedнетестьвысокаяна блокglobalестьестьнизкаяна gridtextureестьтолько чтениевысокаяна gridconstantестьтолько чтениевысокаяна gridТекстурная, регистровая и разделяемая память находятся непосредственно в чипе видеокарты. Глобальная и локальная- на плате, но вне чипа. Помимо этого существует возможность обращаться к оперативной памяти компьютера напрямую, но такая операцияРис. 5: Логическая структура потоков на CUDAимеет некоторые ограничения и редко бывает необходима.Как видно из рисунка (6) регистровая и локальная память разные для каждой нити;разделяемая память общая для всех нитей в пределах блока; текстурная, константнаяРис.
6: Типы памятии глобальная память общие для всех блоков в гриде. Все операции с регистровой памятью выполняет компилятор, т.е. способов явного использования регистровой памяти нет.Операции с текстурной памятью отличаются от операций с остальными видами памятии редко используются для неграфических приложений. Локальная память выделяется вDRAM, если нити не хватает регистровой памяти.Язык CUDA C является производным от языка C- присутствуют дополнительныевстроенные типы и переменные, добавлены спецификаторы функций, которые указывают то, где и каким образом выполняется функция, и переменных, с помощью которыхуказывается тип памяти, который используется переменной.
В то же время есть и ограничения, накладываемые стандартом CUDA C. Так например не поддерживается рекурсия(на GPU) и отсутствует способ взаимодействия между блоками в одном гриде.Для дальнейшего ознакомления с программированием на CUDA можно рекомендовать[23] и [24].4Исследование W-потенциала и задача агрегации4.1Постановка и физический смысл задачи, связь с описаниемагрегацииПроблема агрегации частиц в аэрозолях в последнее время привлекает большой интерес[7, 8, 9, 10, 11, 12]. Это необычное явление связанно с особенностями случайного блуждания частиц аэрозоля в вязкой среде. Было замечено, что процесс слияния этих частицв кластеры значительно ускоряется с ростом вязкости среды, и наоборот, образованиекластеров затруднено, если коэффициент диффузии велик, а вязкость среды мала.
Существенный прогресс в математическом описании этого явления был достигнут в работах[9, 10, 11], где был показан фазовый характер этого явления на основе анализа поведениякоэффициентов экспоненты Ляпунова λ: если этот коэффициент оказывался отрицательным - траектории частиц в аэрозоли в среднем сходились друг к другу, в конце концовобразуя кластер; если же коэффициент ляпуновской экспоненты оказывается больше нуля- траектории расходятся и кластеры не образуются.Численное исследование значений коэффициента экспоненты Ляпунова было проведено на основе анализа решений уравнения диффузии в работах [9, 10, 11]. В работе [12] былпредложен интересный способ получения значений коэффициента λ как функции коэффициента диффузии и коэффициента вязкости.
Метод основан на использовании техникиконтинуальных интегралов в задачах стохастической динамики. В частности было показано, что в простейшем одномерном случае эта задача сводится к задаче о поведенииквантовой частицы в двугорбом потенциале с линейным возмущением, величина которогопропорциональна вязкости. Коэффициент Ляпунова λ получается из квантового среднего для координаты частицы как λ = 1− < x >. Если возмущение равно нулю и ямасимметрична, то средняя координата < x >= 0 и следовательно λ > 0, то есть агрегации нет. Однако, если вязкость растет, линейное возмущение смещает < x > вправо и,следовательно, λ стремится к нулю.
Таким образом, есть такое критическое возмущение,при λ становится отрицательным. Численному анализу соответствующей квантовой задачи о частице в перекошенном W-потенциале монте-карловскими методами посвящена этаглава.4.2Невозмущенный W-потенциал. Основное и первое возбужденное состояниеРассмотрим частицу в потенциале (см (Рис. 11))V (x) =mω 2 (x2 − b2 )2.8b2(79)Обезразмерим задачу при помощи параметров потенциала m, b и ω, сохраняя старые обозначения: x/b → x, aω → a. Поведение системы в безразмерных переменных определяетсяединственным безразмерным параметромβ≡mω 2 b2.~ω(80)На (Рис. 7) показаны характерные траектории для разных значений данного параметра.2=1=510-1-2050100150200Рис. 7: Характерные траектории . Параметры решетки: a = 0.2, N = 1000Подставив (79) в (23) и (39), получим решеточное действие и формулу для плотностивероятности генерируемой в методе тепловой ванны случайной величины xn :S0 =N−1 Xn=0−xn (xn+1 − 2xn + xn−1 ) (x2n − 1)2+2a28a,P (xn ) ∼ exp{−βa(x2n − 1)2 /8} exp{−β[xn − (xn+1 + xn−1 )/2]2 /a}.(81)(82)Вычисление полной энергии можно произвести при помощи теоремы вириала (60).
Онапозволяет получить удобную формулу для энергии основного состояния рассматриваемойсистемы:311(v)E0 = hx4 i − hx2 i + .828(83)Возможно также применить соотношение (67), то есть получить кинетическую энергиюпрямым методом с явным вычитанием расходимости.Энергию первого возбужденного состояния найдем, используя соотношение (58). На(Рис. 8) изображена характерная зависимость корреляторов hx0 xn i от физического времени τ = na. Симметричное поведение объясняется периодическими граничными условиямипо времени.Зависимость энергий основного и первого возбужденного состояний от β приведена на(C)(Рис.
9). С использованием теоремы вириала получены E0(v)(данные (Fig. 10) из [2]) и E0(наши данные). Результаты прямого вычисления энергии основного состояния представ(d)лены точками E0 . E1 (энергия первого возбужденного состояния) на всех трех графикахполучена из (58).Для получения плотности вероятности мы рассматриваем одну и ту же точку по времени (а именно x0 , но в силу трансляционной инвариантности это несущественно) в Nconfразных конфигурациях, а ось x разделяем на отрезки Xk длины ∆.
Далее дискретизованное распределение строим по формулеρ(x)|x∈Xk1=∆Zρ(x)dx =Xk1 Nx∈Xk.∆ Nconf(84)Плотность вероятности основного состояния систем β = 5 β = 1 представлена на (Рис.10).4.3Исследование перекошенного W-потенциалаДобавим в нашу модель "внешнее поле"(см (Рис. 11)):V (x) =mω 2 (x2 − b2 )2− Ex,8b2(85)0=1-2ln<x(0)x(na)>-4-6-8-10-12050100150200Рис. 8: Логарифмы корреляторов . Параметры решетки: a = 1, N = 200которое будем описывать еще одним дополнительным безразмерным параметром:ε≡Eb.mω 2 b2(86)В этом случае основные формулы (23) и (39) будут выглядеть следующим образом:Sε =N−1 Xn=0−xn (xn+1 − 2xn + xn−1 ) (x2n − 1)2+− εxn a,2a28P (xn ) ∼ exp{−βa(x2n − 1)2 /8} exp{−β[xn − (xn+1 + xn−1 + a2 ε)/2]2 /a}.(87)(88)В соответствии с задачей об агрегации, поставим перед собой цель описать поведениесредней координаты hxi при малом внешнем поле ε.
Из общих соображений ясно, что∂hxi hxi|ε→0 =ε + o(ε).(89)∂ε ε→0E(C)0E0,4(v)0E(d)0E(C)1E(v)E10,20,00123456Рис. 9: Энергия основного и первого возбужденного состояний . Параметры решетки:a = 0.2, N = 1000Формализм континуального интеграла позволяет легко вычислить коэффициент перед ε.Все точки xn равноправны и в качестве hxi мы без ограничения общности рассмотримhx0 i. Пользуясь соотношением (20), вычислим:∂hx0 i ∂ε =ε→0∂∂ε!NP−1NP−1Pεxn ax0 exp −β S0 −εxn a/exp −β S0 −n=0n=0confconfP=−1P NPx0 xn βa exp {−βS0 } /conf n=0−−1P NPP=ε→0exp {−βS0 } −conf!2Pxn βa exp {−βS0 }conf n=0x0 exp {−βS0 } /conf= βaNP−1n=0(hx0 xn i − hx0 ihxn i)Pexp {−βS0 }=conf.ε=0Далее мы предполагаем, что корреляции описываются соотношением (57) и размер решетки много больше корреляционной длины.
Тогда сумма в (90) легко берется (при этом(90)=10,50,40,30,20,10,0-2-1012Рис. 10: Плотность вероятности в основном состоянии при β = 5 (параметры решетки:a = 0.2, N = 5000) и при β = 1 (параметры решетки: a = 0.2, N = 1000)благодаря периодическим граничным условиям учитываются корреляции как с последующими, так и с предыдущими моментами времени):!N−1∞XXnhx20 i|ε=0e− lc =(hx0 xn i − hx0 ihxn i)= hx20 iε=0 1 + 2th (1/2lc )n=0n=1(91)ε=0Подставив (91) в (90) и далее в (89) и перейдя к непрерывному пределу a → 0, lc →∞, alc = τc , получим:hxi|ε→0 = 2βτc hx20 iε=0 ε + o(ε).(92)Аналитический результат (92) можно использовать для проверки решеточных вычислений путем сравнения численного значения∂hx0 i∂εc 2βτc hx20 i|ε=0 .