Estado del sistema operativo Mac en informática científica y HPC

17

En los albores de OS X, parecía haber una gran cantidad de bullicio, al menos en el mundo Mac (no estaba cerca de la informática científica en ese momento) sobre Mac OS como plataforma para la informática científica y las aplicaciones de HPC.

XGrid salió de la caja, Virginia Tech tenía su elegante clúster de computación basado en Mac, Stanford estaba haciendo cosas geniales, etc., etc.

Más recientemente, sin embargo, las cosas han estado tranquilas. El sitio Macresearch.org es esencialmente una ciudad fantasma llena de zombis spammers, el XServe está muerto, y una gran cantidad de la literatura de marketing y similares parece ser incluso del área del procesador anterior a Intel. Pero XGrid todavía está allí, todo el apuntalamiento del sistema operativo * nix está allí, y la plataforma parece tener un soporte decente entre Python, R y algunos de los lenguajes más nuevos.

Entonces, de las personas que saben más sobre esto que yo ... ¿cómo le va a OS X? ¿Son computadoras viables del lado del cliente para la computación científica? Los está utilizando como servidor / clúster / etc. a través de XGrid o algo así simplemente una aplicación novedosa?

Fomite
fuente
¿Podría el votante en contra comentar por qué votó en contra?
Geoff Oxberry
Meh Esto no es horrible en la buena venta subjetiva, mala subjetiva , pero todavía no hace nada por mí. En lo que a mí respecta, la respuesta es: es unix fuera de la caja, pero cuesta demasiado para lugares donde la interfaz de usuario no es crítica.
dmckee
@dmckee: Sí, pude ver eso. Creo que muchas personas estarán de acuerdo contigo. Para mí, el problema no era tan sencillo porque me cansé de fallas de hardware, e incluso entonces, todavía ejecuto Linux en una máquina virtual. Me he encontrado con personas a las que les gusta que su flujo de trabajo sea principalmente OS X, así que creo que es una pregunta razonable para una comunidad de nicho. También siento que la Computational Science podría usar algunas preguntas más, y las respuestas desde múltiples perspectivas serían útiles para dar a las personas una idea de qué herramientas usamos en la computación científica.
Geoff Oxberry
@dmckee Y considero que es una respuesta válida: que algunas de las cosas que Apple ha preparado no han generado una razón realmente vibrante y convincente para usar su sistema operativo.
Fomite
La pregunta también fue un intento de explorar algunas de las preguntas tipo "hacer computación científica" que podrían distinguir las preguntas de hardware de ServerFault, usando una en la que estoy interesado y realmente no sé la respuesta.
Fomite

Respuestas:

12

No puedo comentar sobre el lado del servidor de las cosas.

Del lado del cliente, en la única reunión de ciencias computacionales a la que voy cada año, la proporción de usuarios de Mac parece haber aumentado. Me cambié a una Mac porque me cansé de tratar con la falla de mi laptop Dell suministrada por la escuela. Me cambié a Mac para el hardware, principalmente, ya que Consumer Reports los calificó altamente en términos de durabilidad. No creo que las Mac sean buenas para la informática científica a menos que ejecutes Linux en ellas. El soporte de Linux para el hardware tiende a retrasarse; por lo general, no se admite la tarjeta inalámbrica (siempre que la cambien en un nuevo modelo). Si está dispuesto a aceptar la penalización de recursos que viene con la ejecución de una máquina virtual, es una opción atractiva (y una que yo personalmente uso).

Las Mac requieren que instales una gran cantidad de bibliotecas y paquetes de software antes de que puedas hacer computación científica seria. Cualquier cosa que tenga un instalador de Mac es fácil de administrar, por lo que si realiza la mayor parte de su trabajo de desarrollo con Matlab, Mathematica, Maple, Python, etc., es fácil instalar y ejecutar ese software en OS X de forma nativa. Es más difícil rastrear el software numérico de núcleo duro que tiene un instalador de Mac (piense cosas como PETSc o CLAWPACK). Administradores de paquetes como MacPorts y Finkpuede ayudar a la situación si solo quieres usar OS X. También tendrás que compilar muchos paquetes desde la fuente. Si desea ejecutar su código en otro lugar, deberá tener cuidado con los problemas de compatibilidad. Dado que Linux disfruta de un uso generalizado en la informática científica, desde el punto de vista de la portabilidad es más fácil desarrollar código en Linux.

