Ru-Board.club
← Вернуться в раздел «Программы»

» Программы для разработки, тестирования, оптических систем

Автор: paparazzo
Дата сообщения: 25.02.2013 10:27
В Zemax 13 при использовании опертандов NSRW и NSTW сбиваются номера детекторов в окнах "Detector viewer".
Т.е. после обновления Merit function - меняется номер детектора в окне и показания. Как этого из бежать, или это глюк программы?
Автор: Cano_J
Дата сообщения: 25.02.2013 19:39

Цитата:
Земакс 2009 года не позволяет штатно использовать больше одного компьютера (только все ядра и процессоры одного компа)

а за счет использования видеокарты можно как-нибудь увеличить скорость вычислений?

Технология NVIDIA® CUDA™
Технология CUDA открывает возможности ядер графического процессора и ускоряет выполнение самых требовательных к ресурсам задач, таких как перекодирование видео, моделирование физических процессов, трассировка луча и другие, обеспечивая невероятный прирост производительности по сравнению с традиционными CPU. (отсюда, возможности и преимущества http://www.nvidia.ru/object/product-geforce-gtx-460-ru.html )
Автор: glazar
Дата сообщения: 25.02.2013 19:40
Cano_J

Конечно можно, надо только софт написать соответствующий.
Автор: Cano_J
Дата сообщения: 25.02.2013 19:55
Вы пробовали это делать? Если да можете поделиться впечатлениями?
Автор: glazar
Дата сообщения: 25.02.2013 20:00
Вы меня слишком оптимистично поняли, я имею в виду, что надо заново земакс переписать:). Потому что алгоритмы совсем другие, они должны быть распараллелены. У меня дипломник расчёт ДОЭ с квантизацией сделал в КУДе, выигрыш в скорости большой. Хотя если по-честному сравнивать с реализацией, оптимизированной под многоядерный проц. и т.д., то результат не такой космический, как казалось сначала. Но всё равно очень ощутимо.
Автор: Cano_J
Дата сообщения: 25.02.2013 20:02
glazar
А цифры ощутимости какой порядок имеют? в 2 раза или в 100?)
И если не секрет в каком институте (или городе)) вы преподаете?)
Автор: Igorr
Дата сообщения: 25.02.2013 20:27
Cano_J

Цитата:
а за счет использования видеокарты можно как-нибудь увеличить скорость вычислений?

Технология NVIDIA® CUDA

Я уже некоторое время посматриваю на OpenCL (у меня сейчас ATI Radeon) для прикручивания этой технологии к собственным программам, но пока вплотную не начал это дело.
А возможно ли осуществлять расчеты на видеокарте в земаксе, не предназначенном для этого, мне пока неясно, но предполагаю, что есть вероятность это как-то реализовать, сделав земакс подчиненной задачей и манипулируя Merit function.
Автор: Cano_J
Дата сообщения: 25.02.2013 22:16
Igorr
а в чем вы пишите собственные программы? и какого назначения?
Автор: Igorr
Дата сообщения: 25.02.2013 22:55

Cano_J
Цитата:
а в чем вы пишите собственные программы? и какого назначения?
В основном на VC++ (MS Visual Studio /MFC - интерфейс) + Fortran (Intel Cluster Studio /IFС + OpenMP - расчетные dlls) + MPI.
Назначения - разного. В настоящее время - для собственного удовольствия - получать численные значения по собственным формулам, относящимся к space-based оптико-электронным изображающим системам с распределенной апертурой (конкретно сейчас это - ОЭС с гипертелескопом в качестве оптической системы).

Автор: glazar
Дата сообщения: 26.02.2013 00:37
Cano_J
У него получилось в 125 раз быстрее, но я отношусь к этому скептически, потому что цпу реализация, с которой он сравнивал была сделана на скорую руку. Кроме этого он сделал также ОпенЦЛ, который можно запускать и на цпу, и на гпу. Так вот выигрыш КУДы на гпу относительно ОпенЦЛ на ЦПУ был скромнее, ускорение меньше 60. И наконец ОпенЦЛ на гпу оказался медленнее Куды на гпу на 30-50%, по-видимому, из-за более слабой ффт библиотеки, которая поставляется амд.

