Archive for Februar 2011

Tuning Windows HPC Server 2008 R2

1. Februar 2011

Natürlich kann man unendlich viel tunen und an jeder NTFS- und TCP-Schraube drehen, aber die folgenden drei einfachen Tuning-Tipps haben sich für mich – insbesondere während Benchmarks – als nützlich erwiesen. Mir kam es NICHT darauf an, das letzte Bit Performance aus dem TCP-Treiber raus zu kitzeln, sondern mir ging es um Grundlegendes, wie z.B. darum, dass nicht mitten in einem Benchmark Windows Update losläuft.

  1. Deaktivieren aller „scheduled tasks“ (z.B. für Windows Update) auf allen Knoten:
    clusrun SCHTASKS /Delete /TN * /F
  2. Das Power Management auf allen Knoten auf „Hochleistung“ stellen, z.B. verhindert dies das Runtertakten der CPUs. Nachteil: erhöhter Energieverbrauch.
    clusrun powercfg -s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
  3. Deaktivieren unnötiger Dienste auf den Rechenknoten. Das ist ein bisschen tricky. Ich habe versucht einen Mittelweg zu finden zwischen Diensten, die man (ich) wirklich nicht auf Rechenknoten braucht (wie der Media Player) und solchen, die man zwar strenggenommen auch nicht braucht, die aber das Leben für Administratoren deutlich vereinfachen (z.B. weiterhin funktionierende Remote-Desktop-Verbindung auf alle Knoten). Letztendlich muss natürlich jeder Admin selbst entscheiden, welche Dienste gebraucht werden und welche nicht (z.B. Print Spooler). Das angehängt „stop-services“-Skript stoppt ALLE Dienste, deaktiviert sie aber nicht permanent; nach einem Neustart ist der Windows-Standard wiederhergestellt. Das „disable-services“-Skript deaktiviert permanent, nützliche Dienste bleiben aber laufen; das dazu passende „restore“-Skript stellt den Windows-Default permanent wieder her (jeweils nach einem Neustart).

Skript-Download

Achtung 1: Die Skripte deaktivieren Windows-Funktionalitäten. Man sollte verstehen was sie tun, bevor man sie naiv ausführt! In dem Stop-Skript sind alle Dienste kurz erklärt.
Achtung 2: „clusrun“ führt per Default den Befehl auf allen HPC-Maschinen aus. Je nachdem kann es sinnvoll sein, die Manipulationen nur auf den Rechenknoten und nicht auf den Head Nodes durchzuführen. Dann den clusrun-Befehl entweder mittels /exclude <head_nodes> oder /nodegroup: <compute_nodes> entsprechend restriktiver ausführen.

Mehr Lesestoff: Whitepaper „Performance Tuning a Windows HPC Cluster for Parallel Applications“ und „Performance Tuning Guidelines for Windows Server 2008 R2“.

Advertisements