SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
HPC, Cluster Integration & Parallel
Computing How To
Technical Computing mit Multicore-Technologie und Rechenclustern
gridMathematica führt Mathematica, die weltweit führende Umgebung für technische Berechnungen, mit
modernen Rechenclustern und -netzen zusammen, um den Herausforderungen in der Mathematik, in den
Ingenieur- und Naturwissenschaften und in den Finanzwissenschaften zu begegnen. gridMathematica setzt
die Mathematica-Technologie, die ursprünglich für Single-Prozessor-Maschinen entwickelt wurde, für
komplexe Berechnungen mit hohem Datenaufkommen auf Clustern, Multiprozessormaschinen und
Rechnernetzen um.
gridMathematica bietet einen schnellen Zugriff auf die Vorbereitung und Ausführung komplexer
Berechnungen. Es verfügt über eine hochstehende Programmiersprache, eine große Sammlung schneller und
verlässlicher mathematischer Algorithmen und benutzerfreundliche Konstrukte für das parallele
Programmieren.
Typische Anwendungsbereiche von gridMathematica können in der Bioinformatik, der Verarbeitung und
Analyse großer Datensätze, dem Data Mining und großen Berechnungen in der Physik, der Mathematik und
den Life Sciences gesehen werden.
Jede Mathematica Einzelplatz oder Netzwerklizenz (ab V8) besitzt mindestens 4 x Mathematica-Compute-
Kernels, so dass damit quasi jeder Nutzer von Beginn an "sein kleines Grid" zur Verfügung hat. Der Neuling in
dieser Thematik kann sofort loslegen und der erfahrene Cluster-Experte kann über Konfigurationselemente in
die Steuerung eingreifen. Mathematica lässt sich so auf beliebige viele Kernels erweitern, um z. B. auf
einem HPC mit 512 Kernels zu rechnen.
Inhaltsverzeichnis
Technical Computing mit Multicore-Technologie und Rechenclustern...............................................................2
Beschleunigung von Prozessen mit gridMathematica .........................................................................................4
Core Extension..................................................................................................................................................4
gridMathematica Server...................................................................................................................................5
Wolfram Lightweight Grid Manager.................................................................................................................5
Lizenzierung von Mathematica auf Multicore-/Multiprozessor-Systemen zur parallelen und/oder verteilten
Berechnung...........................................................................................................................................................6
Mathematica-Einzelplatzlizenz & 1 leistungsstarker Computer ......................................................................6
Mathematica-Einzelplatzlizenzen auf mehreren Computern ..........................................................................7
Mathematica-Netzwerklizenz und die zur Verfügung stehenden Compute-Kernel reichen aus.....................7
Mathematica-Netzwerklizenz und mehr Compute-Kernel werden benötigt ..................................................8
Cluster Integration................................................................................................................................................9
CCS....................................................................................................................................................................9
HPC ...................................................................................................................................................................9
LSF.................................................................................................................................................................. 10
PBS................................................................................................................................................................. 10
SGE................................................................................................................................................................. 10
SSH - Secure Shell .......................................................................................................................................... 11
Beschleunigung von Prozessen mit gridMathematica
gridMathematica implementiert zahlreiche Primitive der Parallelprogrammierung und enthält höhere
Kommandos für die parallele Ausführung von Matrixoperationen, Plotting u.v.a. gridMathematica wird mit
Beispielapplikationen zahlreicher neuer populärer Programmieransätze, wie z. B. der parallelen Monte-Carlo-
Simulation, Visualisierung, Datensuche und -optimierung ausgeliefert. Die Implementierung für alle höheren
Kommandos zur Parallelverarbeitung sind als Mathematica-Sourcen enthalten, können also als Vorlagen für
den Benutzer dienen, um eigene Parallelprogramme zu entwickeln.
Mit gridMathematica können jedoch nicht alle Berechnungen beschleunigt werden. Operationen wie
"Integrate" oder "DSolve" wurden für die Verwendung auf einem Single-Prozessor-Rechner konzipiert. Eine
Beschleunigung dieser Berechnungen kann dennoch erreicht werden, indem verschiedene “slave kernels”, d.
h. untergeordneten Kernel im Netzwerk, die einzelnen Kalkulationen abarbeiten, anstatt sie durch einen
Kernel sequentiell nacheinander zu berechnen.
Core Extension
Mathematica Core Extension (vormals gridMathematica local) als 4 x Mathematica-Compute-Kernel
Erweiterung zu einer Mathematica Einzelplatzlizenz. Es ist das ideale Werkzeug für "Power-User" mit
Multicore-Rechnern.
gridMathematica Server
gridMathematica Server erweitert eine bestehende Mathematica Netzwerklizenz um einen netzwerk-
gesteuerten Pool an Compute-Kernels. gridMathematica Server ist in der Lage seine Compute-Kernels sowohl
auf den lokalen Rechnern (CPUs) einzelner Netzwerknutzer zu verteilen, als auch auf Remote-Hardware um
die Rechenpower von Multicore-Rechnern auszureizen.
Wolfram Lightweight Grid Manager
Wolfram Lightweight Grid Manager (Cloudcomputing): steuert und kontrolliert den Einsatz von Mathematica
Berechnungen auf Remote-Hardware. Wolfram Lightweight Grid Manager wird eingesetzt um High-
Performance-Cluster zu kontrollieren oder um ad-hoc Rechengrids von "verfügbaren" Netzwerkrechnern
aufzubauen und Berechnungen durchzuführen. Es ist in gridMathematica Server integriert und als Vorteil vom
Premier Service bei Mathematica Lizenzen.
Mehr Informationen zum Wolfram Lightweight Grid Manager finden Sie hier:
https://www.wolfram.com/lightweight-grid-manager/
Lizenzierung von Mathematica auf Multicore-/Multiprozessor-Systemen zur
parallelen und/oder verteilten Berechnung
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 untenstehende 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: Juni 2019, Mathematica 12
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.
o 1 Mathematica-Einzelplatzlizenz
o 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.
Mathematica-Einzelplatzlizenzen auf mehreren Computern
Im zweiten Fall besitzen Sie mehrere Mathematica-Einzelplatzlizenzen und wollen Ihre Berechnungen auf
mehreren Computern verteilt durchführen.
o mehrere Mathematica-Einzelplatzlizenzen
o Berechnungen auf mehrere Computer verteilen
o 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.
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.
o Mathematica-Netzwerklizenz
o ausreichende Anzahl an lizenzierten Compute-Kernels
o Berechnungen auf mehrere Computer verteilen
o 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 Kernels nicht
bereits durch andere Nutzer für Berechnungen eingesetzt werden.
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.
o Mathematica-Netzwerklizenz
o Anzahl der zu nutzendenden CPUs übersteigt die Anzahl vorhandener Compute-Kernels
o 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 Computers ab, nur die Workstation benötigt noch zusätzlich 16 Compute-
Kernel. Diese werden über eine gridMathematica-Server-Lizenz abgedeckt.
Cluster Integration
Die Cluster-Integration führt parallele Prozesse auf verschiedenen Computern der Wolfram-Language aus.
Verschiedene Cluster-Management-Technologien lassen sich einrichten.
CCS
Mathematica kann von Haus aus mit vielen verschiedenen Protokollen und Systemen Parallelberechnungen
durchführen. Bei dem folgenden Beispiel muss immer das Cluster Integration Paket mitgeladen werden.
Needs["ClusterIntegration`"]
CCS["name"] repräsentiert einen Windows Compute Cluster Server mit spezifiziertem Namen. Hier werden
zwei Kernel gestartet.
HPC
Mathematica kann von Haus aus mit vielen verschiedenen Protokollen und Systemen Parallelberechnungen
durchführen. Bei dem folgenden Beispiel muss immer das Cluster Integration Paket mitgeladen werden.
Needs["ClusterIntegration`"]
HPC["name"] repräsentiert einen Windows High Performance Computing Server mit spezifiziertem Namen.
Hier werden zwei Kernel gestartet.
LSF
Mathematica kann von Haus aus mit vielen verschiedenen Protokollen und Systemen Parallelberechnungen
durchführen. Bei dem folgenden Beispiel muss immer das Cluster Integration Paket mitgeladen werden.
Needs["ClusterIntegration`"]
LSF["name"] repräsentiert ein Platform Load Sharing Facility Cluster mit spezifiziertem Namen. Hier werden
zwei Kernel gestartet.
PBS
Mathematica kann von Haus aus mit vielen verschiedenen Protokollen und Systemen Parallelberechnungen
durchführen. Bei dem folgenden Beispiel muss immer das Cluster Integration Paket mitgeladen werden.
Needs["ClusterIntegration`"]
PBS["name"] repräsentiert ein Altair Portable Batch System mit spezifiziertem Namen. Hier werden zwei
Kernel gestartet.
SGE
Mathematica kann von Haus aus mit vielen verschiedenen Protokollen und Systemen Parallelberechnungen
durchführen. Bei dem folgenden Beispiel muss immer das Cluster Integration Paket mitgeladen werden.
Needs["ClusterIntegration`"]
SGE["name"] repräsentiert eine Sun Grid Engine mit spezifiziertem Namen. Hier werden zwei Kernel gestartet.
SSH - Secure Shell
Die Arbeit mit Mathematica und dem Parallel Computing Toolkit bzw. mit gridMathematica erfordert eine
möglichst sichere Verbindung zwischen einem Master PC und mehreren Slave PCs. Der Mathematica Master
Kernel muss auf den Slave PC weitere Mathematica-Prozesse starten und beenden können, damit eine
verteilte Berechnung möglich ist. Dafür gibt es für unterschiedliche Betriebssysteme diverse Ansätze. Unter
Windows können Werkzeuge aus dem Windows Ressource Kit (rshsvc), Windows-Prozesstools (psexec) aber
auch SecureShell (ssh) verwendet werden. Unter UNIX/LINUX/OSX verwendet man RSH oder SSH. Das
nachfolgende Dokument erklärt:
o wie man mehrere LINUX PC mittels der freien Software Openssh verbindet
o wie man mehrere Windows PC mittels der freien Software cygwin per openssh verbindet
o wie man die bestehende Verbindung benutzt um Mathematica - Kernels auf bestimmten Ports zu
verbinden
o wie man ohne Portangabe Mathematica - Kernels verbindet
o wie man mittels Windows-Prozesstools (psexec) ungesicherte Verbindungen erstellt
Die gezeigten Knowhows sind über unseren
ADDITIVE Professional Service erhältlich.
Um mit unseren gridMathematica-Experten in Kontakt zu
treten, kontaktieren Sie mich per E-Mail:
christian.hackenberg@additive-net.de
oder per Telefon: +49 162 61 388 50.

