Stand von Mac OS in Scientific Computing und HPC

17

In den Anfängen von OS X schien es zumindest in der Mac-Welt (ich war zu dieser Zeit noch weit entfernt vom wissenschaftlichen Rechnen) viel Trubel um Mac OS als Plattform für wissenschaftliches Rechnen und HPC-Anwendungen zu geben.

XGrid war sofort einsatzbereit, Virginia Tech hatte ein ausgefallenes Mac-basiertes Computer-Cluster, Stanford machte coole Sachen usw. usw.

In jüngerer Zeit war es jedoch ruhig. Die Macresearch.org-Site ist im Wesentlichen eine Geisterstadt voller Spammer-Zombies, der XServe ist tot und ein Großteil der Marketingliteratur und dergleichen scheint sogar aus dem Bereich der Vor-Intel-Prozessoren zu stammen. Aber XGrid ist immer noch da, das gesamte * nix-Betriebssystem ist vorhanden, und die Plattform scheint unter Python, R und einigen der neueren Sprachen eine anständige Unterstützung zu haben.

Also von Leuten, die mehr darüber wissen als ich ... wie geht es OS X? Sind sie brauchbare clientseitige Computer für das wissenschaftliche Rechnen? Verwendet sie als Server / Cluster / etc. über XGrid oder so ähnlich einfach eine Neuheitsanwendung?

Fomite
quelle
Könnte der Abstimmende bitte erläutern, warum Sie abgestimmt haben?
Geoff Oxberry
Meh. Das ist nicht schrecklich für den guten subjektiven, schlechten subjektiven Verkauf, aber es bringt mir trotzdem nichts. Für mich lautet die Antwort: Unix ist sofort einsatzbereit, kostet aber zu viel für Orte, an denen die Benutzeroberfläche nicht kritisch ist.
dmckee
@ dmckee: Ja, das konnte ich sehen. Ich denke, viele Leute werden dir zustimmen. Für mich war das Problem nicht so einfach, weil ich die Hardware-Ausfälle satt hatte und selbst dann noch Linux auf einer virtuellen Maschine laufen ließ. Ich bin auf Leute gestoßen, deren Workflow hauptsächlich unter OS X abläuft, daher denke ich, dass dies eine vernünftige Frage für eine Nischengemeinschaft ist. Ich bin auch der Meinung, dass Computational Science noch ein paar Fragen beantworten könnte, und Antworten aus mehreren Perspektiven wären hilfreich, um den Menschen eine Vorstellung davon zu geben, welche Tools wir für das wissenschaftliche Rechnen verwenden.
Geoff Oxberry
@dmckee Und ich würde das als eine gültige Antwort betrachten - dass einige der Sachen, die Apple eingearbeitet hat, keinen wirklich lebendigen und zwingenden Grund haben, ihr Betriebssystem zu verwenden.
Fomite
Die Frage war auch ein Versuch, einige der Fragen des Typs "Wissenschaftliches Rechnen" zu untersuchen, die Hardware-Fragen von ServerFault unterscheiden könnten, wobei eine Frage verwendet wird, an der ich sowohl interessiert bin als auch die Antwort wirklich nicht weiß.
Fomite

Antworten:

12

Ich kann auf der Serverseite keine Kommentare abgeben.

Auf der Client-Seite scheint der Anteil der Mac-Benutzer bei dem einen Computer-Wissenschaftstreffen, zu dem ich jedes Jahr gehe, zugenommen zu haben. Ich bin auf einen Mac umgestiegen, weil ich es leid war, mit meinem Dell-Laptop aus der Schule umzugehen. Ich bin vor allem wegen der Hardware zu Macs gewechselt, da Consumer Reports sie in Bezug auf die Haltbarkeit als hoch eingestuft hat. Ich denke nicht, dass Macs für das wissenschaftliche Rechnen gut sind, es sei denn, Sie führen Linux auf ihnen aus. Die Linux-Unterstützung für die Hardware bleibt tendenziell zurück. In der Regel wird die WLAN-Karte nicht unterstützt (wenn sie in einem neuen Modell geändert wird). Wenn Sie bereit sind, die mit dem Ausführen einer virtuellen Maschine verbundene Ressourcenstrafe zu akzeptieren, ist dies eine attraktive Option (und eine, die ich persönlich benutze).

