(Не)Ограничение использования ЦП - Windows - Mathematica

Я программирую на Mathematica 8.

Когда я запускаю свою программу, я проверяю с помощью диспетчера задач Win8, что загрузка ЦП составляет 35%, как только она начинает работать, и использование моей памяти также увеличивается до 44%. Ограничивает ли Win8 объем использования ЦП, который может иметь определенная программа? Мне нужно, чтобы мой компьютер использовал больше ресурсов для более быстрой работы программы.

Любая помощь будет оценена по достоинству.


person An old man in the sea.    schedule 31.03.2014    source источник
comment
Скорее всего, Mathematica не может использовать весь ЦП. Не все можно идеально распараллелить.   -  person Mysticial    schedule 31.03.2014


Ответы (1)


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

Хотя у вас действительно может быть мощный 4-ядерный процессор, и у вас есть программа, способная использовать все 4 процессорных ядра (что определенно есть в системе mathematica!), если код не написан параллельно, вы сможете только использовать по одному ядру за раз для выполнения расчетов. Как упомянул Mysticial в комментарии, не весь код можно распараллелить, на самом деле, я бы сказал, что многие проблемы по своей природе не могут быть распараллелены.

Проверьте здесь несколько хороших примеров проблем. которые могут быть разделены параллельным образом. Теперь использование вашей памяти будет просто увеличиваться с размером данных, которые временно хранятся. (пример: хранение матрицы 69X69 занимает меньше памяти (ОЗУ), чем 4000X4000, параллельность имеет мало общего с этим, а скорее с самой проблемой).

В любом случае, tl;dr, ваш компьютер работает нормально. Чтобы использовать все 100 % используемого вами 4-ядерного компьютера, ознакомьтесь с Этот Mathematica справочник по параллельным операциям.

person WillBD    schedule 31.03.2014