2012-03-27 7 views
8

Es gibt eine vorhandene wissenschaftliche MPI-Anwendung in C (für Linux), die ich gerne auf Windows Azure ausführen würde. Ist das möglich?Bereitstellen von MPI-Anwendung unter Windows Azure

  1. Wenn möglich, wie wird die Anwendung bereitgestellt?

  2. Ist es notwendig, es in Microsoft MPI umzuwandeln?

  3. Gibt es eine bestimmte Art von Azure-Service, den ich dafür kaufen muss?

  4. Ist es notwendig, einen verwalteten Wrapper zu schreiben, damit er funktioniert?

Alle Vorschläge/Ansichten/Referenzen wären sehr hilfreich.

P.S Ich bin neu in Azure.

+1

MPI ist eine Spezifikation, keine Bibliothek. Obwohl ich kein MPI-Experte bin, glaube ich, dass Sie die Anwendung nicht in Microsoft MPI konvertieren müssen, da sowohl die Microsoft- als auch die Linux-MPI-Bibliotheken derselben Spezifikation folgen. –

+0

benutzte ich win7 für meine mpi Codes läuft, wie ich Linux (Ubuntu Distribution) verwendet, um den einzigen Unterschied, dass ich sehe, ist die Art und Weise, die ich mpi Bibliothek auf diesen Betriebssystemen installiert. – peaceman

Antwort

5

Sie müssen also nichts Besonderes tun, um MPI in Azure auszuführen. Beachten Sie, dass Azure-Knoten (im Gegensatz zu Amazon-Cluster-Compute-Instanzen) nicht wirklich gut eingerichtet sind. Sie haben nicht notwendigerweise ein Hochgeschwindigkeitsnetzwerk und die Knoten sind nicht notwendigerweise netzwerknah. So funktioniert ein eng gekoppelter Code wahrscheinlich nicht so gut, während viele Leute Amazon oder andere Dienste erfolgreich für diese Art von Arbeit verwenden.

Auf jeden Fall ist die "Microsoft" MPI, die mit HPC Server kommt, nur eine neu gebrandmarkt und möglicherweise leicht zwicken MPICH2; Es ist also ein Standard MPI und das sollte keine Probleme verursachen. Jedes MPI-Programm, das dem MPI-Standard entspricht, sollte in Ordnung sein.

Um einen einzelnen MPI-Job auszuführen, ist es nicht schwieriger, einen MPI-Job zum ersten Mal auf einer Handvoll (sprich) Desktops auszuführen; Sie müssen sicherstellen, dass Ihre Hostdatei korrekt eingerichtet ist und dass MPI eingerichtet ist, um mit dem entsprechenden IP-Block zu sprechen. Auf Technet, haben sie ein Beispiel für running the linpack benchmark on Azure nodes (mit einem Link zu dem, was es dauert, dass Ihre Azure workers are running HPC server zu machen). Sie überspringen ein paar Schritte, weil linpack ein vorgefertigtes binär Sie herunterladen können, aber mit MPI Kompilieren ist ziemlich einfach.

In Bezug auf die Bereitstellung einer Anwendung, so dass Sie es routinemäßig ausgeführt werden können (oder haben andere es laufen), werde ich mit anderen über aufschieben, wie am besten, das zu tun.

3

Microsoft wird bald Unterstützung für Linux VM's to be hosted in Azure starten. Sie könnten also möglicherweise eine Linux-VM erstellen, Ihre MPI-App installieren und konfigurieren und sie in Azure verschieben.

Allerdings sollten Sie zuerst überlegen, was Sie erreichen möchten. Wenn Sie einige Funktionen von Azure nutzen möchten (z. B. Multi-Instance-Verfügbarkeit &), müssen Sie Ihre App um zusätzlichen Code erweitern. Dank der Open-Source-Community und schnell zunehmenden Unterstützung von Microsoft für Open-Source, können Sie zusätzliche Funktionalität, die zum Beispiel bauen:

  • Node.js unter Linux oder Windows
  • Perl, Python, Ruby und/oder PHP alle auf Linux oder Windows
  • .NET-Code in einer Windows-Workerrolle oder auf Mono in Linux-VM läuft

Wenn Sie am meisten interessiert takin sind g Vorteil Ihrer Azure-Service-Konfiguration, dynamisches Hinzufügen/Entfernen von Worker-Rollen, Verwendung von Azure-Speicher usw., dann haben Sie Glück - all dies kann über HTML/JSON-REST-Schnittstellen gesteuert werden, was alles bedeutet, was HTTP sprechen kann (mit den richtigen Zugangsdaten) konfigurieren, verwalten und überwachen Sie Ihre Dienste und speichern/rufen Daten zum/vom Speicher ab.

HTH.

0

Ich weiß, dass dieses Thema ziemlich alt ist! Aber für den Fall, dass noch jemand hier landet:

Azure wurde inzwischen um spezielle Hochleistungsinstanzen erweitert, die Verbindungen mit hohem Durchsatz zwischen den Instanzen unterstützen.

Also, wenn Sie auf die A8 and A9 instances schauen, haben sie, neben der Standard-10Gbps-Netzwerkschnittstelle, eine zusätzliche Netzwerkschnittstelle, die für MPI-Anwendungen optimiert ist.

32-Gbps-Backend, RDMA Lage: Aktiviert niedrige Latenz, Hochdurchsatz- Anwendung Kommunikation zwischen Instanzen innerhalb eines einzigen Wolke Service oder Verfügbarkeit sets. Nur für MPI-Verkehr reserviert.

Es gibt auch einige documentation für das Setup.