Render.ru

Maya на 2 процессора

Wink05

Активный участник
Рейтинг
13
#1
Здравствуйте люди. Обнаружил следующую фигню. Когда запускается рендер шерсти и пайнтэхффектов загружено только одно ядро проца. Но если начинается рендер самой картинки (после просчета шерсти и т.д.) загружены оба ядра. В рендере выставлял галочку - использовать все процессоры, но ничего. Хотелось бы просчет волос по времени сократить раза в полтора, есть способ это сделать? Процессор - Tureon 64 x2 1,6ГГц (ноутбуковский)
 

ArtmanUrgus

Активный участник
Рейтинг
15
#2
Способа нет, так алгоритм софта не поддерживает два мультипроц для данного процесса.
 

Wink05

Активный участник
Рейтинг
13
#3
Я знаю, что к некоторым играм есть плагины, чтобы заставить их работать на 2 процессора. У меня WinXP 32 разрядная Maya 8,5. Знаю, что на maya 2008 та же проблема. Может под vista все по максимуму, у кого как.
 

ArtmanUrgus

Активный участник
Рейтинг
15
#4
Вот, вот!!! Под Висту!!! Ты сам даешь ответ!!! Под 64 бита само сабой все одаптировано для мультипроцесоррных систем. А значит - многозадачность распаралелена, и алгоритм поддерживает мультипроцессинг. Однако может и там есть ограничения - например, редер мешей хоть на сто процев, рендер фура - на четыре. Это просто предположение - точно не знаю - врать не стану.
 
Рейтинг
34
#5
Вы серьёзно думаете, что кто-то стал бы делать разные алгоритмы для 32 и 64 битных систем в пределах одного и того же сложного пакета?

"Многозадачность распараллелена"....surep.
 

J-A-G-U-A-R

Активный участник
Рейтинг
14
#6
тут проблема не в пакете и его алгоритмах, но разрядность под которую он заточен - влияет, а в адаптированности операционной системы и ядра для работы с отпеределнными операциями Х-разрядного пакета. Разные процессоры разные операции по разному выполняют, некоторые могут загрузить одну задачу на одино ядро, а некоторые разбивать ее и расределять, смотря как конвеер организован. Так же зависит от криворукости программистов, от того какими командами и в каком порядке выполняется операция зависит то как ее будет обрабатывать процессор. А практически любую операцию можно сделать несколькими способами.
 
Рейтинг
34
#7
Где можно прочитать вот про это вот, что вы сейчас тут сказали - "некоторые могут загрузить одну задачу на одино ядро, а некоторые разбивать ее и расределять, смотря как конвеер". Конвеер какого из процессоров, кстати, будет разбивать задачу на два проца?
 

ArtmanUrgus

Активный участник
Рейтинг
15
#8
Ungus, видимо ваше нахождение за компьютером прямо с рождения, как-то особенно повлияло на ваш головной мозг. Отдохните от нас чуть-чуть, сделайте паузу. Have a life.

Update: Очень было занятно изучить тред "Laterne, Laterne", кстати. У моего приятеля матушка ещё на БЭСМ-6 работала. Так вот несмотря на то что за ЭВМ она провела времени побольше вашего, шедевров ЦГ от этого делать почему-то не стала. "Проводить время за компьютером" вообще можно по-разному. Можно в минера все 18 лет играть.
 

J-A-G-U-A-R

Активный участник
Рейтинг
14
#9
Где можно прочитать вот про это вот, что вы сейчас тут сказали - "некоторые могут загрузить одну задачу на одино ядро, а некоторые разбивать ее и расределять, смотря как конвеер". Конвеер какого из процессоров, кстати, будет разбивать задачу на два проца?
В принципе любом поисковике можно набрать "организация многоядерных провессоров" или по курсу лекций "микропроцессорная техника" или типа того, в разных вузах по разному называют.

вот ссылка на одну из статей
http://www.intel.com/cd/corporate/europe/emea/rus/update/232853.htm
и отрывок из нее:
- "Приложения, которые работают на одноядерном процессоре Intel, будут работать и на двухъядерном процессоре Intel. Однако для того чтобы сегодня получить все преимущества от выполнения приложения на таком процессоре, ПО, работающее на такой платформе, должно быть разработано так, чтобы вычислительная нагрузка распределялась между множеством вычислительных ядер. Такая функциональная возможность называется параллелизм на уровне потоков или «многопоточность», а приложения и ОС (такие как Microsoft Windows* XP, Windows Server и версии Linux*), которые поддерживают этот режим работы, называются «поточными» или «многопоточными»."


