2015-11-02 2 views
-1

Всякий раз, когда я запускаю parfor в matlab, в диспетчере задач я вижу, что 4 сеанса на четырехъядерной машине занимают всего около 2,1 ГБ памяти. Есть ли способ увеличить память, полученную для процессов Matlab? То же самое касается процессора - он не достигает даже 50% использования. Я даже попробовал увеличить работу, но то же самое остается.Назначение памяти Matlab

+1

Это очень проблемно. Объем памяти/процессора, который будет использоваться вашим компьютером, зависит от выполняемой задачи: –

ответ

0

Память не является данным процессам, а запрашивается процессом, а затем выделяется, если доступно. Если вы используете 64-битную версию Matlab, то у нее по существу будет доступ к столько памяти, сколько доступно на вашем компьютере. Matlab просто не запрашивает больше 2,1 ГБ, поэтому здесь ничего не поделаешь. Что заставляет вас думать, что использование большего объема памяти в любом случае повысит производительность?

Для использования ЦП ситуация немного сложнее. Является ли ваша машина настоящим четырехъядерным процессором или двухъядерным процессором с гиперпотоком. Скорее всего, это последний, который отображается в диспетчере задач как имеющий 4 ядра, но на самом деле использует умные трюки в процессоре, чтобы одновременно использовать два разных процесса для использования одного и того же ядра. Если вы загружаете ядро ​​очень сильно, эти трюки не могут использоваться, поэтому они будут отображаться как 50% -ное использование, даже если вы фактически использовали всю доступную вычислительную мощность.

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

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

+0

В этом случае позвольте мне перефразировать его. Как получить процессор и использование данных памяти (и, возможно, использование диска) в режиме реального времени по мере запуска кода? Есть ли способ сохранить эти данные в файле? – user5461722

+0

@ user5461722, это совсем другой вопрос, но, возможно, см. [Этот ответ] (http://stackoverflow.com/a/25953389/2433501). – zelanix

Смежные вопросы