Предложение по увеличению производительности и скорости расчётов экологических программ

В этом форуме вы можете задать любые вопросы по программным продуктам серии "Эколог" (расчет рассеивания, расчет шума, ПДВ, НДС и т.д.), высказать ваши мнения, обсудить с нами и друг с другом любые связанные с темой форума проблемы. Приветствуются любые идеи, предложения, пожелания, критические замечания.

Автор темы
timofeev
Новичок
Сообщения: 11
Зарегистрирован: 26 июл 2012, 15:43

Предложение по увеличению производительности и скорости расчётов экологических программ

Сообщение timofeev »

В настоящий момент при пользовании программными продуктами Фирмы Интеграл – УПРЗА «Эколог» и "Эколог-Шум",
отмечается значительное время их работы при задании для расчётов расчётных сеток с большим количеством
расчётных узлов. Это приводит к трудностям в разработке проектов, имеющих такую особенность –
замедляет разработку проекта, что, в своей очереди немедленно сказывается получаемой от
разработки прибыли – это приводит к её сокращению.
В то же время уже существуют опробованные практически методы решения данной проблемы, которые позволяют
снизить остроту проблемы, применив современную вычислительную технику и методы вычислений.
К сожалению, эти методы и техника не поддерживаются текущими версиями программ, поэтому,
предлагается их внедрить в программные продукты Фирмы Интеграл – УПРЗА «Эколог» и "Эколог-Шум".
Внедрение данных новшеств приведёт к сокращению времени расчётов и, как следствие,
к ускорению процесса разработки больших экологических проектов, росту прибыли проектных организаций
и производителей программ для экологических расчётов, поддерживающих данные возможности.
Технологии, предлагаемые к внедрению
GPGPU (также GPGP, GP²U, англ. General-purpose computing for graphics processing units,
неспециализированные вычисления на графических процессорах) — техника использования
графического процессора видеокарты, который обычно имеет дело с вычислениями только для
компьютерной графики, чтобы выполнять расчёты,
в приложениях для общих вычислений, которые обычно проводит центральный процессор. Это позволяет
разработчикам программ использовать потоковые процессоры для не графических вычислений [1].
Применение такой технологии в экологических программах значительно ускорит выполняемые вычисления.
Спойлер
• CUDA — технология GPGPU, позволяющая программистам реализовывать алгоритмы,
выполнимые на графических процессорах ускорителей GeForce восьмого поколения и новее
(GeForce 8 Series, GeForce 9 Series, GeForce 200 Series, GeForce 300 Series, GeForce 400 Series, GeForce 500 Series,
GeForce 600 Series, GeForce 700 Series), Nvidia Quadro и Nvidia Tesla компании Nvidia.
Технология CUDA разработана компанией Nvidia.
• DirectCompute — вычислительный шейдер (англ. Compute Shader).
• OpenCL является языком программирования задач, связанных с параллельными вычислениями
на различных графических и центральных процессорах.
• AMD FireStream — технология GPGPU, позволяющая программистам реализовывать алгоритмы,
выполнимые на графических процессорах ускорителей ATI.
• OpenACC (группа 4 производителей)
• C++ AMP (Microsoft)
Параллельные вычисления — это физические компьютерные, а также программные системы,
реализующие тем или иным способом параллельную обработку данных на многих вычислительных узлах [2].
Например, для быстрой сортировки массива на двухпроцессорной (двухядерной) машине
можно разделить массив (РАСЧЁТНЫХ ТОЧЕК ПРОГРАММ ДЛЯ РАСЧЁТА ШУМА, РАССЕИВАНИЯ)
пополам и сортировать каждую половину на отдельном процессоре.
Учитывая, что современные процессоры – в основном многоядерные, это опять таки приведёт
к ускорению работы с программами УПРЗА и "Эколог-Шум".
Спойлер
1.1 Типичные задачи, допускающие параллельные вычисления
• map — выполнение одной и той же функции над каждым элементом массива входных данных,
с получением равного по мощности массива результатов вычисления. Например, расчёты значений шума
или концентрации в каждой точке.
• reduce — выполнение одной и той же функции для добавления вклада каждого элемента
входных данных в одно итоговое значение. Например, расчёты значений ВКЛАДОВ шума или
концентрации в каждой точке.
1.2 Программные инструменты параллельных вычислений
• OpenMP — стандарт интерфейса приложений для параллельных систем с общей памятью.
• POSIX Threads — стандарт реализации потоков (нитей) выполнения.
• Windows API — многопоточные приложения для C++.
• PVM (Parallel Virtual Machine) позволяет объединить разнородный (но связанный сетью)
набор компьютеров в общий вычислительный ресурс.
• MPI (Message Passing Interface) — стандарт систем передачи сообщений между параллельно
исполняемыми процессами.
Распределённые вычисления — способ решения трудоёмких вычислительных задач с использованием
нескольких компьютеров, чаще всего объединённых в параллельную вычислительную систему [3].
Распределённые вычисления применимы также в распределённых системах управления.
Смысл использования такой системы в том, чтобы задействовать все уже имеющиеся
у организации компьютеры (компьютерный парк организации), объединённые сетью, для расчётов
в программах УПРЗА и "Эколог-Шум", не приобретая дополнительной техники.
Последовательные вычисления в распределённых системах выполняются с учётом одновременного
решения многих задач, что позволит использовать задействованные компьютеры для повседневных задач.
Примеры успешной реализации подобных систем
Наилучшим образом работоспособность идеи доказывается… её практическим воплощением в жизнь,
выполненным кем то другим. В настоящий момент существует множество - десятки проектов, успешно
использующих распределённые вычисления, в том числе и с привлечением добровольцев [4, 5].
Спойлер
1. Распределённые вычисления. [В Интернете] https://ru.wikipedia.org/wiki/%D0%A0%D0 ... 0%B8%D1%8F.
2. Параллельные вычислительные системы. [В Интернете] https://ru.wikipedia.org/wiki/%D0%9F%D0 ... 0%B8%D1%8F.
3. General-purpose computing for graphics processing units. [В Интернете] https://ru.wikipedia.org/wiki/GPGPU.
4. BOINC http://www.boinc.ru/projects/project.aspx
5. Добровольные вычисления https://ru.wikipedia.org/wiki/%D0%94%D0 ... 0%B8%D1%8F

