Como devo estudar a criação e programação de sistemas HPC?

16

Estou em um campo que não faz necessariamente muito trabalho com HPC e, quando o encontra, geralmente é o resultado de pesquisadores de outros campos explorando novas aplicações para seus métodos e afins. Principalmente o que isso significa é que ele nunca é realmente introduzido no curso dos estudos, ou é abordado em workshops, seminários e similares - é possível seguir toda a carreira sem precisar.

Ao mesmo tempo, no entanto, grande parte do trabalho que eu faço poderia se beneficiar com o melhor uso dos recursos de HPC disponíveis para mim - principalmente na forma de simulações paralelas de Monte Carlo.

Meu problema é encontrar recursos para aprender a usar clusters, MPI etc. E separar o bom do ruim, já que não sei muito.

Alguma sugestão de livros sobre programação nesses tipos de sistemas ou sobre como configurar e executar configurações de HPC muito modestas?

Fomite
fonte
Isso deve ter algo como uma tag "grande lista"?
Shuhalo
@ Martin: não. Ele deve ter respostas de pessoas que realmente fizeram isso e sabem do que estão falando, não uma lista gigantesca de tudo o que possa estar relacionado. Modificado o título para refletir isso.
Shog9

Respostas:

13

Confira HPC University . Em particular, a seção de recursos , que inclui coisas como

e muito mais.

Existem muitos programas de ensino superior que incluem cursos em HPC . Como exemplo, meu próprio programa inclui cursos em

  • Computação de alto desempenho (2 semestres)
  • Paradigmas de programação paralela
  • Engenharia de software científico
  • Programação GPU e GPGPU

bem como uma variedade de cursos em computação científica e análise numérica.

David Ketcheson
fonte
4

Minha experiência pessoal é que o HPC exige um conjunto tão amplo de habilidades que é muito difícil de fazer em apenas um livro, receita, curso universitário. Considere que o HPC não se refere à programação de grandes máquinas ou à construção de um cluster, mas à solução de grandes problemas científicos na ponta da computação.

Não sei se todos concordariam, mas acho que uma lista de áreas envolvidas no HPC poderia ser:

Cada uma dessas áreas é imensamente grande e há tanto conhecimento que é difícil se apossar de tudo antes de tentar fazer qualquer coisa!

No meu caso, comecei de um canto da engenharia e desenvolvi lentamente a experiência e uma rede de colaboração. No começo, eu só tinha um problema de engenharia / matemática aplicada que queria resolver; daí mudei para a programação, para obter mais desempenho através de computadores mais poderosos, para análises numéricas, para algoritmos avançados, para computadores paralelos, para algoritmos paralelos. , para computadores ainda maiores, para um modelo científico mais completo e, eventualmente, para um novo problema e iterando novamente. Se eu olhar para trás, tentar entender e resolver meu primeiro problema foi o que elaborou meu plano de estudo. Ter um supervisor que possa mantê-lo no caminho certo também ajuda muito; caso contrário, tenha cuidado para não perder de vista seu objetivo final (no meu caso, esse era o problema científico que eu tinha em mãos).

Se eu precisar citar uma coisa que realmente faz diferença ao seguir o caminho do HPC, é conhecer pessoas de outras áreas, trocar idéias e tirar proveito do conhecimento distribuído da comunidade. Além disso, é importante não ter muito medo de ser abertamente ingênuo e fazer coisas tolas. Os primeiros passos são sempre difíceis e os mais importantes!

fcruz
fonte
2

Este é o meu plano para me ensinar algumas fundações da HPC na próxima primavera. Fui desenvolvedor na última década e meia e trabalho exclusivamente com as tecnologias da Microsoft. Também sou estudante, para poder adquirir algum software gratuitamente através do MSDN Academic Alliance(seu perfil indica que você é um aluno de pós-graduação, portanto, verifique se sua escola participa), e abrir espaço para coisas em casa é o fator limitante. Meu escritório / den / ManCave já possui vários computadores, para que eu possa testar algumas coisas. O Windows Server 2008 HPC está listado em alguns pacotes disponíveis, mas parecia desaparecer do software para download da minha escola durante o semestre passado ("pacote de computação em cluster" é um complemento para o servidor 2003, enquanto o servidor 2008 hpc vem com uma versão simplificada do servidor 2008, com o ccp, você precisará desativar os serviços desnecessários).

Minha topologia planejada é o "SOA Enabled Cluster", que é a quarta imagem nesta página (clique nos pequenos quadrados abaixo da figura principal). Eu já tenho o Active Directory e alguns outros servidores já configurados, por isso estou pensando em obter 4 computadores baratos Dell de tamanho pequeno no eBay (o Dell 655 SFF parece estar em execução no estádio de US $ 100-200). Como estou apenas tentando aprender algumas coisas, acredito que preciso apenas de um "nó principal", um "nó intermediário" e 2 "nós de computação" e algumas placas Ethernet sobressalentes para ver o que o aplicativo privado e o aplicativo bloqueiam (a partir dessa imagem ) Faz. A licença MSDNAA permite até 16 nós de computação, o que é muito mais do que estou procurando.

Eu tenho lido o Beowulf Cluster Computing com Windows e acho que tenho uma idéia do que eu tenho contra algumas idéias no escritório (há uma versão linux do livro, mas eu tenho 0 habilidades / plataformas linux em casa - faça o que é certo para si mesmo). Existem muitos clusters grandes disponíveis no escritório , mas eles já estão saturados e os intervalos de tempo educativos "Eu quero / preciso aprender X" são muito difíceis de obter. Já é esperado que você conheça o material antes de poder enviar trabalhos.

Tangurena
fonte