He escuchado anecdóticamente de amigos muy obstinados que establecer un entorno de desarrollo en una Mac es un gran dolor de cabeza, otros han dicho que no es tan malo. Su experiencia puede ser diferente.

Geoff Oxberry
fuente
1
Voté a favor: ¿Cómo es más complicado instalar algo para computación científica en Mac que en Linux? Claro, si comienzas desde Linux CAE, la mayor parte está integrada, pero para la mayoría de las otras distribuciones, debes descargar paquetes y / o compilar desde las fuentes. De todos modos, es posible que aún desee ajustar las bibliotecas para sus necesidades específicas y / o rendimiento máximo. Dicho esto, Mac OS tendrá dificultades para ser adoptado a gran escala en las universidades, siempre y cuando no otorguen una licencia al sistema operativo independiente del hardware (no es así). No estoy seguro de cómo puede justificar el costo adicional ...
FrenchKheldar
44
FrenchKheldar: Hay muchas cosas auxiliares que deben instalarse en una Mac (escribo esto en una Macbook Pro) al compilar software, muchas bibliotecas y herramientas, que son solo una instalación apt-get o yum en un linux box, por no hablar de elementos más grandes como compiladores más nuevos, una nueva python, etc. Es por eso que hay puertos y homebrew, pero estas cosas aún no siempre se instalan de manera limpia, y no todos los paquetes están en ambos. Dependiendo de lo que desee en su entorno de desarrollo, puede ser, y de hecho es, más difícil en una Mac. OTOH, obtienes Xcode ...
2
Es considerablemente más fácil instalar algo desde un administrador de paquetes que compilar el mismo código desde cero. En el mejor de los casos, es simple ./configure && make && make install, pero en el peor, puede ser un laberinto de ordenar guiones, banderas y ubicaciones de la biblioteca. La instalación de PETSc 3.2 desde un paquete Debian me llevó 5 segundos (incluso lo hice a instancias de algunos de los desarrolladores); instalarlo desde la fuente en Linux tomó todo el día con las diversas opciones. El punto era que los paquetes e instaladores no necesariamente existen para Mac cuando lo hacen para Linux (y hacen que Linux sea más fácil de usar).
Geoff Oxberry
También está la gran molestia de "solo estable" colgando en el aire con Macs, al menos he tenido que luchar con él varias veces. Un buen ejemplo que he tenido personalmente es un error de GCC que hizo que una aplicación simplemente se bloqueara y se quemara si tenía pragmas de OpenMP dentro del código que se llama desde un subproceso. De hecho, terminé usando y apoyando ICC ya que estaba disponible, porque era más fácil que cambiar el GCC en esa Mac. Hay un montón de otras bibliotecas que he visto en Mac que tienen versiones prehistóricas (bueno, al menos un par de años).
TC1
13

@Geoff da una buena respuesta, pero creo que vale la pena proporcionar una perspectiva alternativa.

Hago todo en Mac, en OS X, no en una VM Linux, incluido un gran desarrollo de código científico. Principalmente trabajo en Fortran y Python. Para mí, la conveniencia de

  • ser capaz de hacer todo mi trabajo en un sistema operativo y
  • casi nunca lidia con fallas de hardware o problemas de controladores

vale la pena el costo de los dolores de cabeza específicos de Mac.

Los tres dolores de cabeza principales son:

  1. Falta de un administrador de paquetes estándar del sistema operativo. Érase una vez que usé Fink, pero finalmente me causó más dolores de cabeza y ahora está obsoleto. He escuchado cosas buenas sobre Macports y Homebrew, pero mi experiencia con Fink me convenció de simplemente "rodar la mía".

  2. Parte del software incorporado está muy desactualizado. Particularmente, Python y gcc. Esto significa que necesita instalar sus propias versiones actualizadas, lo que puede ser una molestia.

  3. ¡Apple no incluye un compilador Fortran!