VadimV

Звезда за помощь Медаль за помощь
Заслуженный эколог
Сообщения: 2287
Зарегистрирован: 09 июн 2008, 04:20
Награды: 2
Благодарил (а): 312 раз
Поблагодарили: 319 раз

Re: Предложение по увеличению производительности и скорости расчётов экологических программ

Сообщение VadimV »

А зачем задавать столь большое количество узлов? А что мешает поставить расчет на ночь?
Или у вас настолько огромные площадки?

nightroad

Медаль за помощь
Эколог
Сообщения: 396
Зарегистрирован: 21 май 2010, 10:16
Награды: 2
Откуда: Далеко
Благодарил (а): 42 раза
Поблагодарили: 144 раза

Re: Предложение по увеличению производительности и скорости расчётов экологических программ

Сообщение nightroad »

На самом деле проблематика имеет место быть. Например, расчет площадки 3,5 на 3,5 км при шаге 25 на 25 м занимает порядка 25-30 минут. Как мне кажется - необходимо создавать расчётные программы на современных языках программирования с изначальным внедрением перечисленных выше технологий. А для этого надо целую команду талантливых программистов..

Yasva

Медаль за развитие Медаль за помощь
Эколог
Сообщения: 231
Зарегистрирован: 08 окт 2013, 22:00
Награды: 2
Откуда: Санкт-Петербург
Благодарил (а): 17 раз
Поблагодарили: 92 раза

Re: Предложение по увеличению производительности и скорости расчётов экологических программ

Сообщение Yasva »

timofeev, большинство пользователей делает ПДВшечки на гаражные кооперативчики на двухядерных нетбуках без отдельного GPU и проблем не знают. Предложите им вложиться хотя бы в хорошую видеокарту, не говоря уж про само ПО, ради того чтобы рассеивать коровники не 5-10 минут, а реал-тайм. Сразу увидите коммерческие перспективы вашего бизнес-предложения.

VadimV

Звезда за помощь Медаль за помощь
Заслуженный эколог
Сообщения: 2287
Зарегистрирован: 09 июн 2008, 04:20
Награды: 2
Благодарил (а): 312 раз
Поблагодарили: 319 раз

Re: Предложение по увеличению производительности и скорости расчётов экологических программ

Сообщение VadimV »

nightroad писал(а): На самом деле проблематика имеет место быть. Например, расчет площадки 3,5 на 3,5 км при шаге 25 на 25 м занимает порядка 25-30 минут. Как мне кажется - необходимо создавать расчётные программы на современных языках программирования с изначальным внедрением перечисленных выше технологий. А для этого надо целую команду талантливых программистов..
А зачем такой шаг при такой площадке?

Аватара пользователя

Денис_1990

Медаль за помощь
Эколог
Сообщения: 405
Зарегистрирован: 04 июн 2015, 12:17
Награды: 1
Благодарил (а): 33 раза
Поблагодарили: 91 раз

Re: Предложение по увеличению производительности и скорости расчётов экологических программ

Сообщение Денис_1990 »

VadimV писал(а): А зачем такой шаг при такой площадке?
Может быть в случае, если сокращается СЗЗ до 25 м, или вплоть до границы промплощадки (тогда рекомендуется еще меньше шаг). Также, чем меньше шаг расчетной сетки, тем более правильные будут изолинии. В редких случаях бывает принципиально. Хотя, я не сталкивался с расчетом более 3-5 минут даже для относительно больших предприятий. Видимо просто комп мощный.

Автор темы
timofeev
Новичок
Сообщения: 11
Зарегистрирован: 26 июл 2012, 15:43

Re: Предложение по увеличению производительности и скорости расчётов экологических программ

Сообщение timofeev »