вот другая статья, там даже пример для програмистов есть:
http://www.osp.ru/pcworld/2007/04/4230114/
-"Не будет преувеличением сказать, что эра многоядерных процессоров для персональных компьютеров наступила. Конечно, все уже давно привыкли к тому, что с помощью ПК можно путешествовать по Интернету и одновременно слушать музыку, поэтому для рядового пользователя переход на двухъядерный процессор означает только увеличение производительности, а вот для индустрии ПО — это целая революция. Уже существующие программы в большинстве своем не могут воспользоваться теми преимуществами, которые дает второе ядро в системе. Разработка новых версий продуктов, где исправлен этот недостаток, требует принципиально иных подходов."

В насчет распреденения задачь по ядрам, это целое искуство. один из примеров. когда в процессоре стоит конвеер, в функции которого входил выборка данных из памяти для последующей подачи их в ядро для обработки, пока ядро занято, чтобы небыло простоя, потому что данные и собственно операию которую надо над ними провести надо подготовить заранее. А на относительно уже последних версиях появилась даже функция "предварительного анализа кода", т.е. когда конвее "пытается угадать" какие данные могут понадобиться процессору на следующем шаге и заранее их подгружает. Могу сказать, что это довольно эффективно работает, за исключением моментов когда дальнейший ход вычислений зависит от результата текущего вычисления, вроде операторов if ... then ... else или case. Тогда конвеееру приходится полностью очищать очередь задачь если он "не угадал" дальнейшего развития событий.

в многоядерных системах эти алгоритмы невероятно усложнены, но ими еще надо уметь пользоваться, т.е. затачивать код пограммы под алгоритмы процессоров, их конвееров.
 

J-A-G-U-A-R

Активный участник
Рейтинг
14
#10
небольшое уточнение - конвеер всегда один, только он может быть много потоковым и заключать еще "подконвееры", но поскольку шина одна и данные в процессор попадают все же одному каналу, и именно на конвеер ложится затача распределения. т.е. вычленять потоки задачи сторонних процессов и отправлять их на другое ядро либо по возможности один процесс на несколько ядер увеличивая скорость просчета, но если код кривой, возникают ситуации, когда например одно ядро закончило просчет и для дальнейшей работы ему неодходим результат просчета другого ядра, и оно либо простаивает, либо переводится на другую задачу. соотвественно всех возможностей многоядерности уже нет.
 
Рейтинг
34
#11
Вы знаете, я бы наверное согласился, если бы не это ваше "уточнение". Кто вам сказал-то, что "конвейер всего один"? Конвейер находится _в_ процессоре, т.е. в каждом из ядер, а не на некоем "входе". И сам процессор не умеет ничего распараллеливать, равно как и OS и этот загадочный "конвейер". Параллелизация происходит на уровне тредов, т.е. "целых задач", OS не в состоянии разбить тред на несколько процов, это невозможно принципиально. Именно поэтому это называется Multithreading.
Единственная вещь, которую шарят между собой ядра - это L2 cache. Единственное реальное преимущество, которое даёт 64bit процессор на данный момент - расширенная адресация памяти.
 

J-A-G-U-A-R

Активный участник
Рейтинг
14
#12
Прадон муа, в данном случае я ошибочно привел процесс взаимодействия ядра с его математичеким сопроцессором, а не между двумя ядрами. Про треды я знаю и кажется им ничем не противоречил. А конвеер, это часть прочессора и неотъемлемая, именно там пошагово язык низкого уровня, тот же ассемблер раскладывается на микро команды и обрабатывается ядром именно как набор микрокоманд.

Кстати, когда процы одноядерные были, псевдо многозадачность достигалась за счет рабоыт с тредами, это я в курсе, но тренд, если не изменяет память это так сказать информация о выполняемой задаче, ее текущем состоянии и ссылке на следующий шаг. Когда приходит задача с более высоким приоритетом, он упаковывается, "уступает дорогу", а потом снова идет в работу. Я конечно не знаю всех тонкостей работы многоядерных процессоров. но помоему им ничто не мещает обмениваться этими тредами.

