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?
Wenn möglich, wie wird die Anwendung bereitgestellt?
Ist es notwendig, es in Microsoft MPI umzuwandeln?
Gibt es eine bestimmte Art von Azure-Dienst, den ich dafür kaufen muss?
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.
Sie müssen also nichts Spezielles 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 das "Microsoft" MPI das kommt mit HPC Server ist nur eine neu gebrandmarkt und möglicherweise etwas optimiert 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.
Wenn Sie einen einzelnen MPI-Job ausfü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 , das den Linpack-Benchmark auf Azure ausführt Knoten (einschließlich eines Links zu dem, was erforderlich ist, um sicherzustellen, dass Ihre Azure-Mitarbeiter führen HPC-Server aus ). Sie überspringen ein paar Schritte, da es sich bei linpack um eine vordefinierte Binärdatei handelt, die Sie herunterladen können, aber das Kompilieren mit MPI ist ziemlich einfach.
Um eine Anwendung so zu verteilen, dass sie routinemäßig ausgeführt werden kann (oder sie von anderen ausgeführt wird), werde ich anderen die Entscheidung überlassen, wie dies am besten funktioniert.
Microsoft wird demnächst Unterstützung für Linux-VMs werden in Azure gehostet . Sie könnten also 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. Multiinstanzverfügbarkeit und Skalierbarkeit), müssen Sie Ihre App um zusätzlichen Code erweitern. Dank der Open-Source-Community und Microsofts schnell wachsender Unterstützung für Open-Source können Sie beispielsweise zusätzliche Funktionen erstellen:
Wenn Sie am meisten daran interessiert sind, Ihre Azure-Dienstkonfiguration zu nutzen, Arbeitsrollen dynamisch hinzuzufügen / zu entfernen, Azure-Speicher usw. zu verwenden, dann haben Sie Glück - all dies kann über HTML / JSON gesteuert werden REST-Schnittstellen, die alles bedeuten, was HTTP sprechen kann, können (mit den korrekten Zugangsdaten) Ihre Dienste konfigurieren, verwalten, überwachen und Daten zum / vom Speicher speichern / abrufen.
HTH.
Ich weiß, dass dieser Thread ziemlich alt ist! Aber für den Fall, dass noch jemand hier endet:
Azure wurde inzwischen um spezielle Hochleistungsinstanzen erweitert, die Verbindungen mit hohem Durchsatz zwischen den Instanzen unterstützen.
Also, wenn Sie auf die schauen A8- und A9-Instanzen haben sie neben der Standard-10Gbps-Netzwerkschnittstelle eine zusätzliche für MPI-Anwendungen optimierte Netzwerkschnittstelle.
32-Gbit / s-Back-End, RDMA-fähig: Ermöglicht niedrige Latenzzeiten und hohen Datendurchsatz Anwendungskommunikation zwischen Instanzen innerhalb einer einzelnen Cloud Service oder Verfügbarkeit festgelegt. Nur für MPI-Verkehr reserviert.
Es gibt auch einige Dokumentation für das Setup.