eddy_em: (hram nauki)
[personal profile] eddy_em
Вчера провел небольшую "работу над ошибками" и нашел кое-какие мелкие "ашипки и очепятки", которые приводили к получению черт-те чего, но не того, что было нужно.
res
Все картинки "в куче" (точность поверхности — 50нм). Осторожно, аж полмегабайтная gif'ка!
Пока что я и не думал об оптимизации: просто пробежался по полученной маске зеркала и в каждый "пиксель" с ненулевыми значениями маски "швырнул" N фотонов. N изменял от десяти тысяч до десяти миллионов. Так как заполнение матрицы изображения у меня выполняется только при помощи CPU (ну не работает почему-то у меня в куде атомарный инкремент!), сложно сказать, чьего вклада здесь больше. "Прямая" на графике "время/количество фотонов" получилась какой-то кривоватой. Возможно, еще неплохую роль сыграло то, что экспериментировал я с довольно "кривым" зеркалом, из-за чего от опыта к опыту количество ненулевых пикселей на маске менялось (в среднем их значение плавало около 29400).
Вот по этой табличке
N, тысяч штукT, секунд
1050
5073
100102
200160
500303
1000556
20001128
50002541
100004826
получился такой график:
graph
Время работы программы в зависимости от количества фотонов на пиксель маски
Грубая линейная аппроксимация дала: T = 4.7991·10¯⁴N + 76.438. Многовато будет: есть еще куда оптимизировать.
Так как маска у меня была маленькая (256×256 пикселей), максимальная интенсивность на изображении была несколько (примерно на 35%) меньше количества "фотонов" на пиксель маски. Увеличивать маску я не стал ­— уж очень долго бы процесс подсчета проходил.
Кстати, оказалось, что модель моя кривая: независимо от количества фотонов пики пятен представляли собой вот такое уродство:
2013.02.07_09:38:37
Распределение энергии в моделируемом пятне
при том, что ожидалась форма куда как более гладкая! Сдается мне, что тип float был выбран неудачно. Надо попробовать с double (правда, прощай производительность!).
В общем, работать еще и работать! P.S. код я выложил на сосфорж.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

May 2025

S M T W T F S
    123
45678910
11121314151617
1819202122 2324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 2nd, 2025 02:11 am
Powered by Dreamwidth Studios