Me parece que Apple está prestando cada vez menos atención a sus usuarios avanzados basados ​​en Unix. Mientras tanto, Linux sigue mejorando. Eventualmente, probablemente seré empujado nuevamente a Linux. Pero mantendré mi Macbook hasta que alguien más aprenda a fabricar baterías decentes.

David Ketcheson
fuente
1
MacPorts proporciona mi entorno informático científico en mi Mac (compiladores, bibliotecas) al 99%. No es perfecto, pero supera la instalación manual fácilmente. Por supuesto, depende mucho de cuánto necesite instalar para realizar su trabajo.
khinsen
9

Yo diría que la Mac es un mejor entorno para los científicos computacionales que para la ciencia computacional . No quisiera usar Mac en un entorno informático básico; el hardware es, relativamente hablando, demasiado caro para eso. Puede ser una molestia lograr que el entorno del software coincida con las condiciones necesarias para un paquete en particular, pero generalmente una vez que lo ha descubierto la primera vez, es mucho más fácil de mantener que una instalación comparable de Windows. (Y, dependiendo de los administradores de paquetes, puede ser tan fácil como Linux. ¡MacPorts funciona bastante bien como administrador de OS X!)

Sin embargo, como plataforma de trabajo para un científico informático ocupado, creo que la Mac ofrece la ventaja adicional de poder trabajar y mantenerse en un solo entorno informático, en lugar de tener que mantener una caja de Linux para el trabajo "serio", y aún necesito tener otra máquina cuando mis colegas que trabajan en otras disciplinas me envían (por ejemplo) archivos de Office que necesitan marcado, o tengo que completar un formulario de la Universidad que solo está disponible como una plantilla RTF que no se formateará correctamente con LibreOffice y será Un dolor en el cuello para recrear en LaTeX. (En trabajos anteriores, los propietarios de Linux tenían que tener además una máquina que no era Linux, porque para acceder al entorno corporativo más o menos lo exigían. Los propietarios de Mac realmente no necesitaban una segunda máquina).

Además, hay una serie de programas solo para Mac (como TextMate , Scrivener , Papers , Things , OmniFocus o BibDesk ) que hacen de la Mac un entorno mucho más agradable para trabajar que en la PC o Linux. Me encuentro pasando más tiempo concentrándome en hacer las cosas, que en lo que necesito hacer para que el entorno de software haga lo que quiero (¡o necesito!) Que haga.

aeismail
fuente
5

El uso de OS X en HPC y la informática científica es bajo y tiene que ver mucho con los pros y los contras de OS X wrt la alternativa (Linux)

OS X Pros:

  • IU pulida; todavía * nix
  • Aplicaciones de escritorio / diseño como MS Office, programas de Adobe bien compatibles
  • Multimedia muy bien soportada
  • A algunas personas les gusta el ecosistema de Apple (iPhone, iTunes, etc.)

Contras OS X:

  • Se ejecuta en hardware costoso y no a todos les gustan las Macbooks, especialmente las personas acostumbradas a Thinkpads (teclado + trackpoint)
  • No se puede actualizar el hardware (por ejemplo, si desea probar la última tarjeta NVIDIA con su aplicación CUDA) en el escritorio / clúster
  • GUI hinchada que no se puede personalizar (en Linux puedes usar un administrador de ventanas minimalista)
  • La gestión de paquetes en Macports / Fink es inferior en comparación con las distribuciones de Linux (Debian). La mayoría de los paquetes ni siquiera se mantienen activamente o quedan huérfanos
  • Algunas herramientas / programas útiles tradicionalmente no se ejecutaban o aún no se ejecutan en OS X. Por ejemplo ...

    1. Sun Studio todavía no funciona
    2. Valgrind solo comenzó a funcionar recientemente y no todas las funciones son compatibles
    3. Los compiladores de Intel también han estado disponibles en los últimos años.
    4. Apple ni siquiera empaqueta un compilador Fortran y debe confiar en terceros (en su mayoría individuos) para crear binarios que funcionen solo en ciertas versiones de OS X (que el individuo tiene). El soporte es raro o inexistente en tales casos
    5. Las aplicaciones científicas comerciales (ABAQUS, ANSYS, FLUENT y muchas más en industrias como el petróleo / finanzas / engg, etc.) no se ejecutan (de forma nativa) en OS X

