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?
Isso deve ter algo como uma tag "grande lista"?
@ 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.
Confira HPC University . Em particular, a seção de recursos , que inclui coisas como
uma introdução ao OpenMP
Depurando códigos seriais e paralelos
Introdução à Open Science Grid
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)
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.
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:
Modelos computacionais , simulações , análise numérica e algoritmos
Modelagem científica em áreas como matemática aplicada, física, engenharia
Arquiteturas e programação de computadores
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!
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.