Wie führe ich mehrere .bat-Dateien aus, die sich in Unterordnern befinden?

703
Julia_arch

Ich bin neu in Supercomputern. Ich habe vor kurzem eine Amazon EC2-Instanz mit 128 CPUs und Microsoft Server 2012 erstellt. Ich habe einen Ordner mit 100 Unterordnern. In jedem Unterordner befindet sich eine BAT-Datei. Wie führe ich alle 100 .bat-Dateien gleichzeitig aus? Es gibt auch einen bestimmten Befehl, den ich verwenden muss, um jede .bat-Dateibearbeitung einer CPU zuzuweisen, sodass ich alle gleichzeitig ausführen kann, um eine schnelle Verarbeitung (Parallelverarbeitung) sicherzustellen. Ich entschuldige mich, wenn ich den falschen Befehl verwende Terminologie, wie gesagt, ich bin neu im Supercomputing und der Parallelverarbeitung.

1
Etwas über Parallelverarbeitung: Es gibt kein "zur gleichen Zeit". Noch nie. Die Gesetze der Physik erlauben es nicht. Mit gewissen Toleranzen können Dinge etwa zur gleichen Zeit passieren. Was willst du erreichen? Möchten Sie jede Batchdatei (von vielen) einem eindeutigen Prozessor zuordnen? KDM vor 8 Jahren 0
Jede Batch-Datei startet eine Beleuchtungssimulation (um die Lichtverhältnisse in Innenräumen zu untersuchen). Wenn ich die Batch-Datei starte, doppelklicken Sie darauf. Dadurch wird der Simulationsprozess gestartet, indem eine Simulations-Engine namens "Radiance" aufgerufen wird. Daher habe ich mich gefragt, wie es am einfachsten ist, alle 200 Dateien zu starten, anstatt sie einzeln anzuklicken. Julia_arch vor 8 Jahren 0

1 Antwort auf die Frage

1
KDM

Um ein Skript zum Ausführen einer Reihe anderer Skripts zu erstellen, können Sie Folgendes versuchen:

dir /s /b *.bat 

Dadurch werden alle Batchdateien in allen Ihren Unterverzeichnissen aufgelistet. Sie können die Ausgabe dieses Befehls an eine Batchdatei weiterleiten, z. B .:

dir /s /b *.bat > runall.bat 

Dadurch wird runall.bat erstellt. Bearbeiten Sie runall.bat und verwenden Sie ein Makro, um jede Zeile mit "start" zu versehen.

c:\Users\KDM\Script\go.bat 

wird:

start c:\Users\KDM\Script\go.bat 

Wenn Sie die soeben erstellte BAT-Datei ausführen, wird jede Ihrer BAT-Dateien in einer separaten Eingabeaufforderung gestartet. Lassen Sie das Betriebssystem sich darum kümmern, die Prozessoren fair zuzuordnen.

Ich bin mir jedoch nicht sicher, ob dies das erreichen wird, was Sie wollen. Ich habe das Gefühl, du suchst nach etwas mehr Schlauem. Abgesehen von der Anzahl der Prozessoren haben Sie immer noch die Einschränkung, dass Sie nur mit einer begrenzten Hardware arbeiten. Ich meine, Sie können eine CPU in 128 virtuelle CPUs unterteilen, wenn Sie möchten, aber Sie haben immer noch nur eine CPU.

Das ist großartig, ich habe gestern fünf Stunden lang verbracht, um herauszufinden, wie ich das mache, und ich konnte es nicht zum Laufen bringen. Vielen Dank. Wie führe ich ein Makroskript aus, um jeder Zeile "Start" hinzuzufügen? Julia_arch vor 8 Jahren 0
Ich konnte Strat in Notepad ++ mithilfe des Dialogfelds Suchen und Ersetzen hinzufügen. Danke noch einmal Julia_arch vor 8 Jahren 1