Linux (Debian) Pros:

  • La gestión de paquetes de primera clase, es decir, la instalación de compiladores, la mayoría de las bibliotecas numéricas / científicas, etc.
  • A diferencia de Fink / Macports, los paquetes son mucho mejores (en Debian tiene la opción de usar versiones de prueba / estables)
  • La mayoría de los clústeres ejecutan alguna versión de Debian / Red Hat, por lo que hay menos problemas para portar código (s)

Contras de Linux (Debian):

  • Sin interfaz de usuario estándar
  • Linux en computadoras de escritorio / portátiles puede requerir algunos ajustes para que todo (suspensión / reanudación, aceleración de video 3D, sonido, etc.) funcione, pero esto ha mejorado mucho en los últimos años

Exponiendo algunas excepciones, la mayoría de los usuarios y administradores de clúster / sistema encuentran OS X más fácil para la productividad del escritorio y NO para la computación científica (compilar, usar, desarrollar cosas).

OTOH, la mayoría de los usuarios de Linux encuentran que este último es más fácil que el anterior y esto se refleja en todo el ecosistema de computación científica / HPC.

stali
fuente
Agregue a su lista de herramientas útiles que no funcionan en OS X: gprof.
David Ketcheson el
La referencia de ThinkPad me hizo reír. Por el momento somos un hogar dividido de Apple / Lenovo, y a mi pero a ella no le gusta el trackpad :)
Fomite
@DavidKetcheson, eso es porque OS X tiene Instrumentos (anteriormente Shark).
Aron Ahmadia
3

He estado usando nada más que Mac en el escritorio (y la computadora portátil) durante muchos años, haciendo computación científica y desarrollo de software científico, entre otras cosas. Como otros han señalado, la calidad del hardware, la alta calidad de gran parte del software específico de Mac y la capacidad de manejar Word y Excel cuando sea necesario, hacen de la Mac una plataforma muy agradable para el uso diario.

También he estado ejecutando un clúster de cómputo basado en Mac como experimento durante un tiempo. Es un experimento que no tengo la tentación de volver a hacer. En comparación con un clúster de Linux, no veo ninguna ventaja significativa, aparte de la facilidad de instalación del software si tiene Macs en el escritorio de todos modos (solo instale las mismas cosas). Las desventajas se destacan claramente, sobre todo la falta de soporte GUI multiusuario adecuado. En una Mac, una máquina equivale a una pantalla y, como máximo, un usuario conectado. Eso hace que las herramientas basadas en GUI sean difíciles de usar. Comparado con eso, incluso X-windows simple bajo Linux es un placer de usar, y luego está VNC y NoMachine NX para hacerlo aún mejor.

Sí, sé que Mac es compatible con X Windows, pero la mayoría de los programas GUI para Mac usan la interfaz nativa.

Khinsen
fuente
Gracias por la información sobre cómo ejecutar un clúster basado en Mac. ¿Qué tipo de herramientas GUI le faltan?
Fomite
Puede obtener la mayoría de las herramientas de GUI para la ciencia instalando software basado en X-window a través de MacPorts, pero eso es mucho trabajo. En el otro extremo, no tiene oportunidad de hacer que un software propietario (por ejemplo, Mathematica) funcione a distancia, a menos que acepte la limitación fundamental de la GUI de Mac de un usuario = una máquina = una pantalla. Cuanto más desee un software específico para Mac, más se verá afectado por el problema de la GUI.
khinsen