Все ответы об инженерном анализе

Перед началом работы настоятельно рекомендуем ознакомиться с правилами форума.

Использование 8-ми ядер процессора и всей оперативной памяти в решателе Mechanical

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

Здравствуйте, уважаемые эксперты!

В Workbench в Tools -> Solve Process Settings -> My Computer -> Advanced ставлю в Distribure Solution 8 ядер процессора. На работе у меня 8-ядерный AMD, дома 8-потоковый Core i7. Что там, что там при любом решателе во время подготовки решения мне выдаёт ошибку, что запрошено 8 ядер процессора, а есть всего 4. В итоге при расчёте задействовано всего 50% процессора. Подскажите, пожалуйста, уважаемые эксперты, почему так происходит и каким образом задействовать все 8 ядер/потоков и 100% мощности процессора.

Второй вопрос - при решении в режиме Out-of-core у меня используется не вся оперативная память, а, к примеру, 16 гб из 32. Есть ли возможность задействовать всю оперативку?

С уважением, Владимир.

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

Здравствуйте. Mechanical использует только реальные ядра в независисмости от того сколько запрошено. 

На процессорах AMD (в отличие от intel)  имеет смысл включить HYPERTHREADING при помощи переменной ANS_ALLOW_HYPER_THREADING = 1

По поводу оперативной памяти:

Тут можно указать сколько памяти ансис может занимать.

 

 

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

Здравствуйте!

Большое спасибо за Ваш ответ!

Получается, что для 8-потокового Core i7 загрузить его на 100% одной задачей вообще невозможно - Mechanical будет брать 4 ядра и грузить процессор на 50%?

Указанную переменную нужно создавать в Windows в переменных среды?

По поводу оперативной памяти. Если указывать в приложенном Вами окне память, то АНСИС будет брать не только оперативную память, но и виртуальную (файл подкачки). В частности, если у меня 32 гб ОЗУ +30 гб файл подкачки, то можно указать максимум около 57 гб (это те же 62 гб за вычетом того, что висит в оперативке в данный момент). При это высока вероятность того, что на каком-то этапе решения АНСИСу перестанет хватать памяти, поскольку какая-то из сторонних программ забьёт часть оперативки, и общей памяти, доступной для решателя, станет меньше, чем 57 гб. Если же ставить меньше, то ОЗУ все не используется. С этим и связано затруднение.

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

Получается, что для 8-потокового Core i7 загрузить его на 100% одной задачей вообще невозможно - Mechanical будет брать 4 ядра и грузить процессор на 50%?

Да.

Указанную переменную нужно создавать в Windows в переменных среды?

Да.

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

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

Хорошо, большое спасибо!

Ту тему, кстати, тоже я создавал)))

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

Попробовал создать переменную, всё равно при увеличении числа процессоров до 8 выдаёт такую ошибку:

   *****  ANSYS COMMAND LINE ARGUMENTS  *****
  BATCH MODE REQUESTED (-b)    = NOLIST
  INPUT FILE COPY MODE (-c)    = COPY
  DISTRIBUTED MEMORY PARALLEL REQUESTED
       8 PARALLEL PROCESSES REQUESTED WITH SINGLE THREAD PER PROCESS
    TOTAL OF     8 CORES REQUESTED
  MPI OPTION                   = INTELMPI
  INPUT FILE NAME              = D:\_ProjectScratch\Scr34A9\dummy.dat
  OUTPUT FILE NAME             = D:\_ProjectScratch\Scr34A9\solve.out
  START-UP FILE MODE           = NOREAD
  STOP FILE MODE               = NOREAD

 RELEASE= Release 17.0         BUILD= 17.0      UP20151214   VERSION=WINDOWS x64
 CURRENT JOBNAME=file0  13:26:51  MAY 13, 2016 CP=      1.248

 *** ERROR ***                           CP =       1.279   TIME= 13:26:52
 The requested number of distributed-memory processes (8) exceeds the   
 number of physical processors that are available (4) on machine: PC.   
 The use of virtual processors is not recommended.  It is required that 
 you use a maximum of 4 distributed-memory processes on this machine.   

 

+--------- D I S T R I B U T E D   A N S Y S   S T A T I S T I C S ------------+

Release: Release 17.0       Build: 17.0       Update: UP20151214   Platform: WINDOWS x64
Date Run: 05/13/2016   Time: 13:26
Operating System: Windows 7 Service Pack 1 (Build: 7601)
Windows Process ID: 10308      

Processor Model: AMD FX(tm)-8350 Eight-Core Processor

Compiler: Intel(R) FORTRAN Compiler Version 15.0.2  (Build: 20150121)
          Intel(R) C/C++ Compiler Version 15.0.2  (Build: 20150121)
          Intel(R) Math Kernel Library Version 11.2.3 Product Build 20150413

Number of machines requested            :    1
Total number of cores available         :    8
Number of physical cores available      :    4
Number of processes requested           :    8
Number of threads per process requested :    1
Total number of cores requested         :    8 (Distributed Memory Parallel)              
MPI Type: INTELMPI
MPI Version: Intel(R) MPI Library 5.0 Update 3 for Windows* OS

 

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

Вставлю пять копеек.

При использовании 4 ядер процессора с 4 физическими ядрами с точки зрения вычислений с плавающей точкой он загружается на 100% своих возможностей, т.к. количество FPU (floating point unit) равно количеству физических ядер. Проценты загрузки, которые показывает винда, в данном случае не показательны.

Процессоры AMD не поддерживают HyperThreading, но винда видит половину ядер как логические. Это происходит потому, что у оптерона на 2 физических ядра один общий FPU. Но этот FPU 256-битный, и может делиться на два неконкурентных 128-битных (см. напр. https://it.slashdot.org/comments.pl?sid=3230805&cid=41879541, то же самое мне говорил Павел Станавов из AMD Россия), поэтому с точки зрения вычислений все AMDшные ядра полноценны. Поэтому с оптеронами нужно включать упомянутую Сергеем переменную. Проблема только в том, что механика на процессорах AMD вообще фигово считается (скорее всего, из-за отсутствия соответствующей оптимизации кода).

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

Спасибо! Теперь немного понятно стало)

Но всё равно не работают 8 ядер. Я вот посмотрел, может, это из-за того, что используется MPI Type: INTELMPI?

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

вы переменную окружения добавили?

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

После нескольких перезагрузок заработало. Большое спасибо ещё раз!

Теперь пытаюсь разобраться, чтобы всю оперативную память под расчёт забирал.

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

Теперь пытаюсь разобраться, чтобы всю оперативную память под расчёт забирал.

В современных версиях ансис не рекомендуется использовать какие-то дополнительные настройки работы с памятью, он работает с памятью самостоятельно и автоматически выбирает подходящий режим (in-core или out-of-core)

Добавить комментарий

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

Максимальный размер файла: 999 МБ.
Допустимые типы файлов: txt doc docx xls xlsx pdf rar zip 7zip tar.