Weitere ähnliche Inhalte

Ähnlich wie HPC, Cluster Integration & Parallel Computing - How To

Pc Hardware Ueberblick 2012
Pc Hardware Ueberblick 2012Pc Hardware Ueberblick 2012
Pc Hardware Ueberblick 2012
georgmechler
 
Abaqus tutorial20060721 endversion
Abaqus tutorial20060721 endversionAbaqus tutorial20060721 endversion
Abaqus tutorial20060721 endversion
imranmahsud
 
20111006 roadshow-sandy-bridge
20111006 roadshow-sandy-bridge20111006 roadshow-sandy-bridge
20111006 roadshow-sandy-bridge
Werner Fischer
 
Green IT BB Award 2012 - Christmann Informationstechnik + Medien
Green IT BB Award 2012 - Christmann Informationstechnik + MedienGreen IT BB Award 2012 - Christmann Informationstechnik + Medien
Green IT BB Award 2012 - Christmann Informationstechnik + Medien
Netzwerk GreenIT-BB
 

Ähnlich wie HPC, Cluster Integration & Parallel Computing - How To (20)

Archivistavm OpenTuesday Digicomp
Archivistavm OpenTuesday DigicompArchivistavm OpenTuesday Digicomp
Archivistavm OpenTuesday Digicomp
 
