|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
У меня заработал гидродинамический решатель на видеокарте25.07.2021, 14:02. Показов 48248. Ответов 57
Метки нет (Все метки)
Всем привет!
Я пишу свою гидродинамическую программу на С/С++, cuda C с 2009 года. Вот ссылка на мою программу https://github.com/kirill7785/AliceFlow В эти выходные используя библиотеку AMGCL разработчика ddemidov из Казани https://github.com/ddemidov/amgcl Я смог добиться расчёта на сетках из 700 тысяч неизвестных за один час расчётного времени. До этого, при расчётах на центральном процессоре, я фактически был ограничен сетками в 200 тысяч неизвестных по времени гидродинамического расчёта.
2
|
|
| 25.07.2021, 14:02 | |
|
Ответы с готовыми решениями:
57
Проблема с драйверами на видеокарте RX 580 4gb или в самой видеокарте
Решатель примеров |
|
фрилансер
6489 / 5717 / 1133
Регистрация: 11.10.2019
Сообщений: 15,261
|
|||||||||||
| 30.08.2021, 10:24 | |||||||||||
|
kirill7785, я тут ещё побурчу ) Пока вчера лазил по коду, видел такое
минусы: переделывание текущего кода плюсы: более скромное потребление памяти и более высокое быстродействие Добавлено через 46 секунд но если обращение к этому объекту редкое, то можно и не переделывать. Хотя и не очень красиво выглядит
0
|
|||||||||||
|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
| 11.09.2021, 15:25 [ТС] | |
|
По поводу В - внимательно смотрите код. В функцию передается B[tid] где tid это id thread. Соответственно внутри функции обращение к B[][]. Надо смотреть кто кого вызывал и как передавал данные.
По поводу входного файла: разделитель целой и дробной части в файле meshin должен быть только точка. Если прога пишет что симметричность матрицы для поправки давления нарушена то причина этого некорректный файл meshin, нужно его проверять. Файл meshin создается граф интерфейсом на Delphi DavisTest, но на гите версия еще не выложена свежая для DavisTest. Также файл meshin создаётся программой AliceMesh\AliceFlow v.0.48, но свежая версия также пока не выложена.
0
|
|
|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
| 26.11.2021, 20:39 [ТС] | |
|
19-20 ноября 2021 реализовал блочные сетки для расчётов теплопередачи в твердом теле. Число блоков не ограничено, но уровень вложенности только 1. Т.е. нельзя создать блок сетки в основном блоке, а в него вложится еще (как бы блок в блоке).
По точности метод с блоками не уступает структурированной сетке, но имеет место быть сильная экономия числа ячеек сетки. По скорости расчёта с блоками не всегда всё однозначно иногда наблюдается ускорение расчёта а иногда нет, т.к. несмотря на сокращение числа ячеек сетки появляются накладные расходы на сшитие разных блоков сетки. Еще одним ограничением является то что два блока не могут иметь общей границы и должны контачить только через ячейки кабинета -основного блока расчётной области в котором все и живет.
0
|
|
|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
| 28.11.2021, 19:29 [ТС] | |
|
Расчёт радиатора 2012 года в программе AliceFlow. Расчёт в 3D.
0
|
|
|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
| 08.12.2021, 07:26 [ТС] | |
|
По поводу блочной сетки. На границе вложенного блока с основной сеткой организовано сшитие двух разных расчётных областей так чтобы они составляли единую расчетную область. Из маленьких клеток внутри блока прописана в матрице СЛАУ диффузионная связь с внешней расчетной сеткой кабинета. А из большой ячейки кабинета прописано множество связей к мелким ячейкам блока (один ко многим). Диффузионная связь. Диффузионные связи вносятся прямо в матрицу связи (матрицу СЛАУ системы). Связь один ко многим организуется в виде длинной строки матрицы с большим числом коэффициентов соседей. Несмотря на сокращение количества ячеек сетки есть гипотеза что матрица СЛАУ полученная на блочной сетке хуже обусловлена. Это гипотеза пока.
0
|
|
|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
| 08.12.2021, 08:51 [ТС] | |
|
Ещё один радиатор 2012 года, рассчитанный в программе AliceFlow. В модели такта теплоносителя (вода) используется полигон из 120 точек.
0
|
|
|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
| 08.12.2021, 09:04 [ТС] | |
|
Внимание знатоки вопрос. На странице 18 статьи написано что в алгебраическом многосеточном методе на основе RS огрубления (RS - Ruge and Stueben) можно запрограммировать RS алгоритм построения грубой сетки за O(n) операций. Они ссылаются на Кормена и на алгоритм bucket sort. В тоже время алгоритм RS требует для своей реализации приоритетной очереди, значит его трудоемкость для n узлов O(n*log2(n)). Я пока не могу для себя придумать как они сделали RS за O(n). Прошу высказаться по этому поводу знатоков, можно псевдокод привести или словами мысли по этому поводу написать. Я у себя в программе делал несколько версий приоритетной очереди на основе сбалансированных деревьев, на основе двоичной кучи, на основе Фиббоначчиевой кучи. Но все это типо класса O(n*log2(n)). Как же можно за O(n) ? Прошу высказаться.
Добавлено через 58 секунд статья: Analysis and parallelization strategies for Ruge-Stuben AMG on many-core processors P. Zaspel
0
|
|
|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
| 18.12.2021, 14:17 [ТС] | |
|
Асемблес в асемблесе сделал. В модели 217 тысяч ячеек. Время расчёта 30с на Geforce GTX 1080 Ti.
0
|
|
|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
| 18.12.2021, 14:32 [ТС] | |
|
Длины в модели меняются от 2мкм до 60мм. Между рёбрами пластинчатого радиатора скорость воздуха 2м/с.
Добавлено через 13 минут Тепловая мощность 60Вт. Связка радиатор воздушного охлаждения -> корпус транзистора -> кристалл транзистора.
0
|
|
|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
| 18.12.2021, 20:18 [ТС] | |
|
С наступающим !!!
0
|
|
|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
| 22.01.2022, 08:22 [ТС] | |
|
Обтекание куба в 3D рассчитанное в программе AliceFlow на сетке 310*100*100 контрольных объёмов.
0
|
|
|
фрилансер
6489 / 5717 / 1133
Регистрация: 11.10.2019
Сообщений: 15,261
|
|
| 22.01.2022, 09:03 | |
|
kirill7785, интересно, почему такая асимметрия на левом скрине. Сила тяжести ещё учитывается?
0
|
|
|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
| 22.01.2022, 09:07 [ТС] | |
|
Сила тяжести не учитывается. Невесомость. Ассиметрия из-за нелинейности уравнений Навье Стокса при достаточно высоком Рейнольдсе. Там должно что то типо дорожки Кармана образовываться, но это куб не цилиндр и я считал в стационаре (900 итераций) т.к. в нестационарной постановке очень долго считать будет. Время расчёта 900 итераций 368минут на 2*intel xeon 2630v4 2.2ГГц.
0
|
|
|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
| 22.01.2022, 09:16 [ТС] | |
|
Вот такие распределения ещё могут быть. Это я пересчитывал своим мультигридом.
0
|
|
|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
| 22.01.2022, 09:27 [ТС] | |
|
Ещё картинка зависит от схемы аппроксимации конвективного члена. Если использовать схему против потока первого порядка то получится симметричная картина обтекания. А у меня используется для конвективного члена схема WACEB она более высокого порядка. Я реализовал схему WACEB с помощью метода отложенной коррекции.
0
|
|
|
фрилансер
6489 / 5717 / 1133
Регистрация: 11.10.2019
Сообщений: 15,261
|
|
| 22.01.2022, 09:43 | |
|
kirill7785, для меня все эти термины непонятны, конечно, поскольку я не в теме
Но по интуиции - некая симметрия должна быть, хотя бы в виде затухающей синусоидыВот последний скрин "покрасивше" выглядит Добавлено через 1 минуту ("жёлтая" 0.9 скорость справа от куба смущает, правда. Должно же к оранжевой
0
|
|
|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
| 13.02.2022, 22:40 [ТС] | |
|
777тысяч неизвестных, гидродинамика на процессоре в 8потоков без видеокарты, без
библиотеки Дениса Демидова AMGCL за 16мин. 2*intel xeon 2630v4 2.2ГГц. Алгоритм cfd успеха скорости вычислений: 1. Для компонент скорости якоби окончание по опусканию невязки 0.1; 2. Давление сначала итерационный метод Чебышева с полиномом 128степени и BiCGStab как внешний итерационный процес. BiCGStab предобусловлен итерационным методом Чебышева. Если за первые 1-7 итераций невязка для поправки давления упала на 0.1 то Ок переходим к слующей итерации SIMPLE. Обычно в большинстве случаев достаточно 1 итерации BiCGStab с Чебышевым. Это быстро за 2с в среднем. А вот если за 7 итераций не сошлось опять стартуем с нуля для поправки давления но теперь алгоритмом FGMRes(m) + amg + Якоби. Обычно нужно 20 итераций чтобы сойтись для поправки давления до невязки 1.0e-7. Время одной итерации правда в 7раз дольше 14с в среднем. Но эти медленные итерации с amg для поправки давления очень редки. В итоге 16мин для 777тысячи неизвестных на 320 итераций SIMPLE алгоритма на xeon 2630v4 8потоков. Алгоритм с amg медленней в 7 раз так у него тяжелая фаза инициализации setup phase.
0
|
|
|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
| 13.02.2022, 22:43 [ТС] | |
|
Вышеописанное реализовано в программе AliceFlow 3D которая на данный момент убрана с Gitа.
0
|
|
|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
| 17.02.2022, 21:29 [ТС] | |
|
6 млн неизвестных за 10ч (900 итераций SIMPLE алгоритма). 8 потоков 2*intel xeon 2630v4.
0
|
|
|
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
|
|
| 17.02.2022, 21:54 [ТС] | |
|
fluid interior number 0: maxelm=5570560, maxbound=323584
iter continity x-velocity y-velocity z-velocity 0 0.29376 1 1.1511e+02 5.7838e-05 0.0000e+00 0.0000e+00 0:13:78 899 1 0.3 2 8.7442e+01 3.3417e-03 4.8931e-01 4.9456e-01 0:19: 4 898 0 0.3 3 1.2739e+01 1.0000e+00 1.0000e+00 1.0000e+00 0:14:86 897 0 0.3 4 2.6424e+02 1.0960e+00 1.1257e+00 1.1455e+00 0:14:91 896 0 0.3 5 2.7789e+01 1.7361e+00 1.9689e+00 1.7344e+00 0:13:99 895 Лог первых пяти итераций на размерности 5.5млн неизвестных. Под конец время одной итерации не 15с, а 40с. Добавлено через 1 минуту потребление памяти 30Гб. Добавлено через 4 минуты fluid interior number 0: maxelm=25294516, maxbound=1296336 iter continity x-velocity y-velocity z-velocity 6 0.00158468 1 4.1029e+03 0.0000e+00 0.0000e+00 2.9125e-07 3:44:59 899 1 0.3 2 1.1355e+02 9.9428e-02 1.0092e-01 3.6373e-05 1:32:12 898 6 0.3 3 1.6437e+03 1.0000e+00 1.0000e+00 1.0000e+00 3:43:41 897 6 0.3 4 8.9629e+01 9.5941e-01 1.0313e+00 1.5972e+00 3:48: 3 896 6 0.3 5 1.5562e+03 7.7827e-01 1.1265e+00 1.7008e+00 3:46:12 895 Лог 25млн неизвестных по вышеописанному алгоритму. Время одной итерации 3мин 48с. Т.е. в конце время одной итерации минут 10 будет примерно и на эту задачу алгоритм потратит более 6 дней. Потребление озу 135гб.
0
|
|
| 17.02.2022, 21:54 | |
|
Решатель «Судоку»
Решатель ЗЛП/ЗЦЛП Решатель диф. уравнения Решатель Find() с массивом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача
Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
Сигнатура
func Fetch(urls string, maxConcurrent int) Result
Пример
urls :=. . .
|
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition)
Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
|
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
|
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool
Worker Pool — паттерн конкурентной обработки задач в Go.
Суть: фиксированное количество горутин-воркеров читают задачи из общего канала
и пишут результаты в общий канал результатов. . . .
|
|
[golang] Pipeline
alhaos 08.06.2026
Pipeline
Pipeline — паттерн конкурентной обработки данных в Go.
Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
|
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь
lIs4oanZS9Y
|
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу.
До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|