Перейти к публикации

Создание новой Российской Cae-системы


Рекомендованные сообщения

Замечу, что память задействованая через AWE стандарт не свопируется. И доступ к ней производится за нано секунды.

<{POST_SNAPBACK}>

Спасибо.

Так про какую память мы говорим? Оперативную, виртуальную... Как мне представлялось, если процесс захватит слишком много оперативной памяти, это может привести к интенсивной перекачке страниц на диск и резкому падению производительности всей системы (из Джефри Рихтера). Добавлю, что с AWE мне сталкиваться не приходилось (в отличие от /3Гб), поэтому и проявился такой интерес... Не получается ли так, что к виртуальной памяти мы имеем быстрый доступ, но при малой оперативке происходит запись на диск и соответственно потеря производительности всей системы?

Ссылка на сообщение
Поделиться на других сайтах


Так про какую память мы говорим?

<{POST_SNAPBACK}>

Мы говорим об оперативной памяти за пределами 2 Гб, которая выделяется для одного процесса.

Если у вас программа собрана с определенными ключами, то вы можете

в BOOT.INI поставить ключ /3GB. В этом случае операционная система позволит вашей программе захватывать память больше 2 Гб. При этом может произойти вытеснение самой операционной системы и начаться сильный своп.

Если у вас, например 8Гб оперативной памяти, то вы можете через механизм AWE запросить дополнительно (к двум законно положенным) еще 4 Гб. Все пройдет безболезненно. Если вы будете запрашивать больше 4 ГБ, то может произойти вытеснение операционной системы и будут проблемы. AWE механизм позволяет работать с оперативной памятью. Никакой виртуальности и соответственно свопировании в данном механизме нет.

Ссылка на сообщение
Поделиться на других сайтах

Если у вас, например 8Гб оперативной памяти, то вы можете через механизм AWE запросить дополнительно (к двум законно положенным) еще 4 Гб. Все пройдет безболезненно. Если вы будете запрашивать больше 4 ГБ, то может произойти вытеснение операционной системы и будут проблемы. AWE механизм позволяет работать с оперативной памятью. Никакой виртуальности и соответственно свопировании в данном механизме нет.

ИСПА. Спасибо за разъяснения :smile:

Ссылка на сообщение
Поделиться на других сайтах

"сделать версию под Win64" - кто-нибудь разбирался с ограничениями на память для процессов в ней?

И как ведет себя Ansys в плане памяти?

Просто беда, никак не могу найти драйвер для видеокарточки...

Ссылка на сообщение
Поделиться на других сайтах

"сделать версию под Win64" - кто-нибудь разбирался с ограничениями на память для процессов в ней?

<{POST_SNAPBACK}>

Для одного процесса под Win64 выделяется 16 Гб оперативной памяти.

Ссылка на сообщение
Поделиться на других сайтах

To: vl

GA-2CEWH (2xOpteron DP, 32 Gb); GA-7A8DRH (2xOpteron DP, 24 Gb total - 8 Gb for 1 CPU and 16 for 2nd one); TYAN S2882G3NR-D (2xOpteron DP, 16 Gb) and some other TYAN motherboards. All 64-bit of course. Average price - from 700-800$

Ссылка на сообщение
Поделиться на других сайтах

16 Гб - ограничение для итерационных методов.

<{POST_SNAPBACK}>

- не для всех же программ.
Ссылка на сообщение
Поделиться на других сайтах

"16 Гб - ограничение для итерационных методов" - не понял, при чем тут методы?

Можно ли создать массив на 16 Гб , или чуть меньше, например, используя добавление в STL и ждать пока не накроется?

Дело не в платах, а в возможностях адресации внутри процесса. Рихтер вроде так учил...

Ссылка на сообщение
Поделиться на других сайтах

2Galitsky: Спасибо

Для одного процесса под Win64 выделяется 16 Гб оперативной памяти.

Блин, ну чего M$ все время жадится?

С итерационными методами, мне кажется, проблем как раз меньше, чем с прямым разложением. При прямом еще и вторичные ненулевые элементы появляются.

Опять же, итерационные проще распараллелить по тем же процессам

Ссылка на сообщение
Поделиться на других сайтах

"Для решения каких задач?" когда знаешь сколько в кошельке, придумать как расходовать не проблема.

Кто-нибудь "чисто конкретно" выделял?

При разложениях тоже надо много раз проходить по матрице.

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

Прошу прощения за задержку ответа

Прямые методы один раз через оперативную память данные прогоняют. Итерационные методы тысячи и десятки тысяч раз. Если матрица целиком не вмещается, то это вызывает большой своп.

Для итерационных методов матрица сама по себе меньше - нет вторичных ненулевых элементов. Если не влезает, то, конечно, соглашусь. В прямых же даже при хорошей факторизации будет много лишнего.