Pc Hardware Ueberblick 2012
Pc Hardware Ueberblick 2012Pc Hardware Ueberblick 2012
Pc Hardware Ueberblick 2012
 
Tipps & Tricks für den erfolgreichen Einsatz von GPU-Computing
Tipps & Tricks für den erfolgreichen Einsatz von GPU-ComputingTipps & Tricks für den erfolgreichen Einsatz von GPU-Computing
Tipps & Tricks für den erfolgreichen Einsatz von GPU-Computing
 
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und EntwicklungsumgebungenOpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
 
Oracle Engineered Systems - Chance oder Risiko?
Oracle Engineered Systems - Chance oder Risiko?Oracle Engineered Systems - Chance oder Risiko?
Oracle Engineered Systems - Chance oder Risiko?
 
Realtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und HadoopRealtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
 
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
 
CPU Update Juni 2017
CPU Update Juni 2017CPU Update Juni 2017
CPU Update Juni 2017
 
Cloud – der nächste Schritt der Diagnose (German)
Cloud – der nächste Schritt der Diagnose (German)Cloud – der nächste Schritt der Diagnose (German)
Cloud – der nächste Schritt der Diagnose (German)
 
Cloud Computing - Technische Grundlagen, Chancen und Probleme des Trends
Cloud Computing - Technische Grundlagen, Chancen und Probleme des TrendsCloud Computing - Technische Grundlagen, Chancen und Probleme des Trends
Cloud Computing - Technische Grundlagen, Chancen und Probleme des Trends
 
