наилучшая (python) настройка для задачи, интенсивно использующей процессор / память - PullRequest
3 голосов
/ 05 февраля 2010

Я занимаюсь симуляцией, которая генерирует тысячи объектов результатов. Размер каждого объекта составляет около 1 МБ, и все объекты результатов должны находиться в памяти, чтобы запрашивать их для различных специальных отчетов. И для создания одного объекта результата требуется 1 ~ 2 секунды.

Таким образом, для выполнения одной симуляции требуется более 5 минут, хотя я полностью использую свой четырехъядерный процессор с параллельным выполнением. И процесс задачи занимает более 4 ~ 5 ГБ памяти для одного набора моделирования. Проблема в том, что я хочу запускать больше наборов симуляторов одновременно и делать это быстрее.

В настоящее время я делаю эту работу, используя c # и ironpython для windows vista64, четырехъядерный процессор с 8g памяти. Я закажу новый компьютер, 24 ГБ памяти с лучшим процессором и, в конечном итоге, я могу купить рабочую станцию ​​с несколькими процессорами и большим количеством памяти.

Итак, мой вопрос: как лучше всего использовать новое оборудование? Я рассматриваю одну из комбинаций ниже.

  1. Ironpython + C # на Windows 64
  2. ironpython + c # (моно) в linux 64
  3. Jython + Java на Windows 64
  4. Jython + Java на Linux 64

Движок симуляции написан на c # / java, и я использую python для создания отчетов. Какую комбинацию вы, ребята, считаете лучшей?

Нет ли большой разницы между .net и java-платформой для решения задачи, связанной с использованием памяти? Нет ли разницы между windows и linux?

Иногда я запускаю свой текущий код c # + ironpython на своем ноутбуке с Ubuntu (32-битная, 2-граммовая память) и чувствую, что он выглядит довольно стабильным по сравнению с Windows .NET ENV на том же аппаратном обеспечении. Но я не знаю, когда базовое оборудование стало лучше.

И я приветствую любые предложения независимо от выбора выше.

Ответы [ 2 ]

2 голосов
/ 05 февраля 2010

@ Дэйв на месте, если вы действительно заботитесь о тестировании каждой комбинации и посмотрите.

Лично я бы посоветовал вам придерживаться набора инструментов, который вам наиболее удобен, будь то Windows, Java, Linux, .Net или любая их случайная комбинация. Ваш уровень производительности при обслуживании и разработке программного обеспечения обычно превосходит любой незначительный прирост производительности, который вы можете получить от переключения ОС или ВМ.

2 голосов
/ 05 февраля 2010

Поскольку вы можете установить все это бесплатно и, похоже, у вас уже есть код, реализованный как в .Net, так и в Java, то я предлагаю вам сравнить программу на всех четырех платформах (windows / linux * java / .net).

Похоже, что все тяжелые работы выполняются в Java / C #, поэтому я подозреваю, что относительная производительность Jython и IronPython в значительной степени не имеет значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...