В чем вы видите трудности распараллелить прямой алгоритм (в рамках одного компьютера)?

Замечу - трудности по сравнению с итерационными методами. В итерационных основная операция - умножение матрицы на вектор. Это легко параллелизовать на n (где n-размерность) процессоров. А, например, в том же Гауссе - три вложенных цикла, их надо развернуть, при этом есть зависимости элементов + больше операций с памятью. В итоге параллелизовать можно, но рост производительности по числу процессоров будет ниже, чем у итерационных. Это грубый взгляд конечно,

Ссылка на сообщение
Поделиться на других сайтах

"привести матрицу к треугольному виду" - так для этоно надо много раз решать треугольные матрицы, распараллелить конечно можно используя перенумерации порождающие стуктуры похожие на суперэлементы, это при нескольких процессорах может в разы сократить время разложения. Интереснее поэкспериментировать с объектами типа VARRAY , задействующими агрессивную оптимизацию при вычислении скалярных произведений. У Страуструпа обещано ускорение раз в тридцать... Кто-нибудь разбирался с этим?

Ссылка на сообщение
Поделиться на других сайтах

Кто-нибудь разбирался с этим?

\

Есть форум по параллельным вычислениям, можно там спросить

<noindex>http://hp.parallel.ru/parBB/index.php</noindex>

Ссылка на сообщение
Поделиться на других сайтах

У IWILL есть 2-х проц мама с 64 ГБ. Правда, модули большой плотности жутко дорогие.