systemd im Alltag
systemd im Alltagsystemd im Alltag
systemd im Alltag
 
Zeitreihen in Apache Cassandra
Zeitreihen in Apache CassandraZeitreihen in Apache Cassandra
Zeitreihen in Apache Cassandra
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Nagios Conference 2006 | SAP Monitoring I by Michael Kienle
Nagios Conference 2006 |  SAP Monitoring I by Michael KienleNagios Conference 2006 |  SAP Monitoring I by Michael Kienle
Nagios Conference 2006 | SAP Monitoring I by Michael Kienle
 
Dateisysteme und Datenbanken im Cloud Computing
Dateisysteme und Datenbanken im Cloud ComputingDateisysteme und Datenbanken im Cloud Computing
Dateisysteme und Datenbanken im Cloud Computing
 
Blockchain-based access right management for private data in decentralized cl...
Blockchain-based access right management for private data in decentralized cl...Blockchain-based access right management for private data in decentralized cl...
Blockchain-based access right management for private data in decentralized cl...
 
Abaqus tutorial20060721 endversion
Abaqus tutorial20060721 endversionAbaqus tutorial20060721 endversion
Abaqus tutorial20060721 endversion
 
NUMA vs. Hugepages
NUMA vs. HugepagesNUMA vs. Hugepages
NUMA vs. Hugepages
 
20111006 roadshow-sandy-bridge
20111006 roadshow-sandy-bridge20111006 roadshow-sandy-bridge
20111006 roadshow-sandy-bridge
 
Green IT BB Award 2012 - Christmann Informationstechnik + Medien
Green IT BB Award 2012 - Christmann Informationstechnik + MedienGreen IT BB Award 2012 - Christmann Informationstechnik + Medien
Green IT BB Award 2012 - Christmann Informationstechnik + Medien
 