Про 64 bit процессор добавлю что не только аресацию памяти расширил, но и сам поток данных, обработать за раз 32 или 64 бита информации разница есть. Правда если с 64 битным процессором работает софт заточеный под 32 бита, то и обрабатываться будет 32 бита единовременно. а остальные будут просто пустыми и никакой разницы.
 
Рейтинг
34
#13
Thread - это не "информация о задаче", а сама задача. Думается что "обмениваться" тредами процессоры сами не могут - они делают то что им говорит OS. Отличий 64bit cpu от 32bit - гораздо больше, но, как я уже написал _реально_ сейчас выигрыш для пользователей только в памяти. Скорость наоборот может снижаться из-за эмуляции win32 в 64bit OS.
 

J-A-G-U-A-R

Активный участник
Рейтинг
14
#14
а я и не говорил что процессоры сами ими могут обмениваться, Вы правы, они делаю только то что им говорит OS а соотвественно все зависит от написания кода придложения и той же OS. Так что в принципе сошлись на том что Алгоритмы то разные для 32 и 64 бит. Не сами конечно принципы Мая или чего-то другого, а обработки рабочих данных. Хотя жаде не столько в этом, а сколько в мультиядерых процессорах и одноядерных.
 
Рейтинг
34
#15
Так что в принципе сошлись на том что Алгоритмы то разные для 32 и 64 бит.
Что-то я не уловил - из чего это следует? Вы только что рассуждали о процессорах, конвейерах и мультитрединге, и вдруг каким-то волшебным образом оказалось что в Maya разные алгоритмы для 32/64bit?
 

J-A-G-U-A-R

Активный участник
Рейтинг
14
#16
Вы серьёзно думаете, что кто-то стал бы делать разные алгоритмы для 32 и 64 битных систем в пределах одного и того же сложного пакета?
Собственно с чего все начиналось? человек не мог понять по чему у него мая не загружает все ядра, а он работает в 32-х разрядной ХР. Потом возник спор о разрядностях процессоров и собственно работы софта на них, и разница оказалась приличная.

яж подчеркнул что
- "Алгоритмы разные для 32 и 64 бит. Не сами конечно принципы Мая или чего-то другого, а обработки рабочих данных."
 
Рейтинг
34
#17
человек не мог понять по чему у него мая не загружает все ядра, а он работает в 32-х разрядной ХР
Потому что софт ввиду каких-то причин написан не мультитредовым.
Алгоритмы для 32/64 софта - одинаковые. Maya не оптимизирована для 64bit OS, по крайней мере Alias/Autodesk об этом не говорили ни слова. Уж будьте уверены, если бы была хоть какая-то оптимизация - маркетологи раструбили бы об этом на пол-интернета.
 

J-A-G-U-A-R

Активный участник
Рейтинг
14
#18
странно, а почему тогда в том же интернете мая 2008 в двух вариантах есть в 32 битном и 64-х?
 
Рейтинг
34
#19
Потому что 32-bit приложения не смогут работать с большими объемами памяти - у них все указатели 32-битные. Кроме того 32-bit приложения запускаются в Vista64/XP64 в режиме эмуляции. Поэтому и сделали native 64 bit application.
 
Рейтинг
34
#20
http://features.cgsociety.org/story_custom.php?story_id=3768
Most notably in this direction, Maya 8 has been re-built to run natively in 64-bit operating systems. Currently, this includes Windows and Linux only. While 64-bit, rather than humdrum 32-bit operation may sound sexy, the vast majority of users will notice almost no difference between the two modes. Those who will are animators working with huge or very complex 3D scenes – primarily the ones involved in film and television production. (Game artists rarely build sets with tens of thousands of models or multiple millions of polygons.)

64-bit operation isn’t significantly faster than 32-bit, in fact 64-bit applications are commonly somewhat slower since they have more system overhead, but nothing is as slow as an application that crashes when it runs out of memory. While 32-bit operation imposes a physical memory ceiling of two to four Gbytes per application (depending on the flavor of Windows or Linux you’re running and the configuration of your system), running in 64-bit mode lets you boost your application RAM to 16 Gbytes or more. Of course, that assumes you have 16 Gbytes of memory to spare for each of your workstations and render farm nodes.
 
Сверху