И большие площадки встречаются и на ночь компьютер с расчетом оставляется (после определенного предела помогает не особенно хорошо), но, главное - чем больше и старше предприятие, тем ближе к нему жилая зона, меньше шаг расчетной сетки и больше сетка.
Шаг сетки контролируется у нас на экспертизе.
На больших проектах скорость работы разработчика падает.
Вообще то говоря, для просмотра результатов в реальном времени и интерактивно, для ускорения работы с программой, можно предложить ещё и такую функцию, как умный расчет и пересчет результатов - например, если был изменен выброс источника, он был передвинут или как то ещё был изменен то пересчитываются только выбрасываемые из него вещества и включающие их группы. Если была как то изменена точка, то пересчитываются концентрации в этой точке, а не все точки сразу.
В случае с маленькими проектами - скорость также скажется в положительную сторону - просто разработчик с более быстрой программой за год сделает больше проектов и, как следствие, заработает за год больше своего коллеги с медленной программой и поэтому победит его в конкурентной борьбе, например, установив более короткие сроки или делая в среднем больший объём работ.
На промежутке в несколько лет разрыв между лидерами и аутсайдерами вырастет ещё сильнее.
Т. е. и даже для индивидуального разработчика-одиночки есть смысл заботиться о скорости своих программ.
Смысл темы в том, что скорость работы программ влияет на прибыль.
Поэтому сюда, в эту тему, её читателям имеет смысл написать ещё и те пожелания к программе, которые повысят получаемую ими прибыль и указать на те особенности программ, которые её, эту прибыль, снижают.

hawkress

Звезда за помощь Медаль за помощь
Эколог
Сообщения: 1375
Зарегистрирован: 26 фев 2009, 17:46
Награды: 2
Откуда: Москва
Благодарил (а): 135 раз
Поблагодарили: 325 раз

Re: Предложение по увеличению производительности и скорости расчётов экологических программ

Сообщение hawkress »

Денис_1990 писал(а): Также, чем меньше шаг расчетной сетки, тем более правильные будут изолинии. В редких случаях бывает принципиально
Нуу.. Там, где принципиально - ставится обычно расчетная точка, а не по триангуляции изолиний смотрят (или какой там алгоритм в программе). Плюс сейчас стало возможным делать несколько расчетных площадок в одном расчете - стало прикольно. Раньше я два расчета делала, но всю огромную площадку с мелким шагом никогда не обсчитывала. Или даже три могла, когда одно-два вещества требовали сильно большей площадки, чем все остальные.

А вот
timofeev писал(а): умный расчет и пересчет результатов
было бы действительно интересно получить. Сейчас получается делаю несколько черновых расчетов на "критичные" вещества, точки, потом все удаляю и делаю начисто.
timofeev писал(а): разработчик с более быстрой программой за год сделает больше проектов и, как следствие, заработает за год больше
Черт, у меня в проектах львиная доля времени - думать, собирать данные и делать расчеты выбросов. Быстродействие программы, ну если честно, капля в море. что-то-я-делаю-не-так...

Yasva

Медаль за развитие Медаль за помощь
Эколог
Сообщения: 231
Зарегистрирован: 08 окт 2013, 22:00
Награды: 2
Откуда: Санкт-Петербург
Благодарил (а): 17 раз
Поблагодарили: 92 раза

Re: Предложение по увеличению производительности и скорости расчётов экологических программ

Сообщение Yasva »

timofeev писал(а): Шаг сетки контролируется у нас на экспертизе.
По каким нормативам? Я знаю п. 5.12 ОНД, больше по-моему ни один нормативный акт до таких интимных подробностей не опускался.
Спойлер
Шаги расчетной сетки выбираются в зависимости от размеров области, для которой проводятся расчеты. При этом общее количество узлов сетки, как правило, не должно превышать 1500 — 2000. Размеры указанной области должны соответствовать размерам зоны влияния рассматриваемой совокупности источников
timofeev писал(а): в эту тему, её читателям имеет смысл написать ещё и те пожелания к программе, которые повысят получаемую ими прибыль и указать на те особенности программ, которые её, эту прибыль, снижают.
А вам зачем?
Аватара пользователя

Wespe

Медаль за развитие Звезда за помощь Медаль за помощь
Заслуженный эколог
Сообщения: 3543
Зарегистрирован: 09 апр 2010, 19:01
Награды: 6
Откуда: Каракас
Благодарил (а): 659 раз
Поблагодарили: 689 раз

Re: Предложение по увеличению производительности и скорости расчётов экологических программ

Сообщение Wespe »

От 700 до 800 источников, 100 ЗВ (с группами суммации), площадка 18 на 14 км, шаг сетки 250 м или 500 м- 15-20 минут на средненькой конфигурации компе. Не конечно если ставить шаг 2,5 метра... :mrgreen:
"Трудно стало работать. Развелось много идиотов, говорящих правильные слова." (с)

Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Программные продукты серии "Эколог" - программы для экологов»

Форум для экологов : Отказ от ответственности