HPC, Cluster Integration & Parallel Computing - How To

  • 1. HPC, Cluster Integration & Parallel Computing How To
  • 2. Technical Computing mit Multicore-Technologie und Rechenclustern gridMathematica führt Mathematica, die weltweit führende Umgebung für technische Berechnungen, mit modernen Rechenclustern und -netzen zusammen, um den Herausforderungen in der Mathematik, in den Ingenieur- und Naturwissenschaften und in den Finanzwissenschaften zu begegnen. gridMathematica setzt die Mathematica-Technologie, die ursprünglich für Single-Prozessor-Maschinen entwickelt wurde, für komplexe Berechnungen mit hohem Datenaufkommen auf Clustern, Multiprozessormaschinen und Rechnernetzen um. gridMathematica bietet einen schnellen Zugriff auf die Vorbereitung und Ausführung komplexer Berechnungen. Es verfügt über eine hochstehende Programmiersprache, eine große Sammlung schneller und verlässlicher mathematischer Algorithmen und benutzerfreundliche Konstrukte für das parallele Programmieren. Typische Anwendungsbereiche von gridMathematica können in der Bioinformatik, der Verarbeitung und Analyse großer Datensätze, dem Data Mining und großen Berechnungen in der Physik, der Mathematik und den Life Sciences gesehen werden. Jede Mathematica Einzelplatz oder Netzwerklizenz (ab V8) besitzt mindestens 4 x Mathematica-Compute- Kernels, so dass damit quasi jeder Nutzer von Beginn an "sein kleines Grid" zur Verfügung hat. Der Neuling in dieser Thematik kann sofort loslegen und der erfahrene Cluster-Experte kann über Konfigurationselemente in die Steuerung eingreifen. Mathematica lässt sich so auf beliebige viele Kernels erweitern, um z. B. auf einem HPC mit 512 Kernels zu rechnen.
  • 3. Inhaltsverzeichnis Technical Computing mit Multicore-Technologie und Rechenclustern...............................................................2 Beschleunigung von Prozessen mit gridMathematica .........................................................................................4 Core Extension..................................................................................................................................................4 gridMathematica Server...................................................................................................................................5 Wolfram Lightweight Grid Manager.................................................................................................................5 Lizenzierung von Mathematica auf Multicore-/Multiprozessor-Systemen zur parallelen und/oder verteilten Berechnung...........................................................................................................................................................6 Mathematica-Einzelplatzlizenz & 1 leistungsstarker Computer ......................................................................6 Mathematica-Einzelplatzlizenzen auf mehreren Computern ..........................................................................7 Mathematica-Netzwerklizenz und die zur Verfügung stehenden Compute-Kernel reichen aus.....................7 Mathematica-Netzwerklizenz und mehr Compute-Kernel werden benötigt ..................................................8 Cluster Integration................................................................................................................................................9 CCS....................................................................................................................................................................9 HPC ...................................................................................................................................................................9 LSF.................................................................................................................................................................. 10 PBS................................................................................................................................................................. 10 SGE................................................................................................................................................................. 10 SSH - Secure Shell .......................................................................................................................................... 11
  • 4. Beschleunigung von Prozessen mit gridMathematica gridMathematica implementiert zahlreiche Primitive der Parallelprogrammierung und enthält höhere Kommandos für die parallele Ausführung von Matrixoperationen, Plotting u.v.a. gridMathematica wird mit Beispielapplikationen zahlreicher neuer populärer Programmieransätze, wie z. B. der parallelen Monte-Carlo- Simulation, Visualisierung, Datensuche und -optimierung ausgeliefert. Die Implementierung für alle höheren Kommandos zur Parallelverarbeitung sind als Mathematica-Sourcen enthalten, können also als Vorlagen für den Benutzer dienen, um eigene Parallelprogramme zu entwickeln. Mit gridMathematica können jedoch nicht alle Berechnungen beschleunigt werden. Operationen wie "Integrate" oder "DSolve" wurden für die Verwendung auf einem Single-Prozessor-Rechner konzipiert. Eine Beschleunigung dieser Berechnungen kann dennoch erreicht werden, indem verschiedene “slave kernels”, d. h. untergeordneten Kernel im Netzwerk, die einzelnen Kalkulationen abarbeiten, anstatt sie durch einen Kernel sequentiell nacheinander zu berechnen. Core Extension Mathematica Core Extension (vormals gridMathematica local) als 4 x Mathematica-Compute-Kernel Erweiterung zu einer Mathematica Einzelplatzlizenz. Es ist das ideale Werkzeug für "Power-User" mit Multicore-Rechnern.
  • 5. gridMathematica Server gridMathematica Server erweitert eine bestehende Mathematica Netzwerklizenz um einen netzwerk- gesteuerten Pool an Compute-Kernels. gridMathematica Server ist in der Lage seine Compute-Kernels sowohl auf den lokalen Rechnern (CPUs) einzelner Netzwerknutzer zu verteilen, als auch auf Remote-Hardware um die Rechenpower von Multicore-Rechnern auszureizen. Wolfram Lightweight Grid Manager Wolfram Lightweight Grid Manager (Cloudcomputing): steuert und kontrolliert den Einsatz von Mathematica Berechnungen auf Remote-Hardware. Wolfram Lightweight Grid Manager wird eingesetzt um High- Performance-Cluster zu kontrollieren oder um ad-hoc Rechengrids von "verfügbaren" Netzwerkrechnern aufzubauen und Berechnungen durchzuführen. Es ist in gridMathematica Server integriert und als Vorteil vom Premier Service bei Mathematica Lizenzen. Mehr Informationen zum Wolfram Lightweight Grid Manager finden Sie hier: https://www.wolfram.com/lightweight-grid-manager/
  • 6. Lizenzierung von Mathematica auf Multicore-/Multiprozessor-Systemen zur parallelen und/oder verteilten Berechnung 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 untenstehende 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: Juni 2019, Mathematica 12 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. o 1 Mathematica-Einzelplatzlizenz o 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.
  • 7. Mathematica-Einzelplatzlizenzen auf mehreren Computern Im zweiten Fall besitzen Sie mehrere Mathematica-Einzelplatzlizenzen und wollen Ihre Berechnungen auf mehreren Computern verteilt durchführen. o mehrere Mathematica-Einzelplatzlizenzen o Berechnungen auf mehrere Computer verteilen o 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. 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. o Mathematica-Netzwerklizenz o ausreichende Anzahl an lizenzierten Compute-Kernels o Berechnungen auf mehrere Computer verteilen o 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 Kernels nicht bereits durch andere Nutzer für Berechnungen eingesetzt werden.
  • 8. 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. o Mathematica-Netzwerklizenz o Anzahl der zu nutzendenden CPUs übersteigt die Anzahl vorhandener Compute-Kernels o 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 Computers ab, nur die Workstation benötigt noch zusätzlich 16 Compute- Kernel. Diese werden über eine gridMathematica-Server-Lizenz abgedeckt.
  • 9. Cluster Integration Die Cluster-Integration führt parallele Prozesse auf verschiedenen Computern der Wolfram-Language aus. Verschiedene Cluster-Management-Technologien lassen sich einrichten. CCS Mathematica kann von Haus aus mit vielen verschiedenen Protokollen und Systemen Parallelberechnungen durchführen. Bei dem folgenden Beispiel muss immer das Cluster Integration Paket mitgeladen werden. Needs["ClusterIntegration`"] CCS["name"] repräsentiert einen Windows Compute Cluster Server mit spezifiziertem Namen. Hier werden zwei Kernel gestartet. HPC Mathematica kann von Haus aus mit vielen verschiedenen Protokollen und Systemen Parallelberechnungen durchführen. Bei dem folgenden Beispiel muss immer das Cluster Integration Paket mitgeladen werden. Needs["ClusterIntegration`"] HPC["name"] repräsentiert einen Windows High Performance Computing Server mit spezifiziertem Namen. Hier werden zwei Kernel gestartet.
  • 10. LSF Mathematica kann von Haus aus mit vielen verschiedenen Protokollen und Systemen Parallelberechnungen durchführen. Bei dem folgenden Beispiel muss immer das Cluster Integration Paket mitgeladen werden. Needs["ClusterIntegration`"] LSF["name"] repräsentiert ein Platform Load Sharing Facility Cluster mit spezifiziertem Namen. Hier werden zwei Kernel gestartet. PBS Mathematica kann von Haus aus mit vielen verschiedenen Protokollen und Systemen Parallelberechnungen durchführen. Bei dem folgenden Beispiel muss immer das Cluster Integration Paket mitgeladen werden. Needs["ClusterIntegration`"] PBS["name"] repräsentiert ein Altair Portable Batch System mit spezifiziertem Namen. Hier werden zwei Kernel gestartet. SGE Mathematica kann von Haus aus mit vielen verschiedenen Protokollen und Systemen Parallelberechnungen durchführen. Bei dem folgenden Beispiel muss immer das Cluster Integration Paket mitgeladen werden. Needs["ClusterIntegration`"] SGE["name"] repräsentiert eine Sun Grid Engine mit spezifiziertem Namen. Hier werden zwei Kernel gestartet.
  • 11. SSH - Secure Shell Die Arbeit mit Mathematica und dem Parallel Computing Toolkit bzw. mit gridMathematica erfordert eine möglichst sichere Verbindung zwischen einem Master PC und mehreren Slave PCs. Der Mathematica Master Kernel muss auf den Slave PC weitere Mathematica-Prozesse starten und beenden können, damit eine verteilte Berechnung möglich ist. Dafür gibt es für unterschiedliche Betriebssysteme diverse Ansätze. Unter Windows können Werkzeuge aus dem Windows Ressource Kit (rshsvc), Windows-Prozesstools (psexec) aber auch SecureShell (ssh) verwendet werden. Unter UNIX/LINUX/OSX verwendet man RSH oder SSH. Das nachfolgende Dokument erklärt: o wie man mehrere LINUX PC mittels der freien Software Openssh verbindet o wie man mehrere Windows PC mittels der freien Software cygwin per openssh verbindet o wie man die bestehende Verbindung benutzt um Mathematica - Kernels auf bestimmten Ports zu verbinden o wie man ohne Portangabe Mathematica - Kernels verbindet o wie man mittels Windows-Prozesstools (psexec) ungesicherte Verbindungen erstellt
  • 12. Die gezeigten Knowhows sind über unseren ADDITIVE Professional Service erhältlich. Um mit unseren gridMathematica-Experten in Kontakt zu treten, kontaktieren Sie mich per E-Mail: christian.hackenberg@additive-net.de oder per Telefon: +49 162 61 388 50.