Есть ли сценарий, когда экземпляр приложения работает на нескольких компьютерах?

StackOverflow https://stackoverflow.com/questions/439714

Вопрос

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

Это важно для меня, потому что, помимо того, что считается плохим программированием, я использую некоторые статические (как в C #) (глобальные) переменные, и моя программа, вероятно, будет иметь неожиданное поведение, если эти переменные стать общим для компьютеров.

Обновление . Я буду более конкретным: я пишу .NET-приложение, в котором есть одна переменная, которая подсчитывает количество активных IP-соединений, чтобы предотвратить это. превышать лимит на компьютер. Я обеспокоен, разверну ли я это приложение на хосте облачных вычислений, если у меня будет один экземпляр переменной на компьютер.

Это было полезно?

Решение

Если вы хотите узнать, как реализовать такой сценарий (один экземпляр на нескольких компьютерах), я думаю, вам следует прочитать несколько статей о MPI .

  

он стал де-факто стандартом для   связь между процессами, которые   моделировать параллельную программу, работающую на   Система распределенной памяти.

Относительно ваших забот. Очевидно, вам нужно как-то сознательно изменить программу, чтобы она работала как один экземпляр на нескольких компьютерах. В противном случае обмен данными, конечно, не происходит, и, как Застенчивый пишет , не о чем беспокоиться. Такого рода вещи не происходят автоматически.

Другие советы

Какую среду программирования (язык) вы используете? Он должен точно определять, что такое «статический» средства. Скорее всего, он не допускает обмена информацией между различными компьютерами, кроме как через явные каналы, такие как MPI или RPC.

Однако абстрактные среды высокого уровня могут быть спроектированы так, чтобы скрыть концепцию «работы на нескольких компьютерах». от вас полностью. Можно спроектировать виртуальную машину, которая может работать в кластере и фактически будет совместно использовать статические переменные между разными физическими машинами, но в этом случае ваша программа работает на одной виртуальной машине, и то, должна ли она работать на одной или нескольких физических машинах, должна не имеет никакого значения.

Если вы даже не представляете ситуацию, когда это происходит, почему вы об этом беспокоитесь?

Обычно это может произойти в сценарии с использованием RPC.

Ну да, есть distcc. Это распределенный компилятор GCC.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top