Frage

Wir wissen, dass eine einzelne Anwendungsinstanz mehrere Kerne und sogar mehrere physische Prozessoren verwenden können. Mit Cloud und Cluster-Computing oder andere spezielle Szenario, weiß ich nicht, wenn eine einzelne Position auf mehreren Computern ausgeführt werden können, oder über mehrere OS-Instanzen.

Das ist für mich wichtig, weil, neben als schlechte Programmierung betrachtet wird, verwende ich einige statische (wie in C #) (globale) Variablen, und mein Programm wird wahrscheinlich ein unerwartetes Verhalten, wenn diese Variablen haben worden geteilt zwischen Computern.

Aktualisieren Ich werde spezifischeren sein: Ich bin eine .NET-Anwendung zu schreiben, die eine Variable hat, das die Anzahl der aktiven IP-Verbindungen zählt, um zu verhindern, dass die Anzahl der Verbindungen nicht überschreitet einen Grenzwert pro Computer. Ich bin besorgt, wenn ich, dass die Anwendung in einer Cloud-Computing-Host bereitstellen, wenn ich eine Instanz der Variablen pro Computer haben werde.

War es hilfreich?

Lösung

Wenn Sie erfahren möchten, wie ein solches Szenario zu realisieren (eine einzelne Instanz auf mehreren Computern), ich glaube, Sie einige Artikel über lesen sollte? MPI .

  

es hat sich zu einem de facto Standard für   Kommunikation zwischen den Prozessen, die   Modell ein paralleles Programm auf einem laufenden   verteiltes Speichersystem.

Ihre Sorgen in Bezug auf: Offensichtlich müssen Sie irgendwie bewusst Ihr Programm ändern, wie eine Instanz über mehrere Rechner laufen zu lassen. Ansonsten findet kein Austausch natürlich Platz, und als Shy schreibt , gibt es nichts zu befürchten. Diese Art von Sachen würde nicht automatisch geschehen.

Andere Tipps

Was Programmierumgebung (Sprache) verwenden Sie? Es sollte genau definieren, was „statisch“ bedeutet. Höchstwahrscheinlich es erlaubt keine gemeinsame Nutzung von Informationen zwischen verschiedenen Computern, außer durch explizite Kanäle wie MPI oder RPC.

Allerdings abstrahiert High-Level-Umgebungen kann das Konzept der „laufen auf mehreren Computern“ von Ihnen völlig verbergen gestaltet werden. Es ist denkbar, eine virtuelle Maschine zu entwerfen, die auf einem Cluster ausgeführt werden kann und tatsächlich statische Variablen zwischen verschiedenen physischen Maschinen teilen - aber in diesem Fall Ihr Programm auf die einzelnen virtuellen Maschine ausgeführt wird, und ob das läuft auf einem oder mehreren physischen Maschinen sollten macht keinen Unterschied.

Wenn Sie nicht einmal eine Situation vorstellen kann, wo dies der Fall ist, warum Sie sich Gedanken darüber?

Normalerweise ist dies in einem Szenario passieren könnte RPC irgendeine Art beteiligt ist.

Nun ja, es ist distcc. Es ist die GCC-Compiler verteilt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top