Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Führen Sie die Optimierung für einen privaten HealthOmics Workflow durch
Sie können Läufe im Hinblick auf Gesamtkosten, Gesamtlaufzeit oder eine Kombination aus beidem optimieren. HealthOmics stellt Daten und Tools bereit, die Sie bei Entscheidungen zur Laufoptimierung unterstützen. Die Run-Optimierung gilt nicht für Ready2Run-Workflows, da Sie keine Kontrolle darüber haben, wie der Service die Ressourcenbereitstellung für diese Workflows verwaltet.
Der erste Schritt besteht darin, den aktuellen Ressourcenverbrauch und die Kosten für die laufenden Aufgaben zu verstehen und anschließend Methoden zur Optimierung der Ausführungskosten und der Leistung anzuwenden.
Themen
Führen Sie Analyzer aus
HealthOmics bietet ein Open-Source-Tool namens Run Analyzer
Anmerkung
Run Analyzer schätzt die Aufgabenkosten und potenziellen Kosteneinsparungen auf der Grundlage der AWS Listenpreise zum Zeitpunkt der Ausführung des Tools. Beurteilen Sie die Optimierungsempfehlungen und implementieren Sie diejenigen, die für Ihre Anwendungsfälle sinnvoll sind. Testen Sie die Optimierungen, die Sie verwenden, um sicherzustellen, dass sie für Ihren Lauf funktionieren.
Run Analyzer führt die folgenden Aufgaben aus:
-
Wertet Speicher- und Rechenengpässe aus.
-
Identifiziert Aufgaben, bei denen zu viel Arbeitsspeicher oder CPU zur Verfügung steht, und empfiehlt neue Instanzgrößen, mit denen die Kosten gesenkt werden können.
-
Berechnet Kostenschätzungen für einzelne Aufgaben und berechnet die potenziellen Kosteneinsparungen, wenn Sie die Empfehlungen anwenden.
-
Bietet Ihnen eine Zeitleistenansicht der Aufgaben, sodass Sie die Aufgabenabhängigkeiten und die Verarbeitungsreihenfolge überprüfen können. Die Zeitleiste hilft Ihnen auch dabei, Aufgaben mit langer Laufzeit zu identifizieren.
-
Enthält Empfehlungen zur Dateisystemgröße für den Run-Speicher.
-
Zeigt die Bereitstellungszeiten für Aufgaben an, sodass Sie Bereiche identifizieren können, in denen große Containerlasten die Bereitstellungszeit verlangsamen könnten.
-
Das Tool enthält einen Eingabeparameter (Headroom), mit dem Sie die Aggressivität der Optimierungsempfehlungen steuern können.
Die folgenden Abschnitte enthalten spezifische Vorschläge für die Verwendung von Run Analyzer zur Optimierung von Läufen.
Ermitteln Sie die Betriebskosten
Sie können die folgenden Methoden und Richtlinien verwenden, um die Betriebskosten zu ermitteln:
-
Gehen Sie wie folgt vor, um die gesamten Betriebskosten für einen Abrechnungszeitraum anzuzeigen:
-
Öffnen Sie die Billing and Cost Management-Konsole
und wählen Sie Rechnungen aus. Erweitern Sie unter Gebühren nach Service den Eintrag Omics.
Erweitern Sie die Region und sehen Sie sich dann die Kosten für all Ihre Läufe an, aufgeschlüsselt nach Omics-Instanztyp, Run-Speichertyp und Ready2Run-Workflow.
-
-
Gehen Sie wie folgt vor, um einen Kostenbericht zu erstellen, der Informationen für jeden Lauf enthält:
-
Öffnen Sie die Billing and Cost Management-Konsole
und wählen Sie Datenexporte. -
Wählen Sie Erstellen, um einen neuen Datenexport zu erstellen.
-
Geben Sie einen Exportnamen für den Datenexport ein. Behalten Sie die Standardwerte der anderen Felder bei, um einen CUR-Bericht (Kosten und Nutzung) zu erstellen.
-
Wählen Sie unter Zeitgranularität die Option stündlich oder täglich aus.
-
Führen Sie unter Speichereinstellungen für den Datenexport die folgenden Konfigurationsschritte durch:
-
Konfigurieren Sie einen Amazon S3 S3-Bucket für den Datenexport.
-
Wählen Sie für die Dateiversionierung aus, ob die bestehende Exportdatei überschrieben oder jedes Mal eine neue Datei erstellt werden soll.
Das System generiert den ersten Bericht innerhalb der nächsten 24 Stunden und die nachfolgenden Berichte einmal täglich.
-
Weitere Informationen zum Erstellen des Datenexports finden Sie unter Erstellen von Datenexporten im Benutzerhandbuch für AWS Datenexporte.
-
-
Du kannst deine Läufe taggen, um die Kosten nach Kategorien, z. B. nach Team oder Projekt, zu überwachen und zu optimieren. Wenn Sie Tags verwenden, gehen Sie wie folgt vor, um die Kosten für die einzelnen Durchläufe nach Tag-Kategorien anzuzeigen:
-
Öffnen Sie die Billing and Cost Management-Konsole
und wählen Sie Cost Explorer. Wählen Sie unter Berichtsparameter > Gruppieren nach die Option Tag als Dimension und wählen Sie den gewünschten Tagnamen aus.
-
-
Um die Ressourcennutzung für Aufgaben zu sehen, schauen Sie sich das Run-Manifest an, in CloudWatch dem Sie angemeldet sind. Weitere Informationen finden Sie unter Überwachung HealthOmics mit CloudWatch Protokollen.
-
Verwenden Sie das Führen Sie Analyzer aus Tool, um Informationen zur Nutzung der Aufgabenressourcen für einen Lauf zu extrahieren.
Ermitteln Sie die Nutzung der Laufzeit
Sie können die folgenden Methoden verwenden, um die Laufzeitnutzung zu untersuchen:
-
Auf der Seite „Ausführungen“ der Konsole können Sie die Gesamtlaufzeit für einen Lauf anzeigen.
-
Auf der Seite mit den Ausführungsdetails können Sie die folgenden Elemente anzeigen:
-
Die Gesamtlaufzeit für einen Lauf anzeigen.
-
Zeigen Sie die Laufzeit für jede Aufgabe in der Ausführung an.
-
Wählen Sie einen der Links, um die Protokolle in Amazon S3 oder die Run-Logs oder Run-Manifest-Logs einzusehen CloudWatch.
-
-
Wählen Sie in der Liste „Aufgaben ausführen“ den Link „Protokolle anzeigen“ für eine Aufgabe, in der Sie die Aufgabenprotokolle anzeigen möchten CloudWatch.
-
Die Antwort auf den
listRuns
API-Vorgang umfasst die Start- und Endzeit der Ausführung, sodass Sie die Gesamtlaufzeit berechnen können. -
Das Führen Sie Analyzer aus Tool zeigt die Dauer der Aufgaben in einer Zeitleistenansicht an. Dieses Tool bietet eine visuelle Darstellung der Reihenfolge der Aufgabenverarbeitung, die Sie der erwarteten Reihenfolge zuordnen können.
Methoden zur Optimierung von Läufen
HealthOmics stellt Ressourcen für die Datenbereitstellung (wie Datenimporte und Datenexporte) automatisch bereit, verwaltet und optimiert. HealthOmics startet auch die Workflow-Engine für Ihren Workflow und führt sie aus. Sie können jedoch die Startzeiten der Ausführung, die Startzeiten von Aufgaben und die Gesamtlaufzeit von Aufgaben beeinflussen, indem Sie verschiedene Ausführungskonfigurationen festlegen. Ihr allgemeiner Ansatz bei der Workflow-Definition und -Gestaltung wirkt sich auch auf die Laufzeit der Aufgaben aus. In der folgenden Liste werden Faktoren beschrieben, die sich auf die Ausführung und die Aufgabenleistung auswirken können:
- Speichertyp ausführen
-
Der Speichertyp „Run“ wirkt sich auf die Laufleistung und die Bereitstellungszeit aus. Dynamic Run Storage bietet eine schnellere Bereitstellung und es geht nie der Arbeitsspeicher aus, da er dynamisch mit Ihren Laufspeicheranforderungen skaliert wird. Dynamic Run Storage eignet sich auch gut für Workflows in der Entwicklung, bei denen Sie häufig einen Workflow starten und beenden können, um Probleme zu beheben.
Statischer Run-Speicher erfordert längere Bereitstellungszeiten für das Dateisystem, kann aber einige Läufe schneller abschließen, in der Regel, wenn die Läufe eine hohe Aufgabenparallelität aufweisen oder mehr als 9,6 TiB Dateisystemkapazität erfordern. Static Run Storage eignet sich gut für Workflows mit langer Laufzeit und hohen Anforderungen. I/O
Um Ihnen bei der Bewertung der Kosten und der Leistung der einzelnen Speichertypen für einen bestimmten Lauf zu helfen, können Sie A/B-Tests durchführen, um herauszufinden, welcher Laufspeichertyp die bessere Leistung bietet. Erwägen Sie außerdem, dynamischen Run-Storage für Ihre Entwicklungszyklen zu verwenden und anschließend statischen Run-Speicher für Produktionsläufe in großem Maßstab zu verwenden.
Weitere Informationen zu Run-Storage-Typen Speichertypen in HealthOmics Workflows ausführen
- Statischer Speicher mit übermäßiger Bereitstellung
-
Wenn die Berechnung Ihrer Workflow-Aufgaben durch I/O, consider over-provisioning the static run storage. Storage cost increases with its size, but maximum throughput of the file system also increases. If an expensive compute task is experiencing I/O Engpässe eingeschränkt wird, kann eine Erhöhung der Dateisystemgröße zur Verkürzung der Task-Laufzeit die Gesamtkosten senken.
- Reduzieren Sie die Größe von Container-Images
-
HealthOmics Lädt beim Start jeder Aufgabe den Container, den Sie für die Aufgabe angegeben haben. Das Laden größerer Container dauert länger. Optimieren Sie Ihre Container so klein wie möglich, um die Effizienz beim Starten neuer Aufgaben zu verbessern. Wenn Sie Ihren Containern große Datensätze hinzufügen, sollten Sie erwägen, die Datensätze in S3 zu speichern und Ihren Workflow die Daten aus S3 importieren zu lassen. Die maximal HealthOmics unterstützten Containergrößen finden Sie unter. HealthOmics Workflow-Kontingente mit fester Größe
- Aufgabengröße
-
Sie können kleine, aufeinanderfolgende Aufgaben zu einer einzigen Aufgabe zusammenfassen, um Zeit bei der Aufgabenbereitstellung zu sparen. Außerdem wird HealthOmics eine Mindestdauer von einer Minute für Aufgaben berechnet, sodass die Kombination von Aufgaben die Kosten senken kann. Im Rahmen der kombinierten Aufgabe können Sie möglicherweise Unix-Pipes verwenden, um die I/O Kosten für das Serialisieren und Deserialisieren von Dateien zu vermeiden.
- Komprimierung von Dateien
-
Vermeiden Sie eine übermäßige Komprimierung von Workflow-Zwischendateien. Die meisten Genomikformate verwenden die Komprimierung „Gzip“ oder „Block Gzip“. Das Dekomprimieren der Task-Eingabedatei und das erneute Komprimieren der Task-Ausgabedatei können einen großen Prozentsatz der gesamten CPU-Auslastung der Aufgabe beanspruchen. Bei einigen Genomikanwendungen können Sie die Komprimierungsstufe bei der Serialisierung von Ausgaben festlegen. Durch die Reduzierung der Komprimierungsstufe können Sie die CPU-Zeit reduzieren, obwohl größere Dateien die Zeit erhöhen, die für das Schreiben auf die Festplatte aufgewendet wird. Abhängig von der Aufgabe und der Anwendung können Sie die optimale Komprimierungsstufe für Zwischendateien finden, die zu der kürzesten Laufzeit führen. Wir empfehlen, dass Sie sich zunächst auf die Aufgaben mit den größten Ausgabedateien konzentrieren. Eine Komprimierungsstufe von 2 eignet sich gut für mehrere Szenarien. Sie können mit dieser Stufe für Ihren Anwendungsfall beginnen und die Ergebnisse vergleichen, indem Sie andere Komprimierungsstufen ausprobieren.
- Anzahl der Threads
-
Wenn Sie in Ihrer Aufgabendefinition Threads angeben, setzen Sie die Anzahl der Threads auf den gleichen Wert wie die Anzahl der angeforderten CPUs v.
- Geben Sie Rechenleistung und Arbeitsspeicher an
-
Wenn Sie in Ihrer Aufgabe keine Speicher- oder Rechenressourcen angeben, HealthOmics weist Sie den kleinsten Instanztyp (
omics.c.large
) als Standard zu. Geben Sie Ihre Speicher- und Rechenanforderungen explizit HealthOmics an, wenn Sie einen größeren Instance-Typ zuweisen möchten.HealthOmics weist die Anzahl der von Ihnen angeforderten V-CPUs, Speicher- und GPU-Ressourcen zu. Wenn Sie beispielsweise nach 15V CPUs und 33GiB fragen, wird eine HealthOmics omics.m.4xl-Instanz (16 V, 64 GB) für Ihre Aufgabe zugewiesenCPUs, aber Ihre Aufgabe kann nur 15 V und 33GiB verwenden. CPUs Daher empfehlen wir, dass Sie v- und Speicherressourcen anfordern, die einer Omics-Instanz entsprechen. CPUs
- Mehrere Proben in einem Durchlauf stapeln
-
Da die Dateisystembereitstellung zu Beginn des Laufs einige Zeit in Anspruch nimmt, können Sie Bereitstellungszeit sparen, indem Sie mehrere Samples in einem Lauf stapeln. Berücksichtigen Sie die folgenden Faktoren, bevor Sie sich für diesen Ansatz entscheiden:
-
Eine einzige fehlerhafte Probe kann dazu führen, dass ein Workflow fehlschlägt, sodass die Anzahl fehlgeschlagener Workflows durch das Stapeln von Proben erhöht werden kann. Wenn Sie nicht sicher sind, ob Ihr Workflow in den meisten Fällen erfolgreich sein wird, könnte ein Durchlauf pro Probe der bessere Ansatz sein.
-
HealthOmics weist einem Lauf ein Speicherdateisystem für den gesamten Workflow zu. Achten Sie bei einem Probenstapel darauf, eine ausreichend große Menge an Laufspeicher anzugeben, um alle Proben verarbeiten zu können.
-
Es gibt eine maximale Menge an Laufspeicher pro Workflow, sodass die Anzahl der Proben, die Sie dem Stapel hinzufügen können, möglicherweise eingeschränkt wird.
-
Die Mindestgröße des Laufspeichers beträgt 1,2 TiB, sodass die Batchverarbeitung die Kosten senken kann, wenn der Workflow viel weniger Speicherplatz als das Minimum für jede Probe benötigt.
-
Der Run-Speicher kann mehrere gleichzeitige Verbindungen verarbeiten, sodass es nicht zu Engpässen kommen sollte, wenn mehrere Aufgaben denselben Run-Speicher verwenden. I/O
-
Jeder Lauf hat seinen eigenen Satz von Tags. Wenn Sie Workflows mit Informationen für die Budgetierung oder Nachverfolgung kennzeichnen, ist es möglicherweise besser, separate Läufe zu verwenden.
-
IAM-Rollen gelten für den gesamten Lauf. Jeder Benutzer hat Zugriff auf alle Daten für eine Reihe von Proben. Durch die Trennung von Workflows können Sie detailliertere Berechtigungen verwenden.
-
HealthOmics legt Kontingente auf Kontoebene für die maximale Anzahl gleichzeitiger Workflows und die maximale Anzahl gleichzeitiger Aufgaben in einem Workflow fest. Informationen darüber, wie Sie eine Erhöhung dieser Kontingente beantragen können, finden Sie unter. HealthOmics Servicekontingenten
-
- Verwenden Sie Parameter für Container-Images
-
Parametrisieren Sie Ihre Container-Images, anstatt sie URIs in den Workflow einzubetten. Wenn es sich um Ausführungsparameter handelt, wird HealthOmics überprüft, ob die Ausführung Zugriff auf Ihre Container hat, bevor die Ausführung beginnt. Andernfalls schlägt die Aufgabe während der Ausführung fehl, wenn Ihnen Gebühren für abgeschlossene Aufgaben entstanden sind. Da es sich um parametrisierte Eingaben handelt, wird außerdem eine Prüfsumme im Ausführungsmanifest HealthOmics generiert, wodurch die Herkunft der Ausführung verbessert wird.
- Verwenden Sie einen Linter
-
Verwenden Sie einen Linter, um häufig auftretende Workflow-Fehler zu finden, bevor Sie einen neuen Workflow ausführen. Weitere Informationen finden Sie unter Der Arbeitsablauf blinkt ein HealthOmics.
- Wird verwendet EventBridge , um Probleme zu kennzeichnen
-
Verwenden Sie EventBridge maßgeschneiderte Benachrichtigungen, catch Anomalien zu erkennen, die für Ihre Geschäftslogik spezifisch sind.
- Verwenden Sie Sequenzspeicher
-
Erwägen Sie die Verwendung eines Sequenzspeichers für Ihre Quelldaten, um Speicherkosten zu sparen. Weitere Informationen finden Sie im HealthOmics Blogbeitrag Omics-Daten kostengünstig in beliebiger Größenordnung speichern
.
Auswirkung der Dateigrößenabweichung zwischen den Durchläufen
Benutzer entwerfen und testen Läufe häufig mit einem kleinen Satz von Testdaten und stoßen dann bei Produktionsläufen auf eine Vielzahl von Daten mit erheblichen Abweichungen in der Dateigröße. Achten Sie darauf, diese Varianz zu berücksichtigen, wenn Sie den Lauf optimieren.
In der folgenden Liste werden Optimierungsempfehlungen für Situationen beschrieben, in denen die Dateigrößen stark variieren:
- Variieren Sie die Dateigrößen in Ihren Testdaten
-
Versuchen Sie, während der Entwicklung Testdaten zu verwenden, die eine repräsentative Varianz aufweisen.
- Verwenden Sie Run Analyzer
-
Verwenden Sie das Tool Run Analyzer für eine Vielzahl von Stichproben, um Abweichungen bei den Datengrößen zu berücksichtigen.
Sie können den Run Analyzer verwenden, um die Varianz zwischen Durchläufen in Ihren Produktionsdatenstichproben zu verstehen. Verwenden Sie
--batch
den Modus in Run Analyzer, um Statistiken für einen Stapel von Durchläufen zu generieren und die maximalen Rechenressourcen zu analysieren, die für die Behandlung von Ausreißern in Ihren Datensätzen erforderlich sind.Sie können Run Analyzer beispielsweise eine vollständige Datenflusszelle im Batch-Modus zur Verfügung stellen, um die maximale vCPU- und Speicherauslastung für die gesamte Flusszelle zu ermitteln.
- Reduzieren Sie die Größenvarianz der Eingabe-Datasets
-
Wenn Sie eine hohe Varianz bei den Stichprobenumfängen feststellen, können Sie die Stichproben vorab teilen HealthOmics und für jeden Stapel unterschiedliche Dateisystemgrößen auswählen, um bei den laufenden Speicherkosten zu sparen.
Verwenden Sie in WDL die
size
Funktion, um die Ressourcenzuweisung für einzelne Aufgaben für große und kleine Stichproben aufzuteilen. Wenden Sie diese Strategie auf Ihre teuersten Aufgaben an, um die größtmögliche Wirkung zu erzielen.Verwenden Sie in Nextflow bedingte Ressourcen für die stufenweise Zuweisung von Ressourcen auf der Grundlage der Dateigröße oder des Dateinamens. Weitere Informationen finden Sie unter Bedingte Prozessressourcen
auf der GitHub Nextflow-Website. - Optimiere nicht zu früh
-
Finalisieren Sie Ihren Workflow-Code und Ihre Workflow-Logik, bevor Sie in umfangreiche Maßnahmen zur Leistungsoptimierung investieren. Eine Änderung Ihres Codes kann erhebliche Auswirkungen auf die benötigten Ressourcen haben. Wenn Sie einen Lauf zu früh im Entwicklungsprozess optimieren, kann dies zu einer Überoptimierung führen oder Sie müssen möglicherweise erneut optimieren, falls sich die Workflow-Definition später ändert.
- Führen Sie das Run Analyzer-Tool regelmäßig erneut aus
-
Wenn Sie im Laufe der Zeit Änderungen an Ihrer Workflow-Definition vornehmen oder wenn sich Ihre Stichprobenvarianz ändert, führen Sie das Tool Run Analyzer regelmäßig aus, damit Sie weitere Optimierungen vornehmen können.
Methoden zur Optimierung der Parallelität von Ressourcen
HealthOmics bietet die folgenden Funktionen, mit denen Sie die Kosten kontrollieren und verwalten können, wenn die Verarbeitung in großem Maßstab ausgeführt wird:
-
Verwenden Sie Ausführungsgruppen, um Ihre Kosten und den Ressourcenverbrauch zu kontrollieren. Sie können in der Ausführungsgruppe Höchstwerte für die Anzahl gleichzeitiger Läufe, v CPUs GPUs, und die Gesamtlaufzeit pro Aufgabe festlegen. Wenn separate Teams oder Gruppen dasselbe Konto verwenden, können Sie für jedes Team eine separate Ausführungsgruppe erstellen. Sie können die Ressourcennutzung und die Kosten pro Team kontrollieren und die Höchstwerte für die Laufgruppe konfigurieren. Weitere Informationen finden Sie unter HealthOmics Laufgruppen erstellen.
-
Während der Entwicklung können Sie eine separate Ausführungsgruppe mit niedrigeren Maximalwerten konfigurieren, um außer Kontrolle geratene Aufgaben abzufangen.
-
Service Quotas tragen auch dazu bei, Ihr Konto vor übermäßigen Ressourcenanforderungen zu schützen. Informationen zu Service Quotas, einschließlich der Beantragung von Kontingentwerterhöhungen, finden Sie unter HealthOmics Servicekontingenten