Für Macs müssen Sie viele Bibliotheken und Softwarepakete installieren, bevor Sie ernsthafte wissenschaftliche Berechnungen durchführen können. Alles, was über ein Mac-Installationsprogramm verfügt, ist einfach zu verwalten. Wenn Sie also den größten Teil Ihrer Entwicklungsarbeit mit Matlab, Mathematica, Maple, Python usw. erledigen, ist es einfach, diese Software nativ auf OS X zu installieren und auszuführen. Es ist schwieriger, numerische Hardcore-Software zu finden, die über ein Mac-Installationsprogramm verfügt (denken Sie an Dinge wie PETSc oder CLAWPACK). Paketmanager wie MacPorts und Finkkann die Situation verbessern, wenn Sie nur OS X verwenden möchten. Sie müssen auch viele Pakete aus dem Quellcode kompilieren. Wenn Sie Ihren Code an einer anderen Stelle ausführen möchten, müssen Sie auf Kompatibilitätsprobleme achten. Da Linux im wissenschaftlichen Rechnen weit verbreitet ist, ist es unter dem Gesichtspunkt der Portabilität einfacher, Code unter Linux zu entwickeln.

Ich habe anekdotisch von hochmeinenden Freunden gehört, dass das Einrichten einer Entwicklungsumgebung auf einem Mac ein großes Problem ist, andere sagten, es sei nicht so schlimm. Ihr Kilometerstand kann variieren.

Geoff Oxberry
quelle
1
Ich habe unten abgestimmt: Wie ist die Installation für das wissenschaftliche Rechnen auf dem Mac komplizierter als unter Linux? Sicher, wenn Sie unter Linux CAE starten, ist das meiste davon bereits integriert, aber für die meisten anderen Distributionen müssen Sie Pakete herunterladen und / oder aus Quellen erstellen. Das möchten Sie vielleicht trotzdem, um die Bibliotheken für Ihre spezifischen Anforderungen und / oder maximale Leistung zu optimieren. Abgesehen davon wird es für Mac OS schwierig sein, in großem Umfang an Universitäten eingeführt zu werden, solange sie das Betriebssystem nicht unabhängig von der Hardware lizenzieren (nicht, dass sie es sollten). Nicht sicher, wie Sie die zusätzlichen Kosten rechtfertigen können ...
FrenchKheldar
4
FrenchKheldar: Es gibt eine Menge zusätzlicher Dinge, die auf einem Mac installiert werden müssen (ich schreibe dies auf einem Macbook Pro), wenn Software erstellt wird - eine Menge Bibliotheken und Tools -, die nur eine apt-get- oder yum-Installation entfernt sind Linux-Box, ganz zu schweigen von größeren Elementen wie neueren Compilern, einem neueren Python usw. Deshalb gibt es Ports und Homebrew, aber diese Dinge lassen sich nicht immer sauber installieren, und nicht alle Pakete sind in beiden enthalten. Je nachdem, was Sie in Ihrer Entwicklungsumgebung wollen, kann es auf einem Mac schwieriger sein und ist es auch. OTOH, du bekommst Xcode ...
2
Es ist erheblich einfacher, etwas von einem Paketmanager aus zu installieren, als denselben Code von Grund auf neu zu kompilieren. Im besten ./configure && make && make installFall ist es einfach , aber im schlimmsten Fall kann es ein Labyrinth sein, in dem Skripte, Flags und Bibliotheksspeicherorte aussortiert werden. Die Installation von PETSc 3.2 aus einem Debian-Paket dauerte 5 Sekunden (ich habe dies sogar auf Veranlassung einiger Entwickler getan); Die Installation von der Quelle in Linux dauerte den ganzen Tag mit den verschiedenen Optionen. Der Punkt war, dass Pakete und Installer nicht unbedingt für den Mac existieren, wenn sie für Linux existieren (und sie machen Linux benutzerfreundlicher).
Geoff Oxberry
Es gibt auch den großen Ärger, dass "nur Stall" mit Macs in der Luft hängt, zumindest musste ich mehrmals damit kämpfen. Ein gutes Beispiel, das ich persönlich hatte, ist ein GCC-Fehler, der dazu führte, dass eine App regelrecht abstürzte und brannte, wenn OpenMP-Pragmas in Code enthalten waren, der von einem pthread aufgerufen wurde. Eigentlich habe ich nur ICC verwendet und unterstützt, da es verfügbar war, weil es einfacher war, als das GCC auf diesem Mac zu ändern. Es gibt eine Reihe anderer Bibliotheken, die ich auf einem Mac gesehen habe und die prähistorische Versionen haben (na ja, mindestens ein paar Jahre alt).
TC1
13

