Есть ли сценарий, когда экземпляр приложения работает на нескольких компьютерах? - PullRequest
0 голосов
/ 13 января 2009

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

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

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

Ответы [ 4 ]

2 голосов
/ 13 января 2009

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

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

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

2 голосов
/ 13 января 2009

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

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

1 голос
/ 13 января 2009

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

Обычно это может происходить в сценарии с участием RPC какого-либо рода.

0 голосов
/ 13 января 2009

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

...