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

CAD и многопроцессорные системы


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

Возможно ли увеличить проворность того или иного CAD приложения путем использования многопроцессорной системы?

Или это полностью на совести операционки?

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


У товарища с месяц тому назад "образовался" сдвоенный из 2-х с чем-то (2.5 ?)

Гоняет на нём 2003 солид и не нарадуется. Сам пока не видел, но он утверждает, что производительность выросла в разЫ...

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

Эта тема обсуждалась где-то с год назад в Observere — была статья.

Я, например не знаю ни одной CAD системы (во всяком случае из первого десятка в мире), которая бы реально поддерживала многопроцесорность. Вероятно, в принципе, при работе с ядром геометрического моделирования, невозможно распараллеливать потоки по нескольким ЦП.

А прирост при двухпроцессорности при работе может быть крайне мал и обусловлен только тем, что второй процессор воспринимает на себя лишь часть работ только самой операционки. А это не более 1-2% прироста производительности при реальных процессорозагрузочных работах в CAD-приложениях. И товарищ "ощутивший разы" воспринимает желаемое за действительное. Иначе это было бы раструблено в рекламах самой SW. В общем товарищу грозит Шнобелевская премия... :)

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

Предыдущий пост от SVB несколько искажает действительность.

    Правда в том, что прирост производительности напрямую зависит от возможности ядра и самой программы работать с многопроцессорными системами.

    Некоторое время назад (примерно 2 года) было официально объявлено, что ядро Parasolid переработано и поддерживает работу с многопроцессорными системами (кажется до 4-х процессоров). Т.е. из того, что я точно знаю, так SW, MasterCAM, UG и российский T-Flex  в том числе поддерживают работу с многопроцессорными системами. Думаю, что это касается большинства систем, работающих с современным ядром Parasolid.

    Точно не знаю, но думаю, что такие системы как Pro/E и Catia не могут не поддерживать работу с многопроцессорными системами.

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

"Предыдущий пост от IBV несколько искажает действительность" :)

Я общался с поставщиками систем на Parasolid, например с EDS, и задавал им этот вопрос года два назад, когда появилась эта информация. Ответ был такой: "Многопроцессорность поддерживается в UG при отрисовке проекций, сечений, разрезов с 3D-моделей". Вот и все!

Тут я хочу подчеркнуть, что это не значит, что выполненный в UG (если он действительно выполнен!) этот технологический момент АВТОМАТИЧЕСКИ будет работать в других системах, построенных на ядре Parasolid (SW, T-FLEX). Ведь, например, есть практические свидетельства, что UG менее требовательна к аппаратной производительности железа, чем SW при работе с большими сборками. И это, разумеется, без применения фирменных — от UG технологий по работе с большими сборками. Т.е. многое зависит от конкретной реализации Parasolida в конкретной системе.

Сообщений же о поддержки многопроцессорности в Pro/E не встречал. Полагаю, что и в CATIA тоже самое.

Если у кого есть КОКРЕТНЫЕ ссылки по этой теме на сайты поставщиков — поделитесь!

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

    Мне сейчас практически невозможно найти тот номер журнала "САПР и Графика", в котором была статья про Parasolid  и многопроцессрорные системы - наша фирма переезжает, бардак жуткий. Поэтому думаю, что проще обратиться к продавцам/разработчикам SW и T-Flex. Тем более, что они незримо присутствуют на форуме.

    Итак, господа Продавцы/Разработчики, имеете что-то сказать по этой теме?

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

И товарищ "ощутивший разы" воспринимает желаемое за действительное.

