Quem usa R com pacote multicore, SNOW ou CUDA para computação intensa em recursos?

16

Quem de vocês neste fórum usa "> R com multicore , pacotes de neve ou CUDA , portanto, para cálculos avançados que precisam de mais energia que a CPU de uma estação de trabalho? Em qual hardware você calcula esses scripts? Em casa / trabalho ou você tem acesso ao data center em algum lugar?

O plano de fundo dessas perguntas é o seguinte: Atualmente, estou escrevendo meu M.Sc. tese sobre R e computação de alto desempenho e preciso de um forte conhecimento sobre quem realmente usa R. Li que R tinha 1 milhão de usuários em 2008, mas essa é mais ou menos a única estatística de usuário que pude encontrar sobre esse tópico - então, espero que você respostas!

Atenciosamente Heinrich

Heinrich
fonte
Uma possível pergunta relacionada, stats.stackexchange.com/questions/825/… .
chl

Respostas:

6

Eu sou um biólogo que modela os efeitos da variação climática inter-anual na dinâmica populacional de várias espécies migratórias. Como meus conjuntos de dados são muito grandes (dados espacialmente intensos), eu executo meu código R usando multicorenos servidores Amazon EC2. Se minha tarefa exigir muito recursos, escolherei uma instância High Memory Quadruple Extra Large que vem com 26 unidades de CPU, 8 núcleos e 68G de RAM. Nesse caso, eu normalmente executo 4-6 scripts simultaneamente, cada um trabalhando com um conjunto de dados bastante grande. Para tarefas menores, escolho servidores com 4-6 núcleos e cerca de 20 GB de RAM.

Eu inicio essas instâncias (geralmente identificamos instâncias porque são mais baratas, mas podem terminar a qualquer momento que a taxa atual exceder o que optei por pagar), executo o script por várias horas e, em seguida, encerro a instância depois que meu script termina. Quanto à imagem da máquina (Amazon Machine Image), peguei alguém na instalação do Ubuntu, atualizei o R, instalei meus pacotes e salvei como minha AMI privada no meu espaço de armazenamento S3.

Minha máquina pessoal é um macbook pro dualcore e tem dificuldade em fazer chamadas multicore. Sinta-se livre para enviar e-mail se você tiver outras perguntas.

Maiasaura
fonte
Você pode dizer qual é o tamanho do seu conjunto de dados.
suncoolsu
Certo. Os conjuntos de dados com os quais estou trabalhando atualmente são de ~ 14 shows #
Maiasaura
4

Desde que você pergunta, estou usando o pacote foreach com o back-end multicore . Eu o uso para dividir uma carga de trabalho embaraçosamente paralela em vários núcleos em uma única caixa Nehalem com muita RAM. Isso funciona muito bem para a tarefa em questão.

NPE
fonte
Obrigado pela sua resposta! Você calcula o seu trabalho / pesquisa acadêmica ou para projetos próprios em um PC?
Heinrich
Isso é feito em um ambiente comercial. Para esta tarefa, estou usando uma única caixa Intel com 32 GB de RAM e discos RAID (a principal dificuldade são muitos dados, enquanto o processamento em si não é muito exigente em termos computacionais).
NPE
Tudo bem @aix, com que frequência você realiza esses cálculos. Sua caixa está funcionando o dia todo ou mais ociosa?
Heinrich
Pergunta rápida para @NPE: em que sistema você armazena os dados? você usa um back-end de banco de dados?
Nassimhddd 26/11/12
3

Eu trabalho na academia e estou usando multicore para alguns benchmarks pesados ​​de algoritmos de aprendizado de máquina, principalmente em nosso Sun Constellation baseado em Opteron e alguns clusters menores; esses também são problemas paralelos embaraçosos, de modo que o principal papel do multicore é espalhar a computação pelo nó sem multiplicar o uso da memória.

user88
fonte
Nós aqui em Hamburgo sempre temos um problema de que o tempo de espera para os data centers acadêmicos é realmente longo. É o mesmo para você?
Heinrich
@Heinrich Eu trabalho para um tipo de data center acadêmico, para não ter esses problemas (-; Sério, em Varsóvia, o tempo científico da CPU é maior que a demanda, por isso acredito que é muito fácil obter uma concessão. Eu acho que você deveria tentar D-Grade ou EGEE, a minha experiência é que as redes em geral são muito subutilizado.
Oh. Isso é interessante. Como você sabe em que tipo de empresa o R é usado nessas extensões?
Heinrich
2

Uso neve e queda de neve para paralelização de curso em clusters HPC e CUDA para processamento paralelo de dados. Estou em Epidemiologia fazendo modelagem de transmissão de doenças. Então eu uso os dois.

Andrew Redd
fonte
Obrigado pela sua informação. O que você quer dizer com paralelização de curso?
Heinrich
A paralelização do curso seria algo como execuções independentes de uma alteração do MCMC., Ou seja, mandris muito grandes que podem ser executados em paralelo sem sincronizar threads. Um exemplo de granulação fina é calcular a probabilidade em que os cálculos podem ser realizados nos pontos de dados independentemente.
Andrew Redd