Estado do Mac OS em Computação Científica e HPC

17

De volta ao início do OS X, parecia haver muita confusão, pelo menos no mundo Mac (eu não estava nem perto da computação científica na época) sobre o Mac OS como uma plataforma para computação científica e aplicativos HPC.

O XGrid saiu da caixa, a Virginia Tech tinha seu sofisticado cluster de computação baseado em Mac, Stanford estava fazendo coisas legais, etc. etc.

Mais recentemente, porém, as coisas ficaram quietas. O site Macresearch.org é essencialmente uma cidade fantasma cheia de zumbis com spam, o XServe está morto e uma quantidade enorme de literatura de marketing e coisas do gênero parecem ser da área de processadores anteriores à Intel. Mas o XGrid ainda está lá, todo o sistema operacional * nix está lá, e a plataforma parece ter um suporte decente entre Python, R e algumas das linguagens mais recentes.

Então, de pessoas que sabem mais sobre isso do que eu ... como pagam o OS X? Eles são computadores viáveis ​​do lado do cliente para computação científica? Está usando-os como um servidor / cluster / etc. através do XGrid ou algo parecido simplesmente com um aplicativo de novidade?

Fomite
fonte
O votante que não fez o favor pode comentar por que votou menos?
Geoff Oxberry
Meh. Isso não é horrível na boa venda subjetiva, ruim e subjetiva , mas ainda não faz nada por mim. No que me diz respeito, a resposta é: é unix pronto para uso, mas custa muito em locais onde a interface do usuário não é crítica.
dmckee
@dmckee: Sim, eu pude ver isso. Eu acho que muitas pessoas vão concordar com você. Para mim, o problema não era tão claro porque me cansei de falhas de hardware e, mesmo assim, continuo executando o Linux em uma máquina virtual. Encontrei pessoas que gostam de seu fluxo de trabalho principalmente no OS X, então acho que é uma pergunta razoável para uma comunidade de nicho. Também acho que a Ciência da Computação poderia usar mais algumas perguntas, e respostas de várias perspectivas seriam úteis para dar às pessoas uma idéia de quais ferramentas usamos na computação científica.
Geoff Oxberry
@dmckee E eu consideraria uma resposta válida - que algumas das coisas que a Apple criou não geraram uma razão realmente vibrante e convincente para usar seu sistema operacional.
fomite
A questão também foi uma tentativa de explorar algumas questões do tipo "fazendo computação científica" que podem distinguir questões de hardware do ServerFault, usando uma em que eu estou interessado e realmente não sei a resposta.
fomite

Respostas:

12

Não posso comentar sobre o lado do servidor.

No lado do cliente, na única reunião de ciência da computação em que vou todos os anos, a proporção de usuários de Mac parece ter aumentado. Eu mudei para um Mac porque estava cansado de lidar com o meu laptop Dell fornecido pela escola, que falhava rapidamente. Eu mudei para Macs para o hardware, principalmente, já que o Consumer Reports os classificou altamente em termos de durabilidade. Não acho que os Macs sejam bons para a computação científica, a menos que você execute o Linux neles. O suporte do Linux ao hardware tende a ficar lento; geralmente, é a placa sem fio que não é suportada (sempre que a altera em um novo modelo). Se você estiver disposto a aceitar a penalidade de recurso que vem com a execução de uma máquina virtual, é uma opção atraente (e que eu pessoalmente uso).

Os Macs exigem que você instale muitas bibliotecas e pacotes de software antes de poder fazer computação científica séria. Qualquer coisa que possua um instalador de Mac é fácil de gerenciar; portanto, se você faz a maior parte do seu trabalho de desenvolvimento com Matlab, Mathematica, Maple, Python, etc., é fácil instalar e executar esse software no OS X nativamente. É mais difícil rastrear o software numérico de núcleo duro que possui um instalador de Mac (pense em coisas como PETSc ou CLAWPACK). Gerenciadores de pacotes como MacPorts e Finkpode ajudar a situação se você quiser usar apenas o OS X. Você também terá que compilar muitos pacotes da fonte. Se você deseja executar o seu código em qualquer outro lugar, tenha cuidado com os problemas de compatibilidade. Como o Linux desfruta de amplo uso na computação científica, é mais fácil do ponto de vista da portabilidade desenvolver código no Linux.