Скорее всего, лажаюсь я :( Не помню, что у него было "до того как". Но точно, что не Р4 с частотой выше 2х. Так что м.б. правда - Ваша! :) Мой пример изначально некорректен... :(

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

В принципе CADCAM это на почти нижнем уровне сплошная математика не очень понятно почему нельзя распаралелить решение системы дифференциальных уравнений (например) на n -потоков?  

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

    В описании  API Parasolid тоже встречал фразу, что это ядро поддерживает многопроцессорность. Так что, в этом вряд ли имеет смысл сомневаться. Может быть она отключена в некоторых пакетах, или задействована только в некоторых опреациях. Вообще же, не трудно посмотреть загруженность второго процессора при выполнении какой-либо трудной операции.

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

Характер задач, решаемых при геометрическом моделировании не позволяет распаралеливать процессы с достаточной эффективностью. То есть, конечно, рост производительности будет, но небольшой. Графику распаралелить - значительно эффективнее.

Эффективнее всего же использовать на многопроцессорных, а также кластерных системах FEM решалки. Там сам характер получающихся систем позволяет резко поднять быстродействие, используя паралельные процессы. Что, в общем, постоянно подтверждается различными публикациями.

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

Эффективнее всего же использовать на многопроцессорных, а также кластерных системах FEM решалки.

Т.е. Moldflow (анализ литья) будет "бежать", а не "ползти по склону Фудзи"? :)
Ссылка на сообщение
Поделиться на других сайтах

GPN

Это почти гарантированно равно как и ускорение процесса рендеринга это проверено. А вот насчет CAD обидно ВАХ!

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

Т.е. Moldflow (анализ литья) будет "бежать", а не "ползти по склону Фудзи"?

Для того что бы Moldflow "бежала по склону Фуджи" необходимо специальная версия созданная для многопроцесорных систем, кроме того еще и для вашей операционной системы.

ИМХО их выпускает крайне малое количество фирм. Обычная версия на многопроцессорной системе поведет себя абсолютно также как и на однопроцессорной. Разве что две задачки можно запустить одновременно.

Ну и ускорение для N процессоров будет естественно не в N раз а меньще.А может его вообще не будет видно.

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

IMHO это не совсем так. Если программа корректно "разбита" на паралельные процессы, что для Windows приложений в общем-то нормально, то, при попадании на многопроцессорную систему ОС сама автоматически организует распаралеливание близким к оптимальному способом. Думаю, что система, ориентированная на кластеры также может это сделать, хотя полной уверенности в этом у меня нет, не сталкивался.

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

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

Если программа корректно "разбита" на паралельные процессы, что для Windows приложений в общем-то нормально

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

Вообще говоря, метод решения системы уравнений сильно зависит от ее вида. При правильно построенной сетке для МКЭ решение системы вполне можно "распаралелить".

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

Вообще говоря, метод решения системы уравнений сильно зависит от ее вида. При правильно построенной сетке для МКЭ решение системы вполне можно "распаралелить".

