0

Предположим, у меня многоядерный ноутбук.Что будет происходить внутри моего компьютера, если я запускаю программу python и matlab сразу?

Я пишу код в python и запускаю его; , тогда, когда мой код python запущен, я открываю свой matlab и запускаю другой код.

Что происходит внизу? Будет ли этот процесс обрабатываться параллельно с использованием многоядерных процессоров?

Или компьютер ждет завершения, а затем обработки другого?

Спасибо!

P.S. Эти две программы, которые я имею в виду, можно считать простейшими по своей природе, например. рассчитать 1 + 2 + 3 ..... + 10000000

ответ

0

Ответ: это зависит!

Ваша операционная система постоянно переключает процессы. В фоновом режиме есть тонны процессов - обновление экрана, размещение звука в динамиках, проверка обновлений, опрос мыши и т. Д. - и эти процессы могут выполняться только на самом деле, если они получают некоторое количество процессорного времени. Если у вас много ядер, ОС будет использовать какую-то эвристику, чтобы выяснить, какие процессы должны получить некоторое время на ядрах. У вас есть иллюзия, что все работает одновременно, потому что (1) в некотором смысле вещи - это, работающие одновременно, потому что у вас несколько ядер, и (2) переключение происходит так быстро, что вы не можете заметить это произошло.

Причина, по которой я делаю это, заключается в том, что если вы одновременно запускаете как Python, так и MATLAB, в то время как в принципе они могут легко запускаться одновременно, не гарантируется, что это происходит, потому что у вас может быть тонна Другие вещи продолжаются. Возможно, что оба Python и MATLAB работают одновременно, а затем временно приостанавливаются, чтобы позволить какой-либо программе, которая воспроизводит музыку, загружать следующий звуковой фрагмент, который будет воспроизводиться в памяти, затем один пауза, пока страницы ОС в некоторой памяти с диска и другой принимает на себя и т. д.

Можете ли вы предположить, что они будут работать параллельно? Конечно! Самые разумные операционные системы оценят это и сделают это правильно. Можете ли вы предположить, что они исключительно работают параллельно и ничего больше? Не обязательно.

+0

большое понимание, спасибо! Так что, в общем, быстрее, если я запускаю обе программы одновременно или жду, пока вы закончите, прежде чем запускать другую? Кроме того, я думал, что если вы хотите использовать многоядерные процессоры, тогда вам нужен особый порядок в вашем коде; иначе многопоточность (переключение между тоннами задачи при скорости освещения) автоматически обеспечивается ОС. Это кажется неправильным? – wudanao

+0

@wudanao ОС автоматически обрабатывает логистику одновременного запуска нескольких программ, поэтому, если у вас есть программа Python и программа MATLAB *, и если каждая из них однопоточная *, то ОС может работать одновременно, а вы Не нужно ничего делать. Запуск обоих в то же время, скорее всего, будет быстрее, чем запуск один за другим. – templatetypedef

+0

отлично, спасибо! – wudanao