Igorr
У опенцл код менее читаемый, чем у куды. На мой взгляд. Я в программировании совсем не силён, но в Куда коде сориентироваться мог, а опенцл как-то не очень.
Автор: EgorBogat
Дата сообщения: 26.02.2013 02:13
Здравствуйте!
Автор: A_P_V
Дата сообщения: 26.02.2013 06:14

Цитата:
Технология NVIDIA® CUDA™
Технология CUDA открывает возможности ядер графического процессора и ускоряет выполнение самых требовательных к ресурсам задач, таких как перекодирование видео, моделирование физических процессов, трассировка луча и другие, обеспечивая невероятный прирост производительности по сравнению с традиционными CPU. (отсюда, возможности и преимущества http://www.nvidia.ru/object/product-geforce-gtx-460-ru.html )

Уже есть оптический CAD, использующий CUDA - http://www.linzik.hd.ru/manual_rus/manual.htm

Вроде бы он сравнение проводил по быстродействию.
Автор: Cano_J
Дата сообщения: 26.02.2013 17:55
http://www.radiantzemax.com/forum-en/Topic675.aspx
вдруг кто не видел)
интересно почему автор линзика счел стоящим ввести поддержку, а они нет
Автор: DSER
Дата сообщения: 26.02.2013 19:19
Cano_J

Цитата:
http://www.radiantzemax.com/forum-en/Topic675.aspx
вдруг кто не видел)
интересно почему автор линзика счел стоящим ввести поддержку, а они нет


У каждого своя задача, у одного получить грант на разработку с поддержкой CUDA, а у другого, сопровождать коммерческий продукт.

Каждому своё...
Или я не прав ?
Автор: paparazzo
Дата сообщения: 28.02.2013 14:02
Какой операнд в Zemax выводит значение яркости (Luminance) на приемнике?
Или как её в оптимизации задать?

Что-то NSDD не выводит...
Автор: Igorr
Дата сообщения: 28.02.2013 16:29
paparazzo

Цитата:
значение яркости (Luminance) на приемнике

Что-то NSDD не выводит...