Да можно конечно. Весь вопрос кто это делает? Я знаю крайне мало таких систем.
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

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




  • Сообщения

    • maxx2000
    • ДОБРЯК
      Нулевых частот может быть любое количество. Вот эта матрица не будет вырождена.    
    • Orchestra2603
      Речь идет о собственных векторах, связанных с нулевым СЗ. Вы же понимаете.
    • ДОБРЯК
      Для сложных систем их может быть и 100 и 200 и 1000...
    • maxx2000
      @Artas28так надо рецепт в массы нести, а то Ванёк ничему не научится
    • Orchestra2603
      Выкидываем не в смыле, что мы ее вырезаем.. Простите мне эту вольность)) Просто там две одинаковые строки. Достаточно рассмотреть только одну. Нет смысла хранить вторую строку в матрице, поскольку она ничего не привносит. Вы можете совершенно формально взять полученный i-й собственный вектор, умножить на матрицу K-lambda_i*M и получиь нулевой вектор.   На самом деле.. Мне прям пришлось прям подумать над аналогией с включением закрепления в статике. И это было полезно и интересно. Так что вам спасибо за "подгон", что называется )) Но все-таки разница есть ...   Вот у вас в статике:   И здесь действительно получается, что если мы зафиксируем, например, положив a=0, то это будет эквивалентно "выкидыванию" 1-го стобца и 2-й строки, и решению уже такой модифицированной невырожденной системы *в данном случае вообще тривиальной). При этом f2 просто станет узловой реакцией и определится как -f1 автоматически: К слову, можно положить любой a, не только нулевой. Результат будет такой же для сил, но прогибы, ясное дело, поменяются.   Но это отличается от нашей задачи на собственные значения. У нас нет внешних сил {f}.  А знaчит и упругие силы [K]{x} в системе должны быть равны нулю. И для нулевой собственной частоты мы по сути ищем такой набор перемещений, при которых в системе отсутствуют упругие силы.  И таких наборов перемещений бесконечно много. Вообще говоря, для трехмерных более сложных систем оказывается, что существует до 6-ти базисных векторов (понятно, что связанных с движениями как твердого целого), и любая линейная комбинация из этих векторов будет решением такой задачи. Но нам не нужно само решение! Нам нужен как раз сам базис пространства решений! Причем, сами вектора в этом базисе нас интересуют с точностью до множителя, ь.е. таких базисов можно напридумывать бесконечно много. Но нам нужен толкьо какой-то один базис, и всего-то. В этой простейшей задачке - это просто один вектор  {1, 1}. Можно взять {2,2} или {e,e} - не имеет значения, нас любой из них строит. И нам этого достаточно.    Обратите внимание, что этот вектор нельзя получить из задачи статики, где {f} ≠ {0}, положив какое-то значение для a, т.е. внедрив какое-то "закрепление" в вашей интерпретации.  Пожтому я убежден, что это другая задача, т дело тут не в закреплениях.   Не понимаю, про какую вы матрицу
    • Viktor2004
      Туда вроде наоборот заносится значение какое-то, но не считывается Смотрю чужие программы, там вроде только 8549 используют. При чем у них в программах циклы поболее моих, которыми я круги чертил O4198 ; #500=#8549 ; IF[ #8549 EQ 0 ] THEN ; #10409=0 ; ENDIF ; IF[ #8549 EQ 134 && #10409 EQ 0 && #10422 NE 0 ] THEN ; #10409=1 ; #10422=FIX[#10422 / 10] ; #10427=1 ; ENDIF ; IF[ #8549 EQ 48 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 0 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 49 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 1 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 50 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 2 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 51 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 3 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 52 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 4 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 53 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 5 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 54 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 6 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 55 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 7 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 56 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 8 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 57 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 9 ; #10427=1 ; ENDIF ; IF[ #10422 GT 9999 ] THEN ; #10422=FIX[#10422 / 10] ; ENDIF ; IF[ #500 EQ 249 && #8500 EQ 4170 ] THEN ; #8500=4601 ; M99 ; ENDIF ; IF[ #500 EQ 240 ] THEN ; IF[ #8500 EQ 4174 || #8500 EQ 4173 || #8500 EQ 4177 ] THEN ; #8500=4170 ; M99 ; ENDIF ; IF[ #8500 EQ 4178 ] THEN ; #8500=4170 ; M99 ; ENDIF ; ENDIF ; IF[ #500 EQ 248 && #8500 EQ 4170 && D34.0 NE 0 ] THEN ; #8500=4174 ; M99 ; ENDIF ; IF[ #500 EQ 247 && #8500 EQ 4170 && D30.4 EQ 1 && D29.6 EQ 0 ] THEN ; #8500=4175 ; M99 ; ENDIF ; IF[ #500 EQ 246 && #8500 EQ 4170 && D35.0 EQ 1 && D35.4 EQ 1 ] THEN ; #8500=4178 ; M99 ; ENDIF ; IF[ #8549 EQ 152 && #10409 EQ 0 && #10422 EQ 5656 ] THEN ; #8500=4177 ; M99 ; ENDIF ; M99 ;  
    • nicomed
      Как победить проблему с блокированием сегментов эскиза не знаю. Поэтому пока полумеры... Ввел активацию чертежного листа после разрыва линии. Для разблокирования сегментов после закрытия программы двойным кликом активировать чертежный вид, где надо двигать сегменты эскиза. Добавил настройки. Можно настроить величину генерируемого зазора в  файле options.xml. По толщине и стилю линии, если кто подскажет как прочитать стиль и толщину выбранной кромки ( силуэтной кромки), то тогда можно будет "напосмотреть".   Пару раз натыкался на такой глюк - остается только один сегмент эскиза, грешу на рассинхронизацию работы солида и приложения. EdgeTrim_v3.3.zip
    • si-64
      да, это работает. спасибо. но как то особо не работал со слоями, нужно прямо заморачиваться(
    • nicomed
×
×
  • Создать...