@Geoff gibt eine gute Antwort, aber ich denke, es lohnt sich, eine alternative Perspektive bereitzustellen.

Ich mache alles auf Macs - in OS X, nicht in einer Linux-VM - einschließlich einer Menge wissenschaftlicher Codeentwicklung. Ich arbeite hauptsächlich in Fortran und Python. Für mich ist die Bequemlichkeit von

  • in der Lage zu sein, meine ganze Arbeit in einem Betriebssystem zu erledigen und
  • Behandeln Sie fast nie Hardwarefehler oder Treiberprobleme

ist die Kosten für Mac-spezifische Kopfschmerzen wert.

Die drei wichtigsten Kopfschmerzen sind:

  1. Fehlen eines Paketmanagers nach OS-Standard. Früher habe ich Fink benutzt, aber irgendwann hat es mehr Kopfschmerzen verursacht und ist jetzt veraltet. Ich habe gute Dinge über Macports und Homebrew gehört, aber meine Erfahrung mit Fink hat mich überzeugt, nur "meine eigenen zu rollen".

  2. Einige der integrierten Software ist sehr veraltet. Insbesondere Python und gcc. Dies bedeutet, dass Sie Ihre eigenen aktualisierten Versionen installieren müssen, was ein Ärger sein kann.

  3. Apple enthält keinen Fortran-Compiler!

Es scheint mir, dass Apple seinen Unix-basierten Power-Usern immer weniger Aufmerksamkeit schenkt. Währenddessen verbessert sich Linux ständig. Irgendwann werde ich wahrscheinlich wieder auf Linux umsteigen. Aber ich werde mein Macbook behalten, bis jemand anderes lernt, wie man anständige Batterien herstellt.

David Ketcheson
quelle
1
Meine wissenschaftliche Computerumgebung auf meinem Mac (Compiler, Bibliotheken) wird zu 99% von MacPorts bereitgestellt. Es ist nicht perfekt, aber es ist einfacher als eine manuelle Installation. Natürlich hängt es sehr davon ab, wie viel Sie installieren müssen, um Ihre Arbeit zu erledigen.
Khinsen
9

Ich würde behaupten , dass der Mac eine bessere Umgebung für Computational ist Wissenschaftler , als es für Computational ist Wissenschaft . Ich möchte keine Macs in einer Commodity-Computing-Umgebung verwenden. dafür ist die hardware relativ viel zu teuer. Es kann mühsam sein, die Softwareumgebung an die für ein bestimmtes Paket erforderlichen Bedingungen anzupassen. In der Regel ist die Wartung jedoch wesentlich einfacher als bei einer vergleichbaren Windows-Installation, wenn Sie dies beim ersten Mal herausgefunden haben. (Und abhängig von den Paketmanagern kann es so einfach sein wie Linux. MacPorts eignet sich ziemlich gut als Manager für OS X!)