NSDD вроде не может выводить яркость (поверхностно-пространственную плотность светового потока, исходящего от поверхности) - только то, что приходит на приемник.
Автор: paparazzo
Дата сообщения: 28.02.2013 17:25
Да, это понятно!
Но Detector Viewer ее показывает (с определенными ограничениями). Вот думаю как занести в оптимизатор....
Автор: GlozArino
Дата сообщения: 28.02.2013 19:10
[more] Здравствуйте, уважаемые! После прочтения некоторых моментов данного форума у меня сложилось положительное впечатление о ваших возможностях в расчете оптических систем. Сразу говорю в оптике не силен. Я студент 5 курса. Начался диплом! Специализируюсь на выращивании монокристаллов и чудодействиях по превращению их в поликристаллическую структуру с введение различных добавок, которые влияют на опт. и мех. свойства ну и в дальнейшем получения световодов и т.д и т.п. Ну, к делу! Нужно рассчитать габариты линзы или какой либо системы линз(вроде именуется «световой пушкой». Так вот, нужно чтобы излучение из CO2 лазера(диаметр отверстия 1мм, рабочая длина волны 10,6, параллельное излучение) можно было сфокусировать через линзу или (повторяюсь) систему линз в пятно (диаметр 0.1 мм, фокусное расстояние 56мм). Проблема в том (мне так кажется) линзы будем изготавливать сами (коэффициент преломления материала n=2.4, пропускание в диапазоне дальнего ИК) и нужно рассчитать радиус кривизны линзы и вид поверхности наверно.


З.Ы. Не судите строго, если вас смешит, что-то написанное мною, ни разу не сталкивался с подобным, может, посоветуете с чего хотя бы начинать.
[/more]
Автор: Igorr
Дата сообщения: 28.02.2013 19:11
paparazzo
Цитата:
Вот думаю как занести в оптимизатор....
Зависит от задачи, конечно. Я, например, использовал среднее отклонение от средней величины flux/area по зонам приемника.
Автор: Cano_J
Дата сообщения: 28.02.2013 22:00
Подскажите пожалуйста, можно ли макросом (после его выполнения) или еще как перевести компьютер в спящий режим?
A_P_V, Igorr спасибо
Автор: Igorr
Дата сообщения: 28.02.2013 22:51

Цитата:
или еще как перевести компьютер в спящий режим?

Напр. использовать WinAPI "SetSuspendState(...)" или Windows "powrprof.dll" в своей dll.
Автор: A_P_V
Дата сообщения: 01.03.2013 05:29

Цитата:
Подскажите пожалуйста, можно ли макросом (после его выполнения) или еще как перевести компьютер в спящий режим?

я использую программу PowerOff. Можно выключать по времени или по простою процессора (уровень загрузки за определенный период меньше заданного).
Автор: GlozArino
Дата сообщения: 01.03.2013 12:12
[more] Здравствуйте, уважаемые! После прочтения некоторых моментов данного форума у меня сложилось положительное впечатление о ваших возможностях в расчете оптических систем. Сразу говорю в оптике не силен. Я студент 5 курса. Начался диплом! Специализируюсь на выращивании монокристаллов и чудодействиях по превращению их в поликристаллическую структуру с введение различных добавок, которые влияют на опт. и мех. свойства ну и в дальнейшем получения световодов и т.д и т.п. Ну, к делу! Нужно рассчитать габариты линзы или какой либо системы линз(вроде именуется «световой пушкой». Так вот, нужно чтобы излучение из CO2 лазера(диаметр отверстия 1мм, рабочая длина волны 10,6, параллельное излучение) можно было сфокусировать через линзу или (повторяюсь) систему линз в пятно (диаметр 0.1 мм, фокусное расстояние 56мм). Проблема в том (мне так кажется) линзы будем изготавливать сами (коэффициент преломления материала n=2.4, пропускание в диапазоне дальнего ИК) и нужно рассчитать радиус кривизны линзы и вид поверхности наверно.


З.Ы. Не судите строго, если вас смешит, что-то написанное мною, ни разу не сталкивался с подобным, может, посоветуете с чего хотя бы начинать. [/more]
Автор: Barabek
Дата сообщения: 01.03.2013 14:02

Цитата:
Ну конечно, цикл на одном от 0 до 15 а на другом - от 16 до 30! Ясно выразился?


Не совсем. Поподробнее, пожалуйста. И не обязательно для земакса. Может можно для других пакетов? Т.е. имеется 2 компа с установленным софтом. Задача сделать нано/микрокластер с целью ускорения оптимизации путём распараллеливания расчётов. Можно ли это сделать штатными программными средствами или необходимо писать какой-то диспетчер, который будет раскидывать данные по процессорам, число которых 2 + 4? И, вообще, какие процедуры хорошо распараллеливаются?
Автор: paparazzo
Дата сообщения: 01.03.2013 14:19

Цитата:
И, вообще, какие процедуры хорошо распараллеливаются?


Трассировка лучей, например! Дискретное преобразование Фурье тоже.
Да много таких задач, думаю. особенно где нужно считать большое количество независимых циклов.
Автор: Barabek
Дата сообщения: 01.03.2013 15:24

Цитата:
Трассировка лучей, например!


Т.е. алгоритм примерно такой:

1) Задаём исходную схему - пусть будет простейший триплет с фокусным расстоянием 100 мм, угловым полем 2w = 40 и отверстием 1:2. Зададим, даже, кривизны всех поверхностей, кроме первой, нулевыми (т.е. 2 и 3 линзы - плоскопараллельные пластины).
2) Конструируем оценочную функцию, куда включаем все конструктивные ограничения (на воздушные промежутки, толщины и диаметры линз и т.п.) и, собственно, чего мы хотим от системы - фокус, пятно, ЧКХ и т.п.
3) У нас есть 4 вещи - а) первоначальная - очень и очень грубая система; б) оценочная функция с желаемыми характеристиками системы; в) разрешённые переменные; г) собственно n (в данном случае n = 6) процессоров, стоящих "под парами" и готовых к вычислениям.