У TYAN есть 4/8 проц., но др. проблема - нужны Opteron 8xx, которые тоже см. выше :-(

Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...

Создание новой системы САЕ на "старых" подходах и методах не сможет привести к революционному решению ряда проблем (напр. "проклятие размерности", ограничения порядка точности численных схем, ограничения по быстродействию и памяти и т.п.).

На мой взгляд главный недостаток современных методик и программ САЕ заключается в экстенсивном развитии подходов к решению все более усложняющихся задач.

Есть такие понятия, как информационная емкость и вычислительная мощность.

Не вдаваясь в подробности, скажу что оба эти понятия могут определить эффективность алгоритма или методики или программного комплекса.

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

Теперь перейдем к самому главному

Как сделать, чтобы с увеличением сложности алгоритма мы потоянно соблюдали оптимальность баланса информационной емкости и вычислительной мощности?

На сегодня существует ряд перспективных математических направлений для решения этой проблемы.

Я предлагаю использовать одно из них - искусственные нейронные сети (ИНС).

По поводу информационной емкости и вычислительной мощности ИНС написано уже немеряно:

<noindex>http://search.lycos.com/index.php?src=sf&query=neural</noindex>

Общая идея мого метода такова:

1. Создается библиотека примитивов ("болванок", заготовок), описывающих процесс (состояние) в конкретной геометрии, с конкретной средой.

2. Реальная геометрия и начальные и граничные условия набираются из НС-примитивов.

План-методика построения библиотеки примитивов:

1. Выбирается примитивный объект.

1.1. Объект характеризуется геометрией, средой. граничными (и начальными) условиями.

1.2. Берется какая-либо программа CАЕ, которая может рассчитать состояние (процесс) в примитивном объекте.

1.3. По этой программе проводятся вариантные расчеты состояний (процессов), и насчитывается таблица результатов расчетов при варьировании с определенным шагом: размеров примитивного объекта, начальных и граничных условий. Результаты расчетов сводятся в таблицу вариантов.

2. Выбирается таблица вариантов.

2.1. На этой таблице обучается нейронная сеть (или разные нейросети) с заданной точностью обучения.

2.2. При недостижении заданной точности обучения НС, снова переходим к 1.3.

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

3. Разрабатывается методика набора сложных объектов из примитивов

3.1. Если расчет сложного объекта, собранного из НС-примитивов , сопадает, с заданной точностью, с расчетом этого объекта по соответствующей CFD программе, то можно считать, что метод применим для решения соответствующего класса задач.

Действительно, существует много спекуляций по поводу НС.

Однако понять их суть просто даже студенту второго курса, который уже "сдал" матанализ.

НС - это инструмент аппроксимации функций.

В обобщенном виде можно представить себе черный ящик-универсальный аппроксиматор, на вход которого подаются дискретные множества {Аргумент; Функция}, а он (ящик) строит по этим множествам некую функцию, которую и называют Нейронной Сетью.

Здесь нет никакого шарлатанства, может быть не очень привычная терминология, но с математической точки зрения все чисто!

Какова же процедура набора задачи из НС-примитивов.

В сеточных аппроксимациях задач матфизики (куда относится и ГД и напр. состояние и теплопроводность) используется ограниченный, весьма бедный набор элементарных ячеек (конечных элементов, конечных объемов ит.п.).

Представьте теперь, что Вы создали и обучили НС-примитивы сеточных аналогов, но формы их гораздо сложнее по геометрии. после чего "набирать" сложную геометрию объекта из таких "puzzle" будет гораздо проще, а расчеты будут идти гораздо быстрее, а памяти нужно гораздо меньше! Ведь "puzzle" Вы уже обучили чему надо ранее!

Ссылка на сообщение
Поделиться на других сайтах

2Eugeen:

Прошу прощения, но по моему Ваше предложение при нынешнем уровне развитии это та же спекуляция.

Попробуйте решить с помощью НС хотя бы одну и туже задачу но с разными параметрами. Таким разными, чтобы изменялся тип ДУ. Обучите сеть, а потом решите эту задачу. И сравните полученную точность с аналитикой или численным решением.

Либо еще проще. Не буду говорить о газовой динамике. Возьмем простую пружинку с грузиком.

Обучите НС на этой системе. И добавьте туда всего лишь демпфер. Что выдаст НС?

Я хочу сказать, что очень рано говорить о создании CAE на НС. Еще надо доказать, что НС способно решать задачи, выходящие за рамки аппроксимации.

А аппроксимация и так уже используется в тех же МКЭ или МКР. И то, что Вы предлагаете, это тянет на суперэлемент, теория которых уже хорошо разработана в задачах прочности. При этом в супер элементах требуется однократное разложение матрицы, а потом только выполняется обратный ход. А с НС? Чтобы ее обучить для 1000 степеней свободы понадобится 100.000 расчетов. Причем сама НС будет той же размерности, а то и больше, чем суперэлемент.

Может быть я не прав. Но тогда приведите исследования, либо сами проведите их, которые бы показали, что НС эффективнее, чем численные методы при решении или СЛАУ или ДУ. Чтобы было на что опираться при создании CAE.

Ссылка на сообщение
Поделиться на других сайтах

Прошу прощения, но по моему Ваше предложение при нынешнем уровне развитии это та же спекуляция.

Математик с мировым именем, Марвин Минский в своем совместном труде с не менее известным Сэмом Пайпертом - "Perceptrones", Сambridge, MIT Press, 1969 предрек полную непригодность нейронных сетей с многослойными персептронами для задач аппроксимации.

Однако несколько идиотов (Руммельхарт, Хинтон, Вильямс и др.) этого не знали и разработали теорию обучения многослойных персептронов на основе BackProp - метода обратного распространения ошибки ( чем многие сейчас и пользуются на практике!).

Вам очевидно лавры Минского и Пайперта не дают спокойно спать?

Но Вы, в отличие от Минского сразу попросили прощения, поэтому мне интересно почитать Ваши труды в области нейросетей. Может быть там уже обоснована бесперспективность применения НС в других, кроме аппроксимации, областях?

Еще замечу, что знаю идиотов из корпорации "Эммерсон Автоматизация", которые поставляют для АСУ ТП ТЭЦ нейросетевые, динамически обучаемые, адаптивные системы DELTA-V для управления такими сложными объектами как котлы и турбины.

А с НС? Чтобы ее обучить для 1000 степеней свободы понадобится 100.000 расчетов. Причем сама НС будет той же размерности, а то и больше, чем суперэлемент.

Это утверждение уже чуть лучше чем у Минского. Во всяком случае не отвергается хотя бы возможность обучения нейросети. Правда автор утверждения не уточнил, для какой НС это справедливо (НС - многослойные персептроны прямого распространения, рекуррентные НС, SVM - Машины Опорных Векторов , динамические НС?). И метод обучения тоже не упомянут (BackProp, генетические алгоритмы, динамический BackProp и т.п.?).

Для знакомства с современным состояним разработок по НС посмотрите:

Вот 3 822 000 ссылок по НС:

<noindex>http://search.lycos.com/index.php?src=sf&query=neural</noindex>

Ссылка на сообщение
Поделиться на других сайтах

to Eugeen

- Остается уточнить все же, насколько сложнее прочностной расчет произвольной конструкции, чем "управление такими сложными объектами как котлы и турбины". И сколько обсчитанных "примитивов" Вы собираетесь положить в основу обучающей выборки. И сколько ссылок из приведенных Вами - прочли сами. И какую архитектуру модели НС предполагаете наиболее подходящей для решения подобных задач. И сколько слоев Вам будет достаточно для заданной точности. И каковы критерии достоверности полученных результатов.

- я пока вижу только очередную спекуляцию, - слов много - толку чуть.

Ведь "puzzle" Вы уже обучили чему надо ранее!

- купите коробок n-цать таких паззлов - ландшафты, натюрморты, например. И попробуйте сложить (именно сложить, а не склеить и потом раскрасить) - "мона лизу". Так вот вопрос - сколько Вам понадобится времени и сколько наборов паззлов уйдет на это? Причем паззлы будут готовые, - Вам не надо их рассчитывать с нуля...
Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...