Als Arbeitsplattform für einen vielbeschäftigten Computerwissenschaftler bietet der Mac meines Erachtens jedoch den zusätzlichen Vorteil, dass er in einer einzigen Computerumgebung arbeiten und warten kann, anstatt eine Linux-Box für "ernsthafte" Arbeiten unterhalten zu müssen Sie benötigen einen anderen Computer, wenn Kollegen aus anderen Disziplinen mir beispielsweise Office-Dateien senden, für die ein Markup erforderlich ist, oder ich muss ein Universitätsformular ausfüllen, das nur als RTF-Vorlage verfügbar ist, die mit LibreOffice nicht ordnungsgemäß formatiert wird Ein Schmerz im Nacken, der in LaTeX wieder hergestellt werden muss. (Bei früheren Aufträgen mussten Linux-Besitzer fast ausschließlich einen Nicht-Linux-Computer haben, da der Zugriff auf die Unternehmensumgebung mehr oder weniger erforderlich war. Mac-Besitzer benötigten keinen zweiten Computer.)

Darüber hinaus gibt es eine Reihe von Nur-Mac-Programmen (wie TextMate , Scrivener , Papers , Things , OmniFocus oder BibDesk ), die den Mac zu einer angenehmeren Arbeitsumgebung machen als auf dem PC oder Linux. Ich verbringe mehr Zeit damit, mich darauf zu konzentrieren, Dinge zu erledigen, als darauf, was ich tun muss, damit die Softwareumgebung das tut, was ich will (oder muss!).

Aeismail
quelle
5

Der Einsatz von OS X in HPC und im wissenschaftlichen Rechnen ist gering und hat viel mit den Vor- und Nachteilen von OS X zu tun (Linux).

OS X-Vorteile:

  • Polierte Benutzeroberfläche; noch * nix
  • Desktop / Design-App (s) wie MS Office, gut unterstützte Adobe-Programme
  • Multimedia sehr gut unterstützt
  • Manche Leute mögen das Apple-Ökosystem (iPhone, iTunes usw.)

OS X Nachteile:

  • Läuft auf teurer Hardware und nicht jeder mag Macbooks, besonders Leute, die an Thinkpads gewöhnt sind (Tastatur + Trackpoint)
  • Hardware kann nicht auf dem Desktop / Cluster aktualisiert werden (z. B. wenn Sie die neueste NVIDIA-Karte mit Ihrer CUDA-App testen möchten)
  • Aufgeblähte Benutzeroberfläche, die nicht angepasst werden kann (unter Linux können Sie einen minimalistischen Fenstermanager verwenden)
  • Das Paket mgmt in Macports / Fink ist im Vergleich zu Linux (Debian) -Distributionen unterdurchschnittlich. Die meisten Pakete werden nicht einmal aktiv gewartet oder sind verwaist
  • Einige nützliche Tools / Programme liefen unter OS X normalerweise nicht oder immer noch nicht. Zum Beispiel ...

    1. Sun Studio funktioniert immer noch nicht
    2. Valgrind funktioniert erst seit kurzem und nicht alle Funktionen werden unterstützt
    3. Intel-Compiler waren in den letzten Jahren ebenfalls verfügbar
    4. Apple packt nicht einmal einen Fortran-Compiler und Sie müssen sich darauf verlassen, dass Dritte (meist Einzelpersonen) Binärdateien erstellen, die nur auf bestimmten OS X-Versionen (die die Einzelperson hat) funktionieren. Unterstützung ist in solchen Fällen selten oder nicht vorhanden
    5. Kommerzielle wissenschaftliche Apps (ABAQUS, ANSYS, FLUENT und viele mehr in Branchen wie Oil / Finance / Engg usw.) laufen nicht (nativ) unter OS X