А теперь вопрос: как организовать взаимодействие этого всего, чтобы на каждом из процессоров проводились уникальные расчёты, т.е. не получилась ситуация, что на разных процессорах обрабатываются одинаковые данные. Иными словами, как я это понимаю, нужен некий диспетчер, который будет раскидывать поступающие на него данные на разные процессоры, в зависимости от их загрузки, принимать обратно (с процессоров) вычисленные значения оценочной функции, сравнивать их и, принимая за оптимум функцию с минимальным (или максимальным, неважно, в зависимости от того, как задана сама функция) значением, изменять разрешённые переменные и повторять цикл заново. Как этот диспетчер сконструировать? Писать свой код? Или может у меня слишком сложное понимание и всё намного проще?
Автор: wyndyday
Дата сообщения: 01.03.2013 15:31
GlozArino

Почитайте про Гауссовские пучки и как они фокусируется. Пятно 0.1 мм относительно очень большое. Может надо будет построит телескоп чтоб получить такой размер на такой дистанции (56мм). Может быт хватит простых линз из каталога.
Автор: Igorr
Дата сообщения: 01.03.2013 15:35
Barabek

Цитата:
Как этот диспетчер сконструировать? Писать свой код?

Речь о земакс или вообще? Если первое, то см. http://forum.ru-board.com/topic.cgi?forum=5&topic=35157&start=1900#2; если второе, то см. OpenMP, MPI, OpenCL, C++ AMP и т.п.
Автор: Barabek
Дата сообщения: 01.03.2013 15:45
Ещё проще выражусь: есть несколько глобальных проектов (начиная от расшифровки генома и заканчивая поиском внеземных форм жизни), которые обрабатывают поступающую информацию путём объединения частных компьютеров в единый суперкластер. На каждом из компьютеров данного суперкластера установлена маленькая подпрограмма, отвечающая за приём и выдачу результатов во вне. Этакий диспетчер. Как бы создать такой диспетчер для решения задач оптимизации, когда установил подпрограмму на все имеющиеся в распоряжении компьютеры (даже без установленного спец.софта) и пусть эта сеть считает то, что нам нужно. А сам спец. софт можно только на одном - главном компьютере установить.

Добавлено:

Цитата:
если второе, то см. OpenMP, MPI, OpenCL, C++ AMP


В том то и дело, что в параллельном программировании я не спец. Но меня эта задача очень интересует и интересно, для начала, создать очень и очень простую сеть, которая бы могла что нибудь простое посчитать, тот же триплет или даже дублет. Чтобы хоть какой-то опыт приобрести. А потом задания уже и усложнять можно.
Автор: megabyte1
Дата сообщения: 01.03.2013 15:59
посоветуйте программу несложную для расчёта оптики, преломления лучей
чтобы не надо было в ней разбираться три года, а, чем интуитивно понятнее, тем лучше
и, возможно ли, чтобы можно было задать требуемый ход луча, под который "создастся" оптика, а не наоборот?
и, желательно, чтобы, визуально конструировалось, как в векторном редакторе, без знания формул и специфических терминов

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378

Предыдущая тема: Maxthon 3.x - быстрый и мощный браузер


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.