Что заставляет одну машину Vista работать в 10 раз быстрее, чем другая? - PullRequest
0 голосов
/ 27 августа 2010

Мы запускаем консольную программу на Фортране, которую мы запускаем годами. Недавно мы приобрели идентичные новые машины HP серверного класса (4 процессора, 8 Гб оперативной памяти, 4 жестких диска) для всех в офисе. Мы настроили их одинаково, насколько мы знаем. Мы можем скомпилировать программу Fortran на одной машине, передать исполняемый файл на разные машины, и на двух машинах она выполняется крайне медленно, в то время как на двух других она имеет скромную производительность (но не так хорошо, как до обновления с машин XP). 1001 *

Он почти не использует консольный вывод (около 40 строк), но выводит около 15 мегабайт файлов.

Мы открываем диспетчер задач, чтобы увидеть, что происходит, и видим, что на медленных машинах он загружает ОДИН ЦП примерно до 15%. На быстрых машинах он загружает ВСЕ ЦП примерно до 40% (но один из них загружается больше, чем другие). Насколько я помню, в XP он загружал процессор до 99% и работал намного быстрее.

Эти машины являются машинами общего назначения для сотрудников, и на них имеется множество вредоносных программ компании. И есть вероятность того, что они имеют немного другую структуру каталогов. Но то, что кажется мне совершенно загадочным, так это то, что Vista не дает им больше процессорного времени. Если бы процессоры загружались, я мог бы обвинить изменение производительности в разных структурах каталогов, но не загружать процессоры просто поражало мое мнение.

David

Ответы [ 4 ]

1 голос
/ 27 августа 2010

SWAG, но вы проверили конфигурацию своего антивирусного сканера?Если сканер не настроен на игнорирование типа файла, который вы пишете на медленном компьютере, то каждая запись в эти файлы может быть перехвачена и отсканирована перед записью на диск.Это может привести к тому, что процесс будет находиться в режиме ожидания ввода-вывода и не будет планироваться так часто.

1 голос
/ 27 августа 2010

Перейдите в диспетчер задач Windows, Производительность / - Выберите в [Просмотр] параметр: [ Kernel Times ] и посмотрите, что отображается на панелях во время выполнения программы.

Если только его 15% загружается в квадрато + гипертитье, что говорит в основном, OpenMP, MPI (или что-то еще) - работает неправильно - работает 1 / 8 => 15%. Можете ли вы выполнить команду MPI-test для вашей конкретной системы, чтобы проверить наличие ошибок при многопроцессорной обработке на каждом блоке? Поэтому возникает вопрос: почему многопроцессорная среда не работает?

Привет

БВУ

1 голос
/ 27 августа 2010

если в IO есть узкое место, процессор не будет загружаться так сильно, потому что он в основном ожидает ввода-вывода. Можно даже вообразить, что это вызовет проблему «один ЦП против многих ЦП», если просто нет смысла пнуть в другой ЦП, потому что между ожиданием достаточно времени. Что если вы возьмете внешний HD-диск и попробуете, если различия также будут иметь место, если вы запустите одну и ту же программу на этом HD-диске на разных машинах?

0 голосов
/ 27 августа 2010

В Vista возникла проблема с некоторыми неконтролируемыми утечками памяти, возможно, это ваша ошибка, какой-то конфликт в «раздутых программах» вызывает утечку памяти, и поэтому ваша программа на Фортране работает намного медленнее?Вы проверили это со всеми программами, которые закончились.Кажется маловероятным, что ваша консольная программа является проблемой.Похоже, что определенно происходит конфликт памяти.

...