Linux (Debian) -Profis:

  • Erstklassiges Paketmanagement, dh die Installation von Compilern, den meisten numerischen / wissenschaftlichen Bibliotheken usw., ist nur einen Befehl entfernt
  • Im Gegensatz zu Fink / Macports werden die Pakete viel besser unterstützt (in Debian haben Sie die Möglichkeit, Bleeding Edge / Testing / Stable-Versionen zu verwenden).
  • Auf den meisten Clustern wird eine Version von Debian / Red Hat ausgeführt, so dass die Portierung von Code (s) weniger problematisch ist.

Linux (Debian) Nachteile:

  • Keine Standard-Benutzeroberfläche
  • Linux auf Desktops / Laptops erfordert möglicherweise einige Anpassungen (Anhalten / Fortsetzen, 3D-Videobeschleunigung, Sound usw.), aber dies hat sich in den letzten Jahren erheblich verbessert

Abgesehen von einigen Ausnahmen finden die meisten Benutzer und Cluster- / Systemadministratoren OS X einfacher für die Desktop-Produktivität und NICHT für das wissenschaftliche Rechnen (Kompilieren, Verwenden, Entwickeln von Dingen).

OTOH Die meisten Linux-Benutzer finden Letzteres einfacher als Ersteres und dies spiegelt sich im gesamten HPC / Scientific Computing-Ökosystem wider.

stali
quelle
Fügen Sie Ihrer Liste nützlicher Tools, die unter OS X nicht funktionieren, Folgendes hinzu: gprof.
David Ketcheson
Die ThinkPad-Referenz brachte mich zum Lachen. Im Moment sind wir ein geteilter Apple / Lenovo-Haushalt und meine, aber sie mag das Trackpad nicht :)
Fomite
@DavidKetcheson, das liegt daran, dass OS X über Instrumente (früher Shark) verfügt.
Aron Ahmadia
3

Ich benutze seit vielen Jahren ausschließlich Macs auf dem Desktop (und dem Laptop) und beschäftige mich unter anderem mit wissenschaftlichem Rechnen und wissenschaftlicher Softwareentwicklung. Wie bereits erwähnt, machen die Qualität der Hardware, die hohe Qualität vieler Mac-spezifischer Software und die Fähigkeit, bei Bedarf mit Word und Excel umzugehen, den Mac zu einer sehr schönen Plattform für den täglichen Gebrauch.

Ich habe auch einen Mac-basierten Computer-Cluster als Experiment für eine Weile ausgeführt. Es ist ein Experiment, zu dem ich nicht mehr versucht bin. Im Vergleich zu einem Linux-Cluster sehe ich keine wesentlichen Vorteile, abgesehen von der einfachen Installation der Software, wenn Sie ohnehin Macs auf dem Desktop haben (installieren Sie einfach dasselbe). Die Nachteile liegen auf der Hand, vor allem die mangelnde Unterstützung der Mehrbenutzer-GUI. Auf einem Mac entspricht ein Computer einem Bildschirm und höchstens einem angemeldeten Benutzer. Das macht GUI-basierte Tools zu einem Problem. Im Vergleich dazu ist es eine Freude, auch einfache X-Fenster unter Linux zu verwenden, und dann gibt es VNC und NoMachine NX, die es noch besser machen.

Ja, ich weiß, dass der Mac X Windows unterstützt, aber die meisten GUI-Programme für den Mac verwenden die native Oberfläche.

khinsen
quelle
Vielen Dank für den Einblick in die Ausführung eines Mac-basierten Clusters. Was für GUI-Tools fehlen Ihnen?
Fomite
Sie können die meisten GUI-Tools für die Wissenschaft erhalten, indem Sie X-Window-basierte Software über MacPorts installieren. Das ist jedoch eine Menge Arbeit. Im anderen Extremfall haben Sie keine Chance, proprietäre Software (z. B. Mathematica) aus der Ferne zum Laufen zu bringen, es sei denn, Sie akzeptieren die grundlegende Beschränkung der Mac-Benutzeroberfläche auf einen Benutzer = einen Computer = einen Bildschirm. Je mehr Sie eine Mac-spezifische Software benötigen, desto schwerer fällt Ihnen das GUI-Problem.
Khinsen