У нас есть работающее приложение, которое просто сидит и выполняет целую кучу итеративной обработки некоторых файлов данных для выполнения некоторых симуляций. Это делается «старым» приложением Win32, которое не поддерживает многопроцессорность, поэтому новые (безумные) компьютеры и рабочие станции в основном простаивают, выполняя это приложение.
Однако, поскольку он устанавливается обычным установщиком Windows Install Shield, я не могу установить и запустить несколько копий приложения.
Работа может быть разделена вручную перед обработкой, что позволяет распределять работу по нескольким машинам, но мы по-прежнему не можем использовать преимущества многоядерных процессоров. Результаты могут быть объединены вместе после обработки для создания полного моделирования.
Есть ли продукт, который позволил бы мне «разделить» установку (или 4), чтобы я мог воспользоваться преимуществами многоядерного процессора? Я думал об использовании MS Softgrid, но считаю, что тяжелая работа по-прежнему зависит от удаленного сервера (хотя, пожалуйста, поправьте меня, если я ошибаюсь).
Кроме того, есть ли способ распределить рабочую нагрузку с одной машины? Значит, ввод можно разделить на 50 частей, раздать 50 машинам и обработать?
И все это без реального изменения исходного приложения?
В идеальном мире я бы заставил приложение использовать преимущества DesktopGrid (BOINC), но, как и в большинстве «критически важных корпоративных приложений», необходимость есть, а денег нет.
Заранее спасибо (и извините, если это не подходит для serverfault).
Вы можете получить лучшую помощь по переполнению стека - в основном вы хотите установить N копии программного обеспечения и напишите "интерфейс", который берет на себя рабочую нагрузку, разбивает ее на N Parts & передает его изолированным "внутренним" копиям программы (автоматизируя описанное вами ручное деление).
Фактическая реализация (отдельные установки и интерфейс) зависит от того, как написано ваше программное обеспечение. Кроме того, если ваша законченная работа должна быть повторно интегрирована (у вас есть 4 фрагмента, которые должны стать одним элементом), пользовательский интерфейс должен быть достаточно умным, чтобы сделать это ...
Короче говоря, если процесс не поддерживает многопроцессорность или распределенные вычисления, вы не сможете сделать это самостоятельно.
Вы можете использовать простую виртуализацию (Virtual PC, продукт VMWare для настольных ПК) для запуска нескольких копий «бок о бок» на одном и том же оборудовании, но это не будет «многопроцессорное» или «распределенное» вычисление, это будет несколько полностью отдельных процессы, работающие в разных очередях работы. Трудно сказать из вашего сообщения, но я думаю, что это все, что вы пытаетесь сделать в любом случае.
Вы сказали, что не можете установить более одной копии программного обеспечения, но можете ли вы бегать более одной копии программного обеспечения? Я думаю, вам не нужно делать первое, чтобы иметь возможность делать второе. Если что-то в программном обеспечении препятствует запуску нескольких копий, вы можете взломать EXE с помощью редактора ресурсов, чтобы удалить или обойти это ограничение.