Ouvi histórias de amigos altamente opinativos de que criar um ambiente de desenvolvimento em um Mac é uma grande dor de cabeça, outros disseram que não é tão ruim assim. Sua milhagem pode variar.

Geoff Oxberry
fonte
11
Eu votei para baixo: Como a instalação de qualquer coisa para computação científica no Mac é mais complicada do que no Linux? Certamente, se você inicia no Linux CAE, a maior parte está embutida, mas para a maioria das outras distribuições, é necessário fazer o download de pacotes e / ou compilar a partir de fontes. Você ainda pode querer ajustar as bibliotecas para suas necessidades específicas e / ou desempenho máximo. Dito isto, o Mac OS dificilmente será adotado em larga escala nas universidades, desde que não licencie o SO independentemente do hardware (não é o que deveria). Não sei como você pode justificar o custo extra ...
FrenchKheldar
4
FrenchKheldar: Há muitas coisas auxiliares que precisam ser instaladas em um Mac (eu escrevo isso em um Macbook Pro) ao criar software - muitas bibliotecas e ferramentas - que são apenas uma instalação do apt-get ou yum em um computador. linux box, para não falar de itens maiores, como compiladores mais recentes, um python mais novo, etc. É por isso que existem ports e homebrew, mas essas coisas nem sempre são instaladas corretamente, e nem todos os pacotes estão nos dois. Dependendo do que você deseja no seu ambiente de desenvolvimento, ele pode ser, e de fato é, mais difícil em um Mac. OTOH, você obtém o Xcode ...
2
É consideravelmente mais fácil instalar algo de um gerenciador de pacotes do que compilar o mesmo código do zero. Na melhor das hipóteses, é simples ./configure && make && make install, mas na pior das hipóteses, pode ser um labirinto de classificar scripts, sinalizadores e locais da biblioteca. A instalação do PETSc 3.2 a partir de um pacote Debian levou cinco segundos (eu fiz isso a pedido de alguns dos desenvolvedores); instalá-lo da fonte no Linux levou o dia todo com as várias opções. O ponto era que pacotes e instaladores não existem necessariamente para o Mac quando existem para Linux (e facilitam o uso do Linux).
amigos estão dizendo sobre geoff oxberry
Há também o enorme aborrecimento de "apenas estável" pairando no ar com Macs, pelo menos eu tive que lutar com ele várias vezes. Um bom exemplo que tive pessoalmente é um bug do GCC que fez um aplicativo simplesmente travar e queimar se você tivesse pragmas do OpenMP dentro de código que é chamado de um pthread. Na verdade, acabei usando e dando suporte ao ICC, uma vez que estava disponível, porque era mais fácil do que alterar o GCC nesse Mac. Há muitas outras bibliotecas que eu já vi no Mac que possuem versões pré-históricas (bem, pelo menos alguns anos de idade).
TC1
13

@ Geoff dá uma boa resposta, mas acho que vale a pena fornecer uma perspectiva alternativa.

Eu faço tudo em Macs - no OS X, não em uma VM Linux - incluindo muito desenvolvimento de código científico. Eu trabalho principalmente em Fortran e Python. Para mim, a conveniência de

  • ser capaz de fazer todo o meu trabalho em um sistema operacional e
  • quase nunca lida com falhas de hardware ou problemas de driver

vale o custo de dores de cabeça específicas para Mac.

As três principais dores de cabeça são:

  1. Falta de um gerenciador de pacotes padrão do sistema operacional. Era uma vez eu usei o Fink, mas acabou levando a mais dores de cabeça e agora está obsoleto. Ouvi coisas boas sobre Macports e Homebrew, mas minha experiência com o Fink me convenceu a "rolar sozinho".

  2. Alguns dos softwares embutidos estão muito desatualizados. Particularmente, Python e gcc. Isso significa que você precisa instalar suas próprias versões atualizadas, o que pode ser um aborrecimento.

  3. A Apple não inclui um compilador Fortran!

Parece-me que a Apple está prestando cada vez menos atenção aos seus usuários avançados baseados em Unix. Enquanto isso, o Linux continua melhorando. Eventualmente, provavelmente voltarei ao Linux. Mas vou manter o meu Macbook até que alguém aprenda a fazer baterias decentes.

David Ketcheson
fonte
11
Meu ambiente de computação científica no meu Mac (compiladores, bibliotecas) é fornecido a 99% pelo MacPorts. Não é perfeito, mas supera a instalação manual com facilidade. Obviamente, depende muito de quanto você precisa instalar para realizar seu trabalho.
khinsen
9

Eu argumentaria que o Mac é um ambiente melhor para os cientistas da computação do que para a ciência da computação . Eu não gostaria de usar Macs em um ambiente de computação de commodities; o hardware é, relativamente falando, muito caro para isso. Pode ser difícil fazer o ambiente de software corresponder às condições necessárias para um pacote específico, mas geralmente depois de descobrir pela primeira vez, é muito mais fácil manter o sistema do que uma instalação comparável do Windows. (E, dependendo dos gerenciadores de pacotes, pode ser tão fácil quanto o Linux. MacPorts se sai muito bem como gerente do OS X!)

No entanto, como uma plataforma de trabalho para um cientista computacional ocupado, acredito que o Mac oferece o bônus adicional de poder trabalhar e manter em um único ambiente de computação, em vez de ter que manter uma caixa Linux para trabalhos "sérios", e ainda assim precisar de outra máquina quando colegas que trabalham em outras disciplinas me enviarem (por exemplo) arquivos do Office que precisam de marcação, ou eu tenho que preencher um formulário da Universidade que está disponível apenas como modelo RTF que não será formatado corretamente usando o LibreOffice e será uma dor no pescoço para recriar em LaTeX. (Em trabalhos anteriores, os proprietários de Linux praticamente tinham que ter uma máquina não-Linux além disso, porque para acessar o ambiente corporativo mais ou menos exigia. Os proprietários de Mac não precisavam realmente de uma segunda máquina.)

Além disso, existem vários programas somente para Mac (como TextMate , Scrivener , Papers , Things , OmniFocus ou BibDesk ) que tornam o Mac um ambiente muito mais agradável para se trabalhar do que no PC ou Linux. Percebo-me gastando mais tempo focando em fazer as coisas do que no que preciso fazer para que o ambiente de software faça o que quero (ou preciso!).

aeismail
fonte
5

O uso do OS X no HPC e na computação científica é baixo e tem muito a ver com os prós e contras do OS X, em vez da alternativa (Linux)

Profissionais do OS X:

  • UI polida; ainda * nix
  • Aplicativos de área de trabalho / design, como MS Office, programas da Adobe bem suportados
  • Multimídia muito bem suportado
  • Algumas pessoas gostam do ecossistema da Apple (iPhone, iTunes etc.)

Contras do OS X:

  • Funciona com hardware caro e nem todo mundo gosta de Macbooks, especialmente pessoas acostumadas a Thinkpads (teclado + trackpoint)
  • Não é possível atualizar o hardware (por exemplo, se você quiser experimentar a mais recente placa NVIDIA com o aplicativo CUDA) no desktop / cluster
  • GUI inchada que não pode ser personalizada (no Linux, você pode usar um gerenciador de janelas minimalista)
  • O mgmt de pacote no Macports / Fink é inferior ao das distribuições Linux (Debian). A maioria dos pacotes nem é mantida ativamente ou fica órfã
  • Algumas ferramentas / programas úteis tradicionalmente não eram executados ou ainda não são executados no OS X. Por exemplo ...

    1. O Sun Studio ainda não funciona
    2. O Valgrind começou a funcionar recentemente e nem todos os recursos são suportados
    3. Os compiladores Intel também estão disponíveis nos últimos anos
    4. A Apple nem empacota um compilador Fortran e você precisa confiar em terceiros (principalmente indivíduos) para criar binários que funcionam apenas em determinadas versões do OS X (que o indivíduo possui). O suporte é raro ou inexistente nesses casos
    5. Aplicativos científicos comerciais (ABAQUS, ANSYS, FLUENT e muitos mais em setores como petróleo / finanças / engg etc.) não são executados (nativamente) no OS X

Prós Linux (Debian):

  • Gerenciamento de pacotes de primeira classe, isto é, instalação de compiladores, a maioria das bibliotecas numéricas / científicas etc.
  • Diferentemente do Fink / Macports, os pacotes são muito melhores suportados (no Debian você tem a opção de usar versões avançadas / testing / stable)
  • A maioria dos clusters executa alguma versão do Debian / Red Hat, portanto, menos problemas em portar códigos

Contras do Linux (Debian):

  • Sem interface do usuário padrão
  • O Linux em desktops / laptops pode exigir alguns ajustes para que tudo (suspensão / retomada, aceleração de vídeo em 3D, som etc.) funcione, mas isso melhorou bastante nos últimos anos

Com exceção de algumas exceções, a maioria dos usuários e administradores de cluster / sistema considera o OS X mais fácil para a produtividade da área de trabalho e NÃO para a computação científica (compilando, usando, desenvolvendo coisas).

A maioria dos usuários de Linux acha o último mais fácil que o anterior e isso se reflete em todo o ecossistema de computação científica / HPC.

stali
fonte
Adicione à sua lista de ferramentas úteis que não funcionam no OS X: gprof.
David Ketcheson
A referência do ThinkPad me fez rir. No momento estamos um split Apple / Lenovo casa, e meu, mas ela faz não gostam do trackpad :)
fomite
@ David David Ketcheson, isso ocorre porque o OS X possui instrumentos (anteriormente Shark).
Aron Ahmadia
3

Eu uso apenas Macs na área de trabalho (e laptop) há muitos anos, desenvolvendo computação científica e desenvolvimento de software científico, entre outras coisas. Como outros já apontaram, a qualidade do hardware, a alta qualidade de muitos softwares específicos para Mac e a capacidade de lidar com Word e Excel quando necessário, tornam o Mac uma plataforma muito agradável para uso diário.

Também estou executando um cluster de computação baseado em Mac como um experimento há algum tempo. É um experimento que não sou tentado a fazer novamente. Comparado a um cluster Linux, não vejo nenhuma vantagem significativa, além da facilidade de instalação do software, se você tiver Macs na área de trabalho de qualquer maneira (basta instalar o mesmo material). As desvantagens destacam-se claramente, principalmente a falta de suporte adequado à GUI multiusuário. Em um Mac, uma máquina é igual a uma tela e, no máximo, um usuário conectado. Isso faz com que as ferramentas baseadas em GUI sejam difíceis de usar. Comparado a isso, mesmo as simples X-windows no Linux são uma alegria de usar, e há o VNC e o NoMachine NX para fazer ainda melhor.

Sim, eu sei que o Mac suporta Windows X, mas a maioria dos programas GUI para Mac usa a interface nativa.

Khinsen
fonte
Obrigado pela compreensão da execução de um cluster baseado em Mac. Que tipo de ferramentas GUI você está faltando?
fomite
Você pode obter a maioria das ferramentas da GUI para a ciência instalando o software baseado em janela X através do MacPorts, mas isso é muito trabalhoso. No outro extremo, você não tem chance de fazer com que o software proprietário (por exemplo, Mathematica) funcione à distância, a menos que você aceite a limitação fundamental da GUI do Mac de um usuário = uma máquina = uma tela. Quanto mais você deseja um software específico para Mac, mais você sofre com o problema da GUI.
khinsen