Para cálculos matemáticos complicados, threads extras ou acesso a disco de alta velocidade são mais importantes?


8

No próximo semestre, pretendo começar a fazer pesquisas em combinatória. Eu usei e me apaixonei por computadores Mac e Wolfram Mathematica 8, e pretendo obtê-los para uso neste projeto e na faculdade. Eu serei uma dupla especialização em Física e Matemática. Por ter um orçamento limitado, fiquei pensando qual seria a prioridade dos meus aplicativos: ter um processador de quatro núcleos em vez de um processador de dois núcleos ou um SSD em vez de um disco rígido?


11
Tomei a liberdade de editar o título da pergunta para talvez um pouco mais ao ponto e potencialmente influencie qualquer voto de idiota para fechar com base em não fazer uma pergunta substantiva. Pessoalmente, acho que essa é uma boa pergunta para esta aplicação específica.
Shinrai 13/10/11

3
Na verdade, eu diria que, em primeiro lugar, opte pelo máximo de RAM possível.
Liori 13/10/11

11
Concordo em adicionar mais RAM. Eu tenho muito pouco conhecimento de combinatória, mas eles podem ser adequados para cálculos baseados em GPU. se puder ser encadeado em massa, provavelmente funcionará muito mais rápido em uma GPU usando CUDA ou equivalente (muitas magnitudes mais rápidas no cracking do md5 do que as CPUs de topo de gama).
Silverfire

Estou curioso para saber por que isso está recebendo votos próximos - o que vocês acham questionável sobre a questão?
Shinrai 14/10

Respostas:


17

Para os aplicativos que você fará, 4 núcleos seriam preferidos a um SSD.

O Mathematica suporta especificamente processadores de núcleo múltiplo e dimensiona extremamente bem. Veja aqui:

http://www.wolfram.com/technology/guide/MulticoreSupport/

Você não esperaria tanta diferença de uma unidade SSD em aplicativos de matemática e física, que não estão processando gigabytes de dados do disco.


+1 - Esse é um dos poucos casos em que um número maior de núcleos / relógios trará um benefício maior que um SSD. Também é muito longe, MUITO mais fácil atualizar posteriormente o armazenamento na maioria dos Macs que o CPU.
afrazier

Normalmente não gosto de perguntas como essa, mas essa é bem factual; a velocidade desses tipos de cálculos (a menos que sejam de complexidade trivial) obterá um grande impulso com os encadeamentos de processamento adicionais.
Shinrai 13/10/11

11
Fui confrontado com uma decisão semelhante anos atrás. Obtenha o i486DX33 com disco rígido ou um i486DX50 com apenas unidades de disquete. Para cálculos matemáticos puros (como aqueles com que me preocupei), o DX50 ganhou as mãos, apesar do acesso ao disco muito mais lento!
Brian Knoblauch

Discordo parcialmente dos grandes arquivos necessários para obter uma vantagem de um disco rápido. Nos últimos quinze anos, trabalhei com uma série de mecanismos de análise de física nuclear e de partículas e com Monte Carlos; e enquanto essas pilhas de dados moderadamente grandes peneiravam, o que os IO vinculados tinham em comum estava usando muitos arquivos separados ... como dez arquivos de configuração (inclui mecanismo e ou várias camadas de padrões de failover) e disco médio banco de dados de geometria com base, três arquivos de log, um sistema de ponto de verificação, além dos grandes arquivos de entrada e saída.
dmckee --- gatinho ex-moderador

11
+1 - Mas também recomendo garantir que o sistema também tenha RAM suficiente. Certifique-se de ter 8 GB, e não 4 em seu sistema (realmente é suficiente para o Lion) e salte para as CPUs mais rápidas, a menos que você esteja processando GB e GB de dados. (Pesquisas de perfuração, simulações de bombas nucleares, esse tipo de coisa) Se você precisar de armazenamento mais / mais rápido posteriormente, sempre poderá usar uma caixa externa conectada ao Thunderbolt. Não é possível alterar a CPU, a menos que você esteja usando um Mac Pro.
SplinterReality

3

No escopo de seus novos requisitos de computador, recomendo que você obtenha as recomendações de seus professores sobre como lidar com a explosão combinatória . Você sem dúvida terá que resolver alguns problemas com esse efeito colateral. Se seus requisitos de armazenamento intermediário excederem a memória principal disponível, seu sistema iniciará a troca de memória de disco ( thrashing ) e até problemas simples levarão "para sempre" para terminar.

Quando tive que resolver esses problemas com o Mathematica nos últimos anos, meu lema era: "Se você se debater, está morto".


2

Estou oferecendo isso como uma resposta separada, porque ninguém mencionou o elefante no sofá ainda:

A CPU é impraticável mudar posteriormente na maioria dos Macs (qualquer coisa que não seja um Mac Pro), mas o armazenamento externo rápido pode ser adicionado posteriormente se você tiver conjuntos de dados realmente grandes, o que seria impraticável para armazenar nas unidades internas de qualquer maneira.

Para qualquer coisa que não exija alto GB para TB de dados, as CPUs serão mais benéficas e, se você precisar de alto GB / TB de dados, o SSD também não cortará e você precisará de uma caixa externa.

Minha recomendação: 8 GB de RAM e as CPUs mais rápidas que você pode pagar. Se você precisar de discos muito rápidos posteriormente para processar a TB de dados, compre uma caixa externa com uma interface Thunderbolt. (Os maiores SSDs não aguentam tanto assim)


1

Se suas tarefas puderem ser paralelizadas (e para matemática / física geralmente podem ser), use múltiplos núcleos e a quantidade de RAM que você puder pagar / precisará. Em geral, a situação será: você precisa de muito espaço em disco para armazenar dados antigos (processados ​​por vários métodos) e as partes de E / S do cálculo serão desprezíveis em comparação com as partes da CPU. Eu consideraria obter uma boa GPU que você poderia programar para necessidades computacionais sérias; mas isso provavelmente é um exagero para sua pergunta.

Carregar 1 GB de dados do disco em um buffer (que pode ir para a memória) leva aproximadamente 10 segundos com um disco rígido de 7200 rpm; e esse é um custo único para a maioria dos cálculos. Raramente seus cálculos matemáticos complicados levam apenas alguns segundos (e se o fizerem - o gargalo é você interpretar os resultados e dar novas tarefas para executar - e não a velocidade do IO). Não é incomum haver um gargalo computacional no qual os dados são carregados na memória e levaria um núcleo 2 dias para concluir uma tarefa; mas quatro núcleos podem fazer isso em meio dia. Agora, não ter RAM suficiente e ter que ler / gravar RAM no disco será uma grande lentidão (mesmo usando uma unidade SSD como swap).

Como um guia aproximado; uma leitura de acesso aleatório da RAM é da ordem de 10 ns; de um SSD dez mil vezes mais lento que isso (100 micro-s); e um disco rígido é aproximadamente 100 vezes mais lento que isso (10 ms). Então você realmente não quer fazer leituras de acesso aleatório a partir do SSD ou do disco rígido. Também para leituras consecutivas do disco (por exemplo, você está lendo um arquivo com o conjunto de dados inteiro na memória), os discos rígidos não terão um desempenho tão ruim.


-1

Se você está vendo os MacBook Pros, eu colocaria a preferência do tamanho da tela acima de tudo. Pelo que posso ver, isso também define efetivamente o número de núcleos na máquina. Em seguida, maximize a RAM (talvez de terceiros). Em seguida, procure um SSD. Eu deixaria a diferença entre o núcleo de 2.0GHz e 2.2GHz para o modelo de 15 "até o final. É uma diferença relativamente pequena no desempenho pela diferença de preço.


Eu diria que, para um trabalho sério como esse, o OP está olhando para um desktop, não para um laptop. Você começa muito mais poder de processamento para o seu dinheiro (sim, até mesmo da Apple McOverpriced ...)
Shinrai

@Shinrai É difícil dizer sem mais informações sobre o que o OP está considerando, qual é a faixa de preço, se o OP já possui um monitor, etc ... Os iMacs são máquinas muito agradáveis ​​pelo preço, incluindo telas agradáveis ​​e tudo tem processadores quad core. Mas este computador também é para uso na faculdade, o que acho que torna os laptops atraentes para levá-los à biblioteca, se reunir com grupos para trabalhar em projetos, etc. ) núcleos para tipos específicos de cálculos (com programação extra) no Mathematica.
Brett Champion
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.