Hochleistungsrechnen mit Windows Visual Studio 2005 + Intel ompiler hristian Terboven Rechen- und Kommunikationszentrum RWTH Aachen 1 Hochleistungsrechnen mit Windows enter omputing and ommunication
Agenda Visual Studio 2005: Projektverwaltung Visual Studio 2005: Konfigurationen und Microsoft /++ Starten von Programmen Visual Studio 2005: Intel /++ Visual Studio 2005: Intel Fortran Portierung von Unix nach Windows Stackgröße Zeitmessung und Sonstiges 2 Hochleistungsrechnen mit Windows enter omputing and ommunication
Agenda Visual Studio 2005: Projektverwaltung Visual Studio 2005: Konfigurationen und Microsoft /++ Starten von Programmen Visual Studio 2005: Intel /++ Visual Studio 2005: Intel Fortran Portierung von Unix nach Windows Stackgröße Zeitmessung und Sonstiges 3 Hochleistungsrechnen mit Windows enter omputing and ommunication
Visual Studio 2005 Projektverwaltung Start All Programs MS Visual Studio 2005 Visual Studio 2005 Der erste Start von VS2005 kann ein paar Minuten dauern Datei-Ansicht Klassen-Ansicht 4 Hochleistungsrechnen mit Windows enter omputing and ommunication
Visual Studio 2005 Projektverwaltung VS2005 bietet viel Unterstützung bei der Erstellung von grafischen Oberflächen für Windows das wird hier aber nicht betrachtet, da meist HP = Konsolenanwendung gilt. File New Project 5 Hochleistungsrechnen mit Windows enter omputing and ommunication
Visual Studio 2005 Projektverwaltung Empty Project bietet sich an, wenn bereits Quelldateien existieren. 6 Hochleistungsrechnen mit Windows enter omputing and ommunication
Visual Studio 2005 Projektverwaltung Die kürzesten Klick-Wege erhält man meistens durch Benutzung der Kontextmenüs, also Rechte-Maustaste-Klick auf Objekte. Solution, enthält mindestens ein Projekt Hinzufügen von (bestehenden) Dateien zu einem Projekt: Rechte-Maustaste-Klick auf das Projekt Add Existing Item. 7 Hochleistungsrechnen mit Windows enter omputing and ommunication
Visual Studio 2005 Projektverwaltung Die Ordner im Projekt haben keine praktische Bedeutung sondern dienen lediglich der einfacheren Navigation im Projekt. Es können neue eigene Ordner angelegt werden. 8 Hochleistungsrechnen mit Windows enter omputing and ommunication
Agenda Visual Studio 2005: Projektverwaltung Visual Studio 2005: Konfigurationen und Microsoft /++ Starten von Programmen Visual Studio 2005: Intel /++ Visual Studio 2005: Intel Fortran Portierung von Unix nach Windows Stackgröße Zeitmessung und Sonstiges 9 Hochleistungsrechnen mit Windows enter omputing and ommunication
Visual Studio 2005 Microsoft /++ Der Kompilierprozess wird über Build Build Solution angeworfen. Im Ausgabefenster werden Inmationen (Warnungen, Fehler, etc.) über den Kompilierprozess angezeigt. Mit einem Doppelklick auf die Meldung wird zur entsprechenden odestelle gesprungen. 10 Hochleistungsrechnen mit Windows enter omputing and ommunication
Visual Studio 2005 Microsoft /++ ompileroptionen werden für ein Projekt festgelegt, durch Rechte- Maustaste-Klick auf das Projekt und Auswahl von Properties. 11 Hochleistungsrechnen mit Windows enter Setzen der ompileroptionen für eine Konfiguration. omputing and ommunication
Visual Studio 2005 Konfigurationen Eine Auswahl von ompiler- und Linkeroptionen wird in einer Konfiguration zusammengefasst. Die aktive Konfiguration wird über Build onfiguration Manager festgelegt. Jedes Projekt hat nach dem Anlegen bereits zwei Konfigurationen: Debug: keine Optimierung, dafür volle Debuginmationen Release: mittlere Optimierung, viele Debuginmationen Es können beliebig viele neuen Konfigurationen angelegt werden. Die Auswahl der Plattm, also die Festlegung auf 32bit oder 64bit ode, erfolgt ebenfalls über den Konfigurationsmanager. 12 Hochleistungsrechnen mit Windows enter omputing and ommunication
Visual Studio 2005 Konfigurationen x64 = 64bit auf EM64T bzw. AMD64 13 Hochleistungsrechnen mit Windows enter omputing and ommunication
Agenda Visual Studio 2005: Projektverwaltung Visual Studio 2005: Konfigurationen und Microsoft /++ Starten von Programmen Visual Studio 2005: Intel /++ Visual Studio 2005: Intel Fortran Portierung von Unix nach Windows Stackgröße Zeitmessung und Sonstiges 14 Hochleistungsrechnen mit Windows enter omputing and ommunication
Starten von Programmen Visual Studio 2005 Starten im Debugger von VS2005: Debug Start Debugging 15 Hochleistungsrechnen mit Windows enter omputing and ommunication
Starten von Programmen Kommandozeile Das Starten eines Executable ist natürlich auch von der Kommandozeile aus möglich, entweder über die DOS-Box oder unter cygwin. Die Executables werden in den Verzeichnissen der Konfiguration abgelegt, die beim Erstellen aktiv war. Verzeichnisstruktur eines Visual Studio Projektes: <top_level> Benutzerverzeichnis <projektname> Von Visual Studio angelegt Debug Konfiguration Debug Release Konfiguration Release x64 Debug Konfiguration Debug für 64bit Plattm Release Konfiguration Release für 64bit Plattm 16 Hochleistungsrechnen mit Windows enter omputing and ommunication
Demo Demo: Visual Studio 2005, c-ser 17 Hochleistungsrechnen mit Windows enter omputing and ommunication
Agenda Visual Studio 2005: Projektverwaltung Visual Studio 2005: Konfigurationen und Microsoft /++ Starten von Programmen Visual Studio 2005: Intel /++ Visual Studio 2005: Intel Fortran Portierung von Unix nach Windows Stackgröße Zeitmessung und Sonstiges 18 Hochleistungsrechnen mit Windows enter omputing and ommunication
Visual Studio 2005 Intel /++ Zur Benutzung des Intel /++ ompilers muss das Projekt konvertiert werden: Rechte-Maustaste-Klick auf die Solution und Auswahl von onvert to use Intel ++ Project System. Eine Rückkonvertierung zur Verwendung des Microsoft /++ ompilers ist möglich. Quelldateien werden bei der Konvertierung nicht berührt. Objektdateien von vor der Konvertierung können Probleme verursachen, deshalb ist ein Bereinigen des Projektes nach einer Konvertierung sinnvoll: Build lean Solution. 19 Hochleistungsrechnen mit Windows enter omputing and ommunication
Visual Studio 2005 Intel /++ Der Intel ompiler bietet weitergehende Optimierungen: 20 Hochleistungsrechnen mit Windows enter omputing and ommunication
Agenda Visual Studio 2005: Projektverwaltung Visual Studio 2005: Konfigurationen und Microsoft /++ Starten von Programmen Visual Studio 2005: Intel /++ Visual Studio 2005: Intel Fortran Portierung von Unix nach Windows Stackgröße Zeitmessung und Sonstiges 21 Hochleistungsrechnen mit Windows enter omputing and ommunication
Visual Studio 2005 Intel Fortran Für Fortran wird von Intel mit der QuickWin Bibliothek ebenfalls die Erstellung von grafischen Oberflächen unterstützt, hier werden aber wieder nur Konsolenanwendungen verwendet. Projekttyp: Intel Fortran Project onsole Application 22 Hochleistungsrechnen mit Windows enter omputing and ommunication
Visual Studio 2005 Intel Fortran Empty Project bietet sich an, wenn bereits Quelldateien existieren. 23 Hochleistungsrechnen mit Windows enter omputing and ommunication
Visual Studio 2005 Intel Fortran Das Aussehen und Verhalten von VS2005 ist größtenteils identisch. 24 Hochleistungsrechnen mit Windows enter omputing and ommunication
Demo Demo: Visual Studio 2005, f-ser 25 Hochleistungsrechnen mit Windows enter omputing and ommunication
Agenda Visual Studio 2005: Projektverwaltung Visual Studio 2005: Konfigurationen und Microsoft /++ Starten von Programmen Visual Studio 2005: Intel /++ Visual Studio 2005: Intel Fortran Portierung von Unix nach Windows Stackgröße Zeitmessung und Sonstiges 26 Hochleistungsrechnen mit Windows enter omputing and ommunication
Portierung von Unix nach Windows Stackgröße Das Fortran-Programm führt zu einem Stackfehler (Überlauf): 27 Hochleistungsrechnen mit Windows enter omputing and ommunication
Portierung von Unix nach Windows Stackgröße Der Debugger von Visual Studio hilft bei der Problemfindung: Unbehandelte Ausnahme: Stacküberlauf 28 Hochleistungsrechnen mit Windows enter Der all Stack zeigt, in welcher Routine die Ausnahme aufgetreten ist. _chkstk() überprüft, ob genügend Stack verfügbar ist. omputing and ommunication
Portierung von Unix nach Windows Stackgröße Unter Windows ist die Stackgröße eines Programme im Executable festgeschrieben. Ein neues Linken ist notwendig: 29 Hochleistungsrechnen mit Windows enter omputing and ommunication
Portierung von Unix nach Windows Zeitmessung Unix-spezifische Systemfunktionen stehen unter Windows nicht direkt zur Verfügung. In vielen Aspekten kann cygwin allerdings helfen. Unsere Beobachtung: bei den meisten Programmen führen nur zwei Dinge zu Portierungsaufwand: Trennzeichen für Verzeichnisse: UNIX = /, Windows = \, dies kann meistens einfach durch ein Makro entsprechend gesetzt werden. Zeitmessung innerhalb des Programms: hier muss unter Windows der ode umgeändert werden. Für /++ und Fortran haben wir auf der Webseite der Veranstaltung entsprechende Beispielcodes für die Zeitmessung unter Unix und unter Windows bereitgestellt. Unter Windows (nicht cygwin) ist das Symbol WIN32 definiert. Generell: in Kürze ist die R_Lib aufrufkompatibel auch unter Windows verfügbar, wobei einige Funktionalitäten nicht implementiert sein wird. 30 Hochleistungsrechnen mit Windows enter omputing and ommunication
Portierung von Unix nach Windows Sonstiges Die Optionen der Intel ompiler unterscheiden sich zwischen Unix und Windows. Auf der Webseite des Kurses haben wir ein Dokument bereitgestellt, welches die Plattmen gegenüberstellt. In Makefiles kann es zu Problemen kommen, da die Erweiterung für Objektdateien unter Unix.o ist und unter Windows.obj. Der GNU ompiler unter cygwin verhält sich allerdings wie unter Unix. Bibliotheken werden beim Linken direkt mit dem Namen angegeben, also z.b. it... msmpi.lib. Um Pfade von Unix nach Windows zu konvertieren, kann unter cygwin die Funktion cygpath verwendet werden. Windows benutzt andere Zeilenumbrüche als Unix. Zur Konvertierung können die Programme unix2dos und dos2unix benutzt werden. Sie stehen auch unter cygwin zur Verfügung. 31 Hochleistungsrechnen mit Windows enter omputing and ommunication
Visual Studio 2005 + Intel ompiler Gibt es Fragen zu diesem Teil? 32 Hochleistungsrechnen mit Windows enter omputing and ommunication