Lizenzierung von Mathematica auf Multicore-/Multiprozessor-Systemen zur parallelen und/oder verteilten Berechnung
Vorliegender Artikel erklärt Ihnen die möglichen Lizenzierungsvarianten für die parallelen Berechnungsmöglichkeiten mit Mathematica auf Multiprozessor-Systemen.
Aktuelle Computersysteme besitzen in der Regel mehr als einen "Rechenkern" – so genannte Multicore- oder Multiprozessorsysteme. Dies wird entweder durch mehrere physikalische Prozessoren oder durch Hyperthreading oder aber auch durch eine Kombination der beiden Techniken erreicht. Einen Sonderfall stellen in Bezug auf die durch Mathematica nutzbaren Prozessoren die GPUs, also Grafikprozessoren, dar. Diese werden gesondert behandelt. Die nachfolgend beschriebenen Fälle gehen - soweit nicht anders angegeben - nur auf Multiprozessor-Systeme ein.
Seit Version 9 nutzt Mathematica je nach Variante automatisch bis zu 16 Rechenkerne, die so genannten Compute-Kernel. Die unten stehende Tabelle listet pro Mathematica-Variante die zur Verfügung stehenden Compute-Kernel auf:
Mathematica-Variante | Home Edition | Standard Edition | Enterprise Edition |
---|---|---|---|
Anzahl Compute-Kernel | 4 | 8 | 16 |
Stand: Januar 2014, Mathematica 10
Wenn Sie für Ihre Berechnungen mehr Compute-Kernel benötigen oder Ihre Berechnungen auf mehreren Computersystemen verteilt durchführen wollen, stehen Ihnen mehrere Lizenzierungsvarianten zur Verfügung.
Fall 1 & 2: Einzelplatzlizenzen
Fall 1: Mathematica-Einzelplatzlizenz & 1 leistungsstarker Computer
Sie besitzen eine Mathematica-Einzelplatzlizenz und wollen Ihre Berechnungen auf einem leistungsstarken Computer mit mehr CPUs, als Ihre Mathematica-Variante Compute-Kernel besitzt, durchführen.
- 1 Mathematica-Einzelplatzlizenz
- Anzahl nutzbarer CPUs auf einem Computer > Anzahl der zur Verfügung stehenden Compute-Kernel
In diesem Fall benötigen Sie die Mathematica Core Extension, um zusätzliche Compute-Kernel für Berechnungen zu erhalten. Pro Mathematica Core Extension stehen Ihnen 4 (Standard Edition) bzw. 8 (Enterprise Edition) weitere Mathematica-Compute-Kernel auf dem lokalen Computer zur Verfügung.
Beispiel:
Sie besitzen einen Computer mit 16 CPUs und eine Mathematica-Standard-Einzelplatzlizenz. Somit stehen Ihnen 8 nutzbare CPUs zur Verfügung. Um die restlichen 8 CPUs auch nutzen zu können, müssen Sie 2x eine Mathematica Core Extensions à 4 Compute-Kernel erwerben.
Fall 2: Mathematica-Einzelplatzlizenzen auf mehreren Computern
Im zweiten Fall besitzen Sie mehrere Mathematica-Einzelplatzlizenzen und wollen Ihre Berechnungen auf mehreren Computern verteilt durchführen.
- mehrere Mathematica-Einzelplatzlizenzen
- Berechnungen auf mehrere Computer verteilen
- Computer müssen durch ein Netzwerk miteinander in Verbindung stehen und die notwendigen Zugriffsrechte müssen vorhanden sein.
In diesem Fall benötigen Sie den Lightweight Grid Manager, der die Rechenlast auf die zur Verfügung stehenden Computer mit den Einzelplatzlizenzen verteilt. Der Lightweight Grid Manager muss auf jedem der Computer, die für die Berechnung genutzt werden sollen, gestartet werden. Am Computer, der die Berechnung steuern soll – dem so genannten Master – werden nun die zur Verfügung stehenden Compute-Kernels der Slave-Computer angezeigt und können nun für Berechnungen eingesetzt werden. Die Verteilung der Rechenlast auf die Slave-Computer erfolgt entweder automatisch oder kann mit Hilfe des Lightweight Grid Managers gesteuert werden. Während die verteilt ausgeführte Berechnung auf den Slave-Computern läuft, kann Mathematica auf diesen Computern nicht autark verwendet werden. Abhängig von der Komplexität der Berechnungen ist ggfs. auch der Slave-Computer so stark ausgelastet, dass selbst andere Arbeiten wie bspw. das Bearbeiten von Dokumenten oder das Surfen im Internet nur sehr langsam oder gar nicht möglich sind. Der Lightweight Grid Manager ist im Premier Service von Mathematica inbegriffen oder kann bei Bedarf separat erworben werden.
Fall 3 & 4: Netzwerklizenzen
Fall 3: Mathematica-Netzwerklizenz und die zur Verfügung stehenden Compute-Kernel reichen aus
Sie besitzen eine Mathematica-Netzwerklizenz und die insgesamt durch die Mathematica-Netzwerklizenz erreichte Anzahl an Compute-Kernels reicht für Ihre Berechnungen aus. Im Prinzip geht es in diesem Fall nur darum, die Rechenlast auf die vorhandenen Lizenzen zu verteilen.
- Mathematica-Netzwerklizenz
- ausreichende Anzahl an lizenzierten Compute-Kernels
- Berechnungen auf mehrere Computer verteilen
- Computer müssen durch ein Netzwerk miteinander in Verbindung stehen und die notwendigen Zugriffsrechte müssen vorhanden sein.
Parallele Berechnungen werden automatisch auf allen zur Verfügung stehenden Compute-Kernel ausgeführt.
Beispiel:
Sie besitzen eine Mathematica-Netzwerklizenz, Variante Standard (8 Compute-Kernel), mit insgesamt 5 gleichzeitigen Nutzern (= 5 Inkremente), so dass Ihnen insgesamt 5 * 8 = 40 Compute-Kernel zur Verfügung stehen. An einem der Computer mit Mathematica stehen 16 Cores/CPUs zur Verfügung. Wenn nun eine Berechnung gestartet wird, stehen dafür auch 16 Compute-Kernel zur Verfügung, solange die Kernel nicht bereits durch andere Nutzer für Berechnungen eingesetzt werden.
Fall 4: Mathematica-Netzwerklizenz und mehr Compute-Kernel werden benötigt
Im vierten Fall besitzen Sie bereits eine Mathematica-Netzwerklizenz und benötigen, zusätzlich zu den durch die Netzwerklizenz vorhandenen, weitere Compute-Kernel.
- Mathematica-Netzwerklizenz
- Anzahl der zu nutzendenden CPUs übersteigt die Anzahl vorhandener Compute-Kernel
- Berechnungen auf mehrere Computer verteilen
Wenn Sie zusätzlich zu einer vorhandenen Netzwerklizenz die Anzahl der Compute-Kernel erweitern möchten, benötigen Sie gridMathematica Server. Pro gridMathematica-Server-Lizenz erhalten Sie zusätzliche 16 (bei der Variante Standard Edition) bzw. 32 (Enterprise Edition) Compute-Kernel.
Beispiel 1:
Sie besitzen eine High-Performance-Workstation mit 12 CPUs und jeweils 8 Cores, so dass Ihnen bis zu 12 * 8 = 96 Rechenkerne zur Verfügung stehen. Des Weiteren besitzen Sie eine Mathematica-Standard-Netzwerklizenz mit einem gleichzeitigen Nutzer (= 1 Inkrement) und können damit bereits 8 Rechenkerne nutzen. Die restlichen 96 - 8 = 88 Rechenkerne werden über 6 gridMathematica-Server-Lizenzen à 16 Compute-Kernel angesprochen (88 / 16 = 5,5). Insgesamt können Sie jetzt 8 + 6 * 16 = 104 Compute-Kernel einsetzen.
Beispiel 2:
Sie besitzen einen Computer mit 8 CPUs, der per Netzwerk auch die CPUs einer leistungsfähigen Workstation mit 16 CPUs nutzen soll. Des Weiteren steht Ihnen eine Mathematica-Standard-Netzwerklizenz mit einem gleichzeitigen Nutzer (= 1 Inkrement) zur Verfügung. Insgesamt wollen Sie alle zur Verfügung stehenden 8 + 16 = 24 CPUs nutzen. Die Mathematica-Standard-Netzwerklizenz mit einem gleichzeitigen Nutzer deckt bereits die lokalen 8 Compute-Kernel des Computer ab, nur die Workstation benötigt noch zusätzlich 16 Compute-Kernel. Diese werden über eine gridMathematica-Server-Lizenz abgedeckt.
Fall 5: GPUs und Beispiele für CPUs
Fall 5: GPUs
Mathematica hat keine Limitierung bezüglich der Anzahl nutzbarer GPUs.
Beispiel 1:
Sie besitzen eine Workstation mit 512 GPUs. Unabhängig von Ihrer Mathematica-Variante und -Lizenz (Einzelplatz oder Netzwerk) werden alle 512 GPUs für Berechnungen eingesetzt.
Beispiel 2:
Sie besitzen 4 Workstations mit jeweils 512 GPUs (insgesamt 2048 GPUs), die für Berechnungen eingesetzt werden sollen. Unabhängig von Ihrer Mathematica-Variante, benötigen Sie dann eine Mathematica-Netzwerklizenz mit 4 gleichzeitigen Nutzern (= 4 Inkrementen) oder 4 Mathematica-Einzelplatzlizenzen, die auf je einer der Workstations installiert wird. Für die Ansteuerung und Verwaltung ist dann der Lightweight Grid Manager zuständig.
Beispiele für konkrete Prozessoren
Anhand von Prozessoren verschiedener Leistungsklassen und Hersteller wird exemplarisch aufgelistet, wie viele Compute-Kernel bei einem Computer mit einem der Prozessoren für parallele Berechnungen eingesetzt werden können.
Die Anzahl der maximal einsetzbaren Computekernel ist das Produkt aus den Anzahl der Cores und den Anzahl der Threads.
Prozessorbezeichnung | Anzahl Cores | Anzahl Threads | maximale Anzahl einsetzbarer Compute-Kernel (Cores * Threads) |
---|---|---|---|
Intel® Pentium® Processor G2120T | 2 | 2 | 4 |
AMD Athlon™ II X2 240 | 2 | 2 | 4 |
Intel® Core™ i3 Prozessoren der vierten Generation | 2 | 4 | 8 |
Intel® Core™ i7-4800MQ | 4 | 8 | 32 |
AMD FX 8-Core Black Edition | 8 | 8 | 64 |
AMD Opteron™ 6386 SE | 16 | 16 | 256 |
Compute-Kernel errechnet sich aus dem Produkt der Anzahl an Cores und der Anzahl Threads des jeweiligen Prozessors.
Beispiel 3:
Der Prozessor "Intel® Core™ i7-4800MQ" hat 4 Cores, von denen jeder 8 Threads besitzt. Die maximale Anzahl einsetzbarer Compute-Kernel beträgt somit: 4 Cores * 8 Threads = 32 nutzbare Compute-Kernel.
Beispiel 4:
Der AMD Opteron™ 6386 SE besitzt 16 Cores mit jeweils 16 Threads, so dass die maximale Anzahl einsetzbarer Compute-Kernel bei 16 Cores * 16 Threads = 256 nutzbare Compute-Kernel liegt (Mathematica 10 Standard: 8 Compute-Kernel pro Netzwerkinkrement, passender gridMathematica Server 16 Compute-Kernel: (256 - 8) / 16 = 15,5 => eine Netzwerklizenz mit 1 Benutzer und 16 gridMathematica Server sind notwendig, um den AMD Opteron™ 